Я ищу геокодирование более 5000 адресов сразу в PHP-скрипте (это будет выполняться только один раз).
Я изучал Google как потенциальный ресурс для этого, но я читал отчеты, которые после запуска 200 или около того запросов через них google вышвырнет вас в течение дня.
Мне просто интересно, есть ли какой-либо другой способ для геокодирования 5000 или около того адресов, другой сервис, такой как Google или что-то подобное, которое я мог бы использовать?
Или мне просто нужно пошатнуть это? Проблема в том, что у меня мало времени и 200 или 300 в день, для 5000 результатов потребуется почти 5 (рабочих) недель.
благодаря
Том
Вместо этого вы можете использовать Bing Maps: API пространственных данных создан для пакетного геокодирования тысяч адресов одновременно (эта ссылка представляет собой даже подробное руководство по использованию этого метода с PHP).
Вам просто нужно зарегистрировать ключ на http://www.bingmapsportal.com, но это бесплатно и быстро (вы получите подтверждение по электронной почте в течение нескольких минут).
Есть ли ограничение на количество запросов геокода, которые я могу отправить?
Если из одного IP-адреса получено более 2500 запросов на геокодирование в течение 24-часового периода, или запросы геокода поступают с одного IP-адреса с слишком высокой скоростью, геокодер API Карт Google начнет отвечать кодом состояния 620.
[…]
Если вам нужно отправить очень большой набор адресов веб-службе геокодирования для кеширования для последующего использования, вам следует рассмотреть API Google Maps Premier , который предоставляет для этого отдельную квоту для геокодирования партии.
Как отметил @Pekka: обратите внимание, что условия обслуживания Google запрещают использование материалов для геокодирования для целей, отличных от показа на карте.
Наиболее надежным решением является загрузка базы данных геолокации на ваш хост, чтобы вы могли выполнять неограниченные запросы.
http://www.google.de/search?q=geolocation+database&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox#hl=en&expIds=17259,17315,18168,23628, 25646,25834,26637,26746,26761,26849 & XHR = т & д = геолокации + база + скачать & сП = 22 & пф = р & sclient = пси & клиент = светлячок & HS = МВК & RLS = org.mozilla: RU% 3Aofficial и источник = л.с. & водн = F & AQI = & акл = & OQ = геолокации + база + д & gs_rfai = & = 1 PBX & Fp = d950b79c3319a56e
Как говорит @Bart Kiers, существует ограничение на количество запросов, которые вы можете сделать в течение 24 часов; есть также «не слишком быстрый» в час (?) предел. Я бы предположил, что вы разделите (секунд в день) 86400/2500 (предел), чтобы получить скорость запроса, которая не должна превышать «слишком быстрый» за / час лимит. Он выдает примерно один запрос за 35 секунд, который должен получить результаты за два дня.
Однако проверьте коды возврата: если служба начинает возвращать 620, остановитесь и дайте ей отдохнуть некоторое время, иначе вы рискуете запретом.
То, что вы пытаетесь сделать, действительно не соответствует условиям обслуживания Google.
Тем не менее, Google начнет возвращать ответы «over-quota», если вы не сделаете паузу не менее 250 мс между запросами на геокодирование.
На практике, если вы делаете только 2 запроса в секунду, вы не будете дросселироваться до предела 2'500 дня.