#php #api #maps #geocode
#php #API #Карты #геокодирование
Вопрос:
Я новичок и использую maps api для геокодирования адреса. На моем компьютере у меня нет никаких проблем. Проблема в том, что у меня есть сервер с прокси. Я попытался настроить прокси, используя две разные функции:
function curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, "http://my_proxy");
curl_setopt($ch, CURLOPT_PROXYPORT, my_port);
curl_setopt($ch, CURLOPT_HEADER,0); //Change this to a 1 to return headers
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
var_dump($data);
curl_close($ch);
return $data;
}
или
function curl($url)
{
$opts = array('http' => array('proxy' => 'tcp://my_proxy', 'request_fulluri' => true));
$context = stream_context_create($opts);
$data = file_get_contents($url, false, $context);
return $data;
}
и затем я вызываю эту функцию, используя эти строки:
$address = urlencode($address);
$data = $this->curl("http://maps.google.com/maps/api/geocode/xml?address={$address}amp;sensor=false");
$lat_lng = simplexml_load_string($data);
но я получаю ошибку ‘OVER_QUERY_LIMIT’.
У вас есть какие-нибудь идеи? Спасибо.
Комментарии:
1. Зачем вам вообще нужно использовать прокси? Лимиты запросов Google довольно щедры.
2. Что у вас за
$address
, сколько адресов вы запрашиваете?3. Я запрашиваю только один адрес: ‘Viale Masini 4, 40126 Болонья’
Ответ №1:
Проблема в том, что у меня есть сервер с прокси. […] Я получаю ошибку ‘OVER_QUERY_LIMIT’.
Похоже, что прокси используется многими другими людьми, и один из них уже превысил (~ 1000 в день?) ограничение запроса.
Комментарии:
1. Спасибо за ваш ответ. Теперь ошибка: при попытке получить URL: maps.google.com/maps/api/geocode/xml ? Была обнаружена следующая ошибка: * Доступ к кэшу запрещен. Извините, в настоящее время вам не разрешено запрашивать: maps.google.com/maps/api/geocode/xml ? из этого кэша, пока вы не аутентифицируетесь самостоятельно. Для этого необходимо использовать Netscape версии 2.0 или выше, или Microsoft Internet Explorer 3.0, или браузер, совместимый с HTTP / 1.1. Пожалуйста, свяжитесь с администратором кэша, если у вас возникнут трудности с аутентификацией, или измените свой пароль по умолчанию.
2. @Katie, это сообщение об ошибке от прокси, а не от Google. Вам необходимо связаться с вашим системным администратором.