2009-05-22 6 views
1

У меня возникла странная проблема. Внезапно моя PHP-реализация Google Geocoding API просто решила перестать работать. Теперь он возвращает ошибку 602 для каждого запроса, то есть адрес недоступен. Но, если я открою фактический url, который я запрашиваю, он отлично работает, и я могу загрузить правильную информацию. Но если я использую завиток, чтобы взять его, вместо 200 будет возвращен 602.Google Geocoding Weirdness

Я попытался изменить ключ API, а также проверить и проверить URL-адрес.

+0

Вы используете свой PHP сервер локально для этого теста? Являются ли эти два запроса, поступающие с одной машины, мой вопрос. – overslacked

+0

Если я открою URL-адрес, его с моей локальной машины, запрос на завиток будет с другого компьютера. Единственное странное, что в течение примерно 5 месяцев он отлично работал без каких-либо изменений. И URL-адрес все еще работает, но когда эта машина захватывает его с помощью curl, просто возвращается 602. – James

+0

Дело в том, что тестирование URL-адреса в вашем браузере на вашем собственном компьютере - это всего лишь половина теста. На сервере может быть какой-то прокси-сервер, быть в каком-то черном списке или иметь какое-то другое рассмотрение конфигурации ... на данный момент, если бы я был вами, я попал бы в доски Google. – overslacked

ответ

0

Он возвращает 602, если не удается выполнить геокодирование адреса, который он пытается.

+0

Это не удается для каждого адреса, но каждый из адресов, с которыми он не справляется, если я просто просматриваю URL-адрес, который я извлекаю из завитка, отлично работает. – James

+0

Возможно, это может быть несоответствие вашего ключа api. У вас установлен датчик на false? –

1

Я использую следующий метод для геокодирования. Вы можете попробовать, чтобы убедиться, что это не проблема cURL.

$request_url = $base_url . "&q=" . urlencode($address); 
$xml_string = file_get_contents($request_url); 
$xml_string = str_replace('xmlns=', 'ns=', $xml_string); 
$xml = simplexml_load_string($xml_string); 

Кроме того, если вы еще не видели this tutorial на геокодирования с PHP, не забудьте проверить его.

+0

Тот же ответ, что и текущий. – James

0

Google в настоящее время применяет действующий ключ в запросе поэтому убедитесь, что вы указали

&key=YOUR_VALID_KEY&sensor=false 

в запросе.

Если вы не сдадите действующий ключ, вы получите 602.

1

Это поздний ответ. не

Согласно http://code.google.com/intl/en/apis/maps/documentation/geocoding/,

Карт ключ API больше не требуется.

Примечание. Для API геокодирования Google no требуется ключ Maps API! Google Пользователи API Карт Google должны дополнительно добавить свои URL-адреса, используя новый криптографический ключ .

Существует предел, хотя.

Использование API Google геокодирования зависит от ограничения запроса 2500 геолокации запросов в день. (Пользовательский Google Maps API Premier может выполнять до до 100 000 запросов в день.) Это ограничения применяются для предотвращения злоупотребления и/или перепрофилирования в Geocoding API, и этот предел может быть изменен в будущего без предварительного уведомления , Кроме того, мы применяем ограничение на ограничение , чтобы предотвратить злоупотребление службой . Если вы превысите 24-часовой лимит или иным образом злоупотребляете услугой, то API геокодирования может временно перестать работать на . Если вы продолжаете , превысите этот предел, ваш доступ к API Geocoding может быть заблокирован.

Обходной путь до предела - запрашивать геокоды с использованием многих прокси одновременно. Если у вас 10 прокси с разными IP-адресами, вы можете запросить 25000 геокодов в день.

2

Раньше я добавлял свою страну («Австралия») в строку поиска геокодирования, чтобы ограничить поиск в свободной форме текста «локальным» адресом. Казалось, это убило его.

geocoder.geocode(event.arg + "Australia"); 

Теперь я добавить это в конструкторе (Actionscript, но, вероятно, относится и к другим языкам)

var geocoder:ClientGeocoder = new ClientGeocoder(
      new ClientGeocoderOptions({ 
       countryCode: "AU", 
       language: 'en'/ 
      })); 
Смежные вопросы