Почтовый индекс + страна в географических координатах

Каков наиболее полный, точный и надежный способ получить координаты (широту / долготу) данного почтового индекса / индекса данной страны? Мне нужно сделать много запросов, поэтому было бы полезно установить высокий лимит API (возможно, даже его нет).

Было бы неплохо получить дампы GeoNames, но похоже, что в них слишком много повторяющихся координат (example), и также кажется, что в их базе данных отсутствует какой-то ZIP / почтовые индексы для определенных стран.

Есть ли другие (надежные) альтернативы?


Пока я читал Мета-вопрос, я наткнулся на эту ссылку:

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 /: 10 000 вызовов в час

Кто-нибудь знает, где я могу получить более подробную информацию об использовании адресов YQL в GeoCode?


person Alix Axel    schedule 16.01.2010    source источник
comment
Множество дубликатов, включая stackoverflow.com/ questions / 1320262 /   -  person    schedule 16.01.2010
comment
@Neil: Не совсем так, все ответы на этот вопрос используют API GYM / GYB и имеют низкие ограничения скорости.   -  person Alix Axel    schedule 16.01.2010
comment
Не могли бы вы более подробно объяснить, для чего вам нужны данные? В Германии, например, единый почтовый индекс применяется к очень большой зоне, определяемой границами округа или округа. Два адреса с одинаковым пятизначным почтовым индексом могут находиться на расстоянии 10-20 км друг от друга. То же самое и в моей родной Финляндии (с еще большими расстояниями). Геокодирование почтового индекса может быть только воображаемой центральной точкой. Кажется, вы уделяете большое внимание качеству данных - как это сработает для вас? Кроме того, действительно ли операция должна проходить за один день? Почему бы не распределить запросы на несколько недель?   -  person Pekka    schedule 17.01.2010
comment
@Pekka: Да, в моей стране (Португалия) у нас есть 7-значные почтовые индексы, каждый из которых находится менее чем в 1 км от следующего. Я знаю, что не все страны имеют одинаковый уровень точности (к сожалению), но мне придется с этим сравняться. Почтовое отделение в Португалии требует почти 33 тыс. Евро для 80% покрытия почтового индекса страны (и они даже не используют стандарт WGS84). Я не могу поделиться спецификой проекта, но мне нужно геокодировать каждый почтовый индекс в Европе за довольно короткий период времени (2–3 недели), Португалия почти завершена, но мне еще предстоит пройти 26 стран ...   -  person Alix Axel    schedule 17.01.2010
comment
Я вставлю это в ответ, см. Ниже.   -  person Pekka    schedule 17.01.2010
comment
@Pekka: Кроме того, одна из проблем, с которыми я сталкиваюсь, - это получить (обновленный) список всех существующих почтовых индексов, поскольку без этого я не могу ничего геокодировать. Например, в Википедии (en.wikipedia.org/wiki/List_of_postal_codes_in_Portugal) есть только список первые 4-значные почтовые индексы - это означает, что я должен отправить 1000 запросов грубой силы (999-000) для каждого из них.   -  person Alix Axel    schedule 17.01.2010
comment
Я не знаю наверняка (а о Португалии вы знаете лучше меня), но я думаю, что можно получить списки исходных почтовых индексов (без координат) из национальных почтовых отделений. Может стоит второй ТАК вопрос?   -  person Pekka    schedule 17.01.2010
comment
К тому же грубый форсинг не будет работать в Великобритании и Ирландии, по крайней мере ...   -  person Pekka    schedule 17.01.2010
comment
@Pekka: Да, их почтовые индексы действительно хороши! Я уже провел некоторое исследование по этому поводу, только несколько почтовых отделений предоставляют необработанные списки почтовых индексов, другие предоставляют, но налагают множество ограничений. К счастью, я думаю, что Португалия - одна из стран с наибольшим количеством почтовых индексов.   -  person Alix Axel    schedule 17.01.2010
comment
Все в порядке. Что ж, во всяком случае, мне было бы интересно узнать, как это все обернется в итоге! Как я сказал ниже, если у вас есть некоторый бюджет, лучше всего поговорить с Google и компанией. С другой стороны, их качеству тоже нельзя слепо доверять - там, наверное, и почтовые отделения были бы надежнее. В любом случае удачи!   -  person Pekka    schedule 17.01.2010


Ответы (4)


Yahoo! GeoPlanet предоставит вам координаты широты и долготы центроида для почтовых индексов. По моему опыту, они оказались надежными. Лимит API - 50 000 запросов в день. Я не уверен, какова их политика в отношении кеширования результатов. У меня сложилось впечатление, что если вы свяжетесь с Yahoo !, вы можете установить соглашение с более высоким лимитом запросов, хотя это может стоить некоторых денег.

Они также позволяют вам загружать значительную часть их данных по лицензии Creative Commons, но к сожалению, похоже, что это ограничивается отношениями WOEID и названиями стран.

