Код страны по долготе (без использования услуг геокодирования) - PullRequest
5 голосов
/ 01 марта 2011

Как я могу получить код страны из положения широты и долготы?

Я знаю, что доступно много сервисов геокодирования, но они не отвечают моим требованиям, потому что мое приложение блокируется через несколько часов после его запуска (много запросов геокодирования).

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

Я провел небольшое исследование и думаю, что нашел способ сделать это: Получите файл формы (или другой файл данных), который содержит границы всех стран (в многоугольниках). Далее просто посмотрите, в каком многоугольнике находится позиция широты и долготы Наконец, прочитайте метаданные определенного полигона.

Кто-нибудь знает, где я могу получить файл формы (или другой формат), который включает в себя многоугольники (или только линии), которые показывают границы всех стран в мире?

Или, может быть, есть более простой способ решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 01 марта 2011

Учитывая количество стран (полигонов) в мире, вы можете разделить набор полигонов стран, чтобы сначала выполнить грубый фильтр (например, если точка находится в западном и северном полушариях, нужно проверить только север). Американские, центральноамериканские и карибские страны. Это может дать вам улучшение скорости.

Кроме того, имейте в виду, что многие страны состоят из нескольких полигонов, просто имейте это в виду при кодировании.

Я не использовал ни один из этих источников для данных о границах страны, но извлечение: http://geocommons.com/overlays/33578 а также http://geospatial.edublogs.org/2010/06/29/world-country-boundary-files/

0 голосов
/ 02 марта 2011

Полагаю, вам нужен код страны по стандарту ISO 3166-1 alpha-2 (вместо FIPS 10 = 4, который постепенно прекращается к декабрю 2012 года). Есть 248 стран, территорий и зависимостей, перечисленных ISO. Подход ViennaMike с помощью быстрого фильтра, который сводится к проверке по континентам, звучит как подход с хорошей производительностью.

Вы захотите использовать шейп-файл стран, чтобы узнать, в какой стране находится широта / долгота (т. Е. Проверить, находится ли точка в пределах многоугольника).

Существует множество бесплатных источников (но могут иметь коммерческие лицензионные ограничения). Вот еще один источник из проекта с открытым исходным кодом (openstreetmap)

http://downloads.cloudmade.com/

Андрей, Команда в OpenGeoCode.Org

...