геокодирование с помощью прокси php

#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. Вам необходимо связаться с вашим системным администратором.