Google geocoder / API ile adrese dayalı mahalle dönen

4 Cevap php

Etkin / doğru dayalı bir şehir içinde bir mahalle çekin için herhangi bir yolu var mı bir adres, zip, şehir, eyalet Google Geocoder geçirilen?

Ben HTTP (ideal çözüm) üzerinden yapmaya çalıştığınızda zaman Aşağıdaki bilgi döndürür

<kml>
−
<Response>
<name>anthonys cookies san francisco California</name>
−
<Status>
<code>200</code>
<request>geocode</request>
</Status>
−
<Placemark id="p1">
<address>San Francisco, CA, USA</address>
−
<AddressDetails Accuracy="4">
−
<Country>
<CountryNameCode>US</CountryNameCode>
<CountryName>USA</CountryName>
−
<AdministrativeArea>
<AdministrativeAreaName>CA</AdministrativeAreaName>
−
<SubAdministrativeArea>
<SubAdministrativeAreaName>San Francisco</SubAdministrativeAreaName>
−
<Locality>
<LocalityName>San Francisco</LocalityName>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>
−
<ExtendedData>
<LatLonBox north="37.8454521" south="37.7043396" east="-122.2913561" west="-122.5474749"/>
</ExtendedData>
−
<Point>
<coordinates>-122.4194155,37.7749295,0</coordinates>
</Point>
</Placemark>
</Response>
</kml>

Eğer fark ederseniz, "yerellik adı" hala San Francisco diyor?

Bu noktada ben HTTP çağrısından farklı olarak JavaScript API / çağrı yararlanarak açığım ben yapmaya çalışıyorum ne için, sadece overkill gibi görünüyordu (ve bir baş ağrısı daha fazla).

İdeal olarak, ben şimdi San Francisco'da çalışmak için bu gerekiyor, ama büyük Amerikan Şehirler tümü için işe almak, bu çok güzel olurdu.

4 Cevap

Bildiğim kadarıyla, sen google maps API aracılığıyla Mahalle veriler alınamıyor. Urban Mapping en Neighborhood API gibi başka bir web hizmetini deneyebilirsiniz: http://developer.urbanmapping.com/demo/ veya Maponics (http://www.maponics.com/Neighborhood_Boundaries/neighborhood_boundaries.html). Kentsel haritalama API enlem aynı zamanda uzun ve çeşitli adres elemanları tarafından mahalle almak için yöntemler içerir.

function getGeoInfo($street,$city,$state) {
    $url = "http://maps.googleapis.com/maps/api/geocode/json?address={$street}+{$city},+{$state}&sensor=false";
    $json_returned = file_get_contents($url);
    $data = json_decode($json_returned);
    return ($data);
}

Sadece bir örnek olarak, elbette sizin değişkenleri UrlEncode zorunda olacak ve ben Curl kullanarak yerine * file_get_contents * fonksiyonu öneririm.

You dönüş var_dump Eğer erişmek için mahalle veri ve yapı göreceksiniz.

Bir güncelleme - mahalle veriler, kullanılabilir olduğunda, şimdi yeni V3 API ile Google'ın Geocoder aracılığıyla sağlanır. Mahalle address_components dizideki sadece başka bir veri türüdür. Daha fazla bilgi / code.google.com / apis / maps / belge / coğrafi kodlama altındadır

http://www.maxmind.com/app/ip-location adlı ücretsiz bir hizmeti kullanmak

Bunu% 100 doğru almak için asla konum, ama sizin için bir başlangıç ​​vermelidir.

Orada da HTML5 coğrafi hedef belirleme, ancak tüm tarayıcılar henüz bunu destekleyecek ve ben kullanıcının coğrafi konumu ayıklamak için nasıl emin değilim ediyor.