2015-03-23 4 views
0

У меня есть вопрос с моим API Карт Google. Я использую простой сценарий геокодирования, чтобы вытащить файл txt/xml с моего сервера и геокодировать адреса. У меня проблема с адресами, возвращающимися как нулевое значение, и разрушением скрипта и моей базы данных, потому что Coord_lat и Coord_long являются float и не могут принимать значения NULL.Ошибка HTTP-запроса - Карты Google

Ошибки я получаю это: Warning: file_get_contents(http://maps.google.com/maps/geo?key=AIzaSyBmT9F_ixjLlW8oDiYVqgHqt14a008kXwc&output=xml&q=131+rochestor+ave+039482) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /includes/sfupdate/func.php on line 294 {"status":"Failed","data":"SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'coord_lat' cannot be null"} ErrorSyntaxError: Unexpected token

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

ответ

0

Извините за отправку нового ответа, но вот мой текущий сценарий геокодирования.

function get_lat_long($address, $zipcode) { 
    if(strlen($zipcode) == 4){ 
     $zipcode = '0' . $zipcode; 
     //echo $zipcode . "\n"; 
    } 



    $apikey = "IzaSyBmT9F_ixjLlW8oDiYVqgHqt14a008kXwc"; 
    $geourl = "http://maps.google.com/maps/geo?key=" . $apikey . "&output=xml&q=" . urlencode($address) . "+" . urlencode($zipcode); 
    //echo $geourl; 
    //echo "<br>"; 

    // Grab XML content using $geourl 
    $context = stream_context_create(array('http' => array('header' => 'Accept: application/xml'))); 

    $xml = file_get_contents($geourl, false, $context); 
    $xml = simplexml_load_string($xml); 


    //Parse the lat and long from the XML 
    $Lat = $xml->results->result->locations->location->displayLatLng->latLng->lat; 
    //echo $Lat; 
    $Lng = $xml->results->result->locations->location->displayLatLng->latLng->lng; 
    //echo $Lng; 


    //Return 
    if($Lng && $Lat) { 
     return array('lat'=>$Lat, 
        'lng'=>$Lng 
        );   
    } else { 
     return false; 
    } 


} 
Смежные вопросы