person npdoty    schedule 16.01.2010
comment
Спасибо, но все равно 50 тыс. Запросов в день мне все еще недостаточно (в одной только моей маленькой стране почти 300 тыс. Почтовых индексов). Также я обнаружил, что Yahoo не очень точно определяет координаты почтовых индексов, одна и та же координата возвращается для нескольких разных почтовых индексов. Тем не менее, приятно знать о дампе WOEID. знак равно - person Alix Axel; 17.01.2010
comment
Приятно знать ваш опыт их неточности. Я согласен с Пеккой выше; это может стоить немного денег, но попробуйте спросить Yahoo! и, возможно, за небольшую плату вы можете заставить их либо поднять дневной лимит, либо разработать что-то, где вы можете кэшировать результаты. - person npdoty; 19.01.2010

Я думаю, что ваш выбор, вероятно, будет зависеть от того, сколько вызовов 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. Вы можете узнать больше об этих ограничениях.

person Daniel Vassallo    schedule 16.01.2010
comment
15 000 в день, это довольно мало для того, что я хочу ... Кстати, что делает sensor=false? - person Alix Axel; 16.01.2010
comment
Google может увеличить ваши лимиты геокодирования примерно на 10 тысяч долларов в год: groups .google.com / group / Google-Maps-API / browse_thread / thread /. Вы не сказали, что это должно быть бесплатно :) - person Daniel Vassallo; 16.01.2010
comment
высокая скорость API = геокодирование всех почтовых индексов страны за один день - person Alix Axel; 16.01.2010
comment
Это исключило бы Google Maps и, возможно, любую другую веб-службу. Кроме того, я считаю, что постоянное хранение результатов геокодирования является нарушением условий Google Maps. - person Daniel Vassallo; 16.01.2010
comment
но вы можете использовать memcached, чтобы не тратить зря вызовы api ;-D - person jacktrade; 20.03.2012

Самым простым способом, конечно же, было бы найти поставщика качественных услуг без ограничения количества запросов. Почему бы не попросить у Google предложение? Насколько я знаю, они довольно гибки по отношению к бизнес-клиентам.

Если это не вариант, вы наверняка сможете получить отдельные файлы данных, а во многих странах стоимость проезда будет ниже 33 тысяч долларов. Я совершенно уверен, что в Германии и Австрии файлы данных продаются по трехзначным ценам, а для Великобритании существует Адресный файл почтового индекса (PAF), это данные Королевской почты, я не думаю, что качество станет лучше. Конечно, помимо затрат и хлопот, потребуется много работы по преобразованию 26 отдельных файлов из разных почтовых отделений и еще много чего - работа, которой я бы никому не позавидовал :) Если у вас есть бюджет, это, вероятно, дешевле всего разговаривать с Google или Yahoo.

person Pekka    schedule 16.01.2010
comment
Великобритания: Они обновляют свои почтовые индексы почти каждую неделю! Я нашел относительно дешевого поставщика данных (geopostcodes.com/buy_eu_zip_codes), но я не очень уверен в качество их данных. - person Alix Axel; 17.01.2010
comment
Интересно, я этого не знал, но они почти что в Великобритании, так что очевидно, что они сильно колеблются ... Что ж, это объясняет, почему годовая подписка на Royal Mail стоит 1700 фунтов стерлингов :) - person Pekka; 17.01.2010
comment
Тем не менее, я думаю, что это злоупотребление, здесь у нас есть точность на уровне улиц, и они меняют почтовые индексы только один или два раза в год. - person Alix Axel; 17.01.2010
comment
Да, я испытал тот же опыт с данными Google здесь, дома, большая часть моего района не привязана к улицам (и это в большом городе!) - person Pekka; 17.01.2010
comment
И да, 1700 фунтов стерлингов в год - это грабеж, без вопросов. Как и 33 тыс. Или любая комиссия - в конце концов, это общедоступные данные, оплачиваемые налогами в большинстве (если не во всех) европейских странах. - person Pekka; 17.01.2010

На самом деле это действительно сложная проблема, поскольку почтовый индекс на самом деле не является многоугольной областью, а представляет собой набор строк, агрегированных вместе (см. Лучший ответ на Как получить ограничивающие координаты для почтового индекса США? для очень подробного объяснения этого .)

В Соединенных Штатах Бюро переписи населения ведет список приблизительных границ почтовых индексов, который называется «Пятизначными зонами табуляции почтовых индексов» (ZCTA5). Вы можете скачать их напрямую и обрабатывать как угодно. Есть несколько инструментов геокодирования, которые помогут вам начать работу с этим; Я использую PostGIS (http://postgis.net/), но есть и другие, в первую очередь данные Open Street Maps ( http://www.openstreetmap.org), который охватывает весь мир.

person JWLM    schedule 25.05.2015
comment
очень простой API для границ США. www.boundares-io.com, это стоит денег (25 долларов в месяц, чтобы использовать API) Отказ от ответственности, я работаю на них - person Jeryl Cook; 15.01.2017