Почтовый индекс + Страна к географическим координатам
Каков наиболее полный, точный и надежный способ получить координаты (широта / долгота) данного почтового / почтового индекса данной страны? Мне нужно сделать много запросов, поэтому была бы полезна высокая лимитная ставка API (возможно, даже отсутствующая).
Дампы GeoNames были бы хороши, но, похоже, в них слишком много дубликатов координат ( пример), а также в их базе данных отсутствуют некоторые почтовые / почтовые индексы для определенных стран.
Есть ли другие (надежные) альтернативы?
Когда я читал мета-вопрос, я наткнулся на эту ссылку:
http://query.yahooapis.com/v1/public/yql?q=select%20%2A%20from%20geo.places%20where%20text%3D%22Jyv%C3%A4skyl%C3%A4%22&format=xml
Я слышал о YQL раньше, но понятия не имел, что смогу использовать его для адресов GeoCode, поэтому я немного искал и нашел очень интересную информацию:
Пределы использования
Лимит на приложение (определяется вашим ключом доступа): 100 000 звонков в день
Лимиты на IP: /v1/public/: 1000 звонков в час; /v1/yql/: 10000 звонков в час
Кто-нибудь знает, где я могу получить более конкретную информацию при использовании адресов YQL для GeoCode?
4 ответа
Yahoo! GeoPlanet выдаст вам центроиды широты и долготы для почтовых индексов. Они были надежны в моем опыте. Предел API составляет 50000 запросов в день. Я не уверен, какова их политика в отношении результатов кэширования. У меня складывается впечатление, что если вы обратитесь в Yahoo!, вы можете создать соглашение с более высоким лимитом запросов, хотя это может стоить денег.
Они также позволяют вам загружать значительную часть их данных по лицензии Creative Commons, но, к сожалению, это ограничивается отношениями WOEID и названиями стран.
Я думаю, что ваш выбор, вероятно, будет зависеть от того, сколько вызовов API вы собираетесь совершать в день. Дневной лимит бесплатного API Карт Google составляет 15 000 запросов на IP-адрес. (Источник: часто задаваемые вопросы по API Карт Google.)
Вы можете выполнить геокодирование с помощью Google Maps API, используя следующий HTTP-запрос:
Простой CSV:
http://maps.google.com/maps/geo?q=W1A+1AA,+London&output=csv&sensor=false
Более сложный XML:
http://maps.google.com/maps/geo?q=W1A+1AA,+London&output=xml&sensor=false
Просто измените параметр "q" с почтовым индексом и страной на геокод.
Однако я считаю, что постоянное хранение результатов геокодирования в вашей базе данных может являться нарушением условий и положений API Карт Google. Вы можете проверить дополнительную информацию об этих ограничениях.
Самым простым способом, конечно, было бы найти поставщика высококачественных услуг без ограничения количества запросов. Почему бы не спросить Google о предложении? Из того, что я слышал, они достаточно гибки по отношению к бизнес-клиентам.
Если это не вариант, вы, безусловно, сможете получить отдельные файлы данных, и стоимость проезда будет дешевле, чем 33 тыс. Во многих странах. Я вполне уверен, что в Германии и Австрии продаются файлы данных по трехзначным ценам, а для Великобритании есть файл почтовых индексов (PAF), это данные из Royal Mail, я не думаю, что качество улучшается. Конечно, в дополнение к стоимости и хлопотам, было бы много работы по конвертации, чтобы сделать с 26 отдельными файлами из разных почтовых отделений и еще много чего - работа, которой я бы никому не завидовал:) Если у вас есть бюджет, это, вероятно, дешевле всего поговорить с Google или Yahoo.
На самом деле это действительно сложная проблема, поскольку почтовый индекс на самом деле не является многоугольной областью, а набором строк, агрегированных вместе (см. Лучший ответ в разделе Как получить ограничивающие координаты для почтового (почтового) кода США?) Для очень подробного объяснения. этого.)
В Соединенных Штатах Бюро переписей ведет список примерных границ почтовых индексов, называемых "областями табуляции пятизначных почтовых индексов" (ZCTA5). Вы можете скачать их напрямую и обрабатывать их так, как вам нравится. Есть несколько инструментов геокодирования, которые помогут вам начать с этим; Я использую PostGIS ( http://postgis.net/), но есть и другие, наиболее важные данные Open Street Maps ( http://www.openstreetmap.org/), которые охватывают весь мир.