2010-01-13 19 views
14

google map api reverse geocoding ve php kullanarak koordinatlardan (lat, uzun) en yakın adres veya şehir almak için bir fonksiyona ihtiyacım var. Sen Google Maps APIGoogle Harita API ve PHP ile Geocoding Ters Geocoding ile En Yakın Yer Kullanarak Lat, Uzun koordinatlar

var point = new GLatLng (43,-75); 
var geocoder = new GClientGeocoder(); 
geocoder.getLocations (point, function(result) { 
    // access the address from the placemarks object 
    alert (result.address); 
    }); 

EDIT'e yılında GClientGeocoder nesne üzerinde getLocations yöntemi kullanmak gerekir bazı örnek kodunu

cevap

33

vermek: Tamam. Bu şeyi sunucu tarafında yapıyorsun. Bu, HTTP Geocoding service'u kullanmanız gerektiği anlamına gelir. Bunu yapmak için bağlantılı makalede açıklanan URL formatını kullanarak bir HTTP isteği oluşturmanız gerekecektir. HTTP yanıtı ayrıştırmak ve adresi çekin:

// set your API key here 
$api_key = ""; 
// format this string with the appropriate latitude longitude 
$url = 'http://maps.google.com/maps/geo?q=40.714224,-73.961452&output=json&sensor=true_or_false&key=' . $api_key; 
// make the HTTP request 
$data = @file_get_contents($url); 
// parse the json response 
$jsondata = json_decode($data,true); 
// if we get a placemark array and the status was good, get the addres 
if(is_array($jsondata)&& $jsondata ['Status']['code']==200) 
{ 
     $addr = $jsondata ['Placemark'][0]['address']; 
} 

N.B.Google Maps terms of service, sonuçları bir Google Haritasına koymadan coğrafi kodlama verilerinin yasak olduğunu açıkça belirtir.

+0

Teşekkürler. PHP'de kodlara ihtiyacım var çünkü raporlarda kayıtlarda enlem ve boylamın adresini göstereceğim ... lütfen sadece bana .. – Murugesh

+8

Patron, programcı olmanın bir parçası, dilinize soyut kaynak kodu kabiliyetidir. Google Konum API'si, kullanılan tüm dillerde (GLatLng Sözdizimi dahil) esasen aynıdır. –

+0

@Cannonade: Sadece php örnek kodunu eklemek için cevap vermek istemiyorum. Sadece bir ipucu: Orada javascript api için bir sürü php sarıcı sınıfları vardır. –