Геокодирование 5000 адресов в php-скрипт

Я ищу геокодировать более 5000 адресов сразу в PHP-скрипте (это будет выполняться только один раз).

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

Мне просто интересно, есть ли другой способ геокодирования 5000 или около того адресов, другой сервис, такой как Google, или что-то подобное, что я мог бы использовать?

или мне просто придется пошатнуться? Проблема в том, что у меня не так много времени, и делать 200 или 300 в день для 5000 результатов займет почти 5 (рабочих) недель.

спасибо

Тома

5 ответов


вместо этого вы можете использовать карты Bing:API пространственных данных предназначен для пакетного геокодирования тысяч адресов сразу (эта ссылка-даже подробный учебник о том, как использовать его с PHP).

вам просто нужно зарегистрировать ключ вhttp://www.bingmapsportal.com но это бесплатно и быстро (вы получите подтверждение по электронной почте в течение нескольких минут).


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

Если более 2500 запросов геокодирования в течение 24-часового периода получены от одного IP-адреса или запросы геокодирования отправлены с одного IP-адреса слишком быстро, геокодер Google Maps API начнет отвечать кодом состояния 620.

[...]

Если вам нужно отправить очень большой набор адресов в веб-службу геокодирования для кэширования для последующего использования, вы должны рассмотреть Google Maps API Premier, который предоставляет отдельную квоту пакетного геокодирования для этой цели.

-- http://code.google.com/apis/maps/faq.html#geocoder_limit

Как упоминалось @Pekka: обратите внимание, что условия обслуживания Google запрещают геокодирование для целей, отличных от отображения на карте.



Как говорит @Bart Kiers, есть ограничение на количество запросов, которые вы можете сделать в течение 24 часов; есть также" не слишком быстрый " в час (?) предел. Я бы предложил вам разделить (секунды в день) 86400/2500 (предел), чтобы получить скорость запроса, которая не должна превышать "слишком быстрый" предел в час. Он выходит примерно на один запрос за 35 секунд, который должен получить результаты в течение двух дней.

однако проверьте коды возврата: если служба начинает возвращать 620, остановитесь и дайте ему отдохните некоторое время, иначе вы рискуете получить запрет.


то, что вы пытаетесь сделать, действительно не соответствует условиям обслуживания Google.

тем не менее, Google начнет возвращать ответы "сверх квоты", если вы не приостановите по крайней мере 250 мс между запросами геокодирования.

на практике, если вы делаете только 2 запроса в секунду, вы не будете дросселироваться до предела 2 ' 500 дней.