Как я могу построить список мировых географических местоположений и их относительной географической иерархии? - PullRequest
7 голосов
/ 25 июля 2011

Я хочу создать базу данных о географических местоположениях и хотел бы иметь возможность идентифицировать местоположения, которые попадают в другие местоположения.Например, Эмпайр Стейт Билдинг будет иметь одну гео-координату, но моя база данных сможет сказать мне, что она находится внутри Манхэттена, который находится внутри Нью-Йорка, который находится в штате Нью-Йорк и так далее.

Я смотрел на OpenStreetMap , который, кажется, имеет довольно приличную базу данных, но, насколько я могу судить, мне нужно было бы создать набор структур многоугольников, представляющих каждую область, а затем определитьесли координата попадает в полигон данного региона.Есть ли лучший способ сделать это, или есть источник данных, где все это уже рассчитано?

Ответы [ 3 ]

3 голосов
/ 26 июля 2011

Попробуйте Yahoo!Данные GeoPlanet на http://developer.yahoo.com/geo/geoplanet/data/

Они уже организованы в иерархическую структуру, страны, административные подразделения и места.

Вы также можете расширить данные, используя методы Geo в YQL.API на http://developer.yahoo.com/yql/console/

1 голос
/ 30 ноября 2011

Вы также можете заглянуть в базу данных Geonames . Хотя это не классифицируется с использованием иерархического метода, вы, вероятно, могли бы извлечь из него информацию.

Если вы действительно хотите погрузиться в построение географической базы данных, где вы можете анализировать данные, взгляните на загрузку ваших данных в свободный PostgreSQL / PostGIS стек. При этом вы можете написать SQL, который отвечает на такие вопросы, как «показать мне все точки [ в пределах границ города / округа / штата ]» или «[ в пределах расстояния X от местоположения Y ]» .

Хорошие места, чтобы узнать больше о PostGIS, можно найти на веб-сайте BostonGIS , на страницах GIS.StackExchange или, конечно, в руководстве, но кто их больше читает ...

0 голосов
/ 25 июля 2011

Я почти уверен API карт Google имеет регионы, определенные как полигоны.Под регионами я подразумеваю Штат, Город, Почтовый индекс или что-то, что можно определить как «регион»

. Возможно, вам придется пройти тестирование (у Google Maps уже может быть функция для этого)точка, чтобы увидеть, находится ли она внутри многоугольника.

Вы также можете использовать адрес поиска с помощью функций GeoLocation, чтобы найти, в каком регионе (точках) находится точка, и просто использовать это.

...