Я хотел бы разрезать мир на полигоны равной численности населения, скажем, 100 миллионов человек (начиная, например, с растровых данных о плотности населения, предоставленных НАСА). Я знаю, что это сокращение будет произвольным в том смысле, что есть много разных решений. Но это не важно, мне нужно, чтобы это было произвольно! Пожалуйста, кто-нибудь может указать мне лучший способ продолжить?
polygon
tesselation
Julien
источник
источник
Ответы:
Вы можете создать сетку из маленьких квадратов, которые покрывают мир. Затем скрипт может зацикливаться на каждом соседнем квадрате и while (sum (squares.population) <1000000) {merge (squares)}. Для последнего квадрата, который заставил бы вас прыгнуть выше 1 миллиона, вы можете сделать то же самое с гораздо меньшими квадратами. Вы должны бродить по квадратам как змея, а не в линию, поэтому окончательная форма многоугольника не всегда одинакова. Вы можете использовать пространственную базу данных, такую как PostGIS, для выполнения SUM и слияния (ST_UNION).
Ваш вопрос довольно интересный, держите нас в курсе ваших результатов.
источник