Ciao a tutti, partendo da una tabella con 1000 record con indirizzo, città, provincia... posso processare uno script che utilizzi i servizi Google Maps per il salvataggio di lontitudine e latitudine?
Grazie
Ciao a tutti, partendo da una tabella con 1000 record con indirizzo, città, provincia... posso processare uno script che utilizzi i servizi Google Maps per il salvataggio di lontitudine e latitudine?
Grazie
certo che puoi farlo, ti consiglio di inserire in tabella prima anche il cap.
Codice considerando che siano tutti indirizzi italiani
Poi fai una query del tipo
cicli il recordset e nel while ricavi longitudine e latitudine:Codice PHP:
SELECT id, via, indirizzo, civico, cap, citta, provincia FROM tabella
Codice PHP:
$tmpIndirizzo = $rs['via']. " " .$rs['indirizzo']. " " .$rs['civico']. ", " .$rs['cap']. " " .$rs['citta']. " " .$rs['provincia']. ", Italia";
$indirizzo = urlencode($tmpIndirizzo);
$json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=" .$indirizzo. "&sensor=false&language=it");
$decoded = json_decode($json);
$lat = $decoded->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $decoded->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
# qua fai la query di aggiornamento del record con latitudine e longitudine trovati
Ottimo!!!
Grazie per l'aiuto!
Credo che la tua versione sia relativa alle vecchie API, ho provato con le nuove
$queryMap = urlencode($tmpQueryMap);
$json = file_get_contents("http://maps.googleapis.com/maps/geo?q=" .$queryMap. "&key=XXXX&output=json&sensor=false&language=i t");
$data = json_decode($json);
$latitude = $data->results[0]->geometry->location->lat;
$longitude = $data->results[0]->geometry->location->lng;
Ma non sembra calcolare lati e longi
Cosa sbaglio?
Grazie
non mi ricordo quale versione di API sia ... ma ti garantisco che funziona perfettamente (lo utilizziamo per geolocalizzare nel nostro gestionale del lavoro)
verifica cosa ti restituisce con un print_r
codice:print_r($decoded)
Ma non bisogna passare la key alle API??
:-(
stdClass Object ( [results] => Array ( [0] => stdClass Object ( [address_components] =>..... RANGE_INTERPOLATED [viewport] => stdClass Object ( [northeast] => stdClass Object ( [lat] => 45.721096030291 [lng] => 8.6177958302915 ) [southwest] => stdClass Object ( [lat] => 45.718398069708 [lng] => 8.6150978697085 ) ) ) [partial_match] => 1 [types] => Array ( [0] => street_address ) ) ) [status] => OK ) 45.7197535
OVER_QUERY_LIMIT
dopo qualche record aggiornato :-(((
(specifico che lo stesso script ieri non funzionava nemmeno)
Risolto!! Ho inserito uno sleep!
Thanks