2009-12-09 74 views
4

有沒有什麼方法可以根據傳入的地址,郵編,城市,州到Google地理編碼器有效/準確地拉出城市內的鄰里?根據地址與Google地理編碼器/ API返回鄰域

每當我嘗試通過HTTP(理想的解決方案),以做,如果你發現它返回以下信息

<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> 

中,「地點名稱」舊金山還在說?

在這一點上,我打開使用Javascript API /調用而不是HTTP調用,它只是似乎對我正在嘗試做的事情過度(更多是頭痛)。

理想情況下,我現在需要在舊金山工作,但如果我能夠爲所有美國主要城市工作,那就太好了。

+0

在這種情況下,你會期待什麼地點/鄰居名稱而不是舊金山?過去我曾看過谷歌地圖與各個地區的交易。 – 2009-12-11 14:24:31

+0

在這種情況下,我希望能有像「使命」或「使命」之類的東西。我也知道谷歌應該不僅僅能夠處理這樣的查詢,因爲數據肯定在您的掌握之中,但正如這裏顯而易見的,它將整個舊金山市作爲地區名稱歸還? – dnyce 2009-12-14 05:53:59

回答

4

據我所知,您無法通過Google地圖API獲取社區數據。您可以嘗試其他Web服務,例如Urban Mapping的Neighborhood API:http://developer.urbanmapping.com/demo/或Maponics(http://www.maponics.com/Neighborhood_Boundaries/neighborhood_boundaries.html)。 Urban Mapping的API包含通過lat long獲取鄰域的方法以及各種地址元素。

+0

我會將此信息轉發給替換此特定項目的開發人員。 – dnyce 2009-12-31 17:13:10

+1

這是不正確的。我之前使用Google地圖獲取鄰居名稱。 – beth 2015-02-16 21:43:27

0

http://www.maxmind.com/app/ip-location

使用免費服務,你永遠不會得到它100%準確,但它應該給你一個良好的開端。

還有HTML5中的地理定位,但並非所有的瀏覽器都支持它,我不確定如何提取用戶的地理位置。

+0

偉大的服務和建議,但它似乎像這項服務更符合地理定位您的網站的訪問者基於他們的IP。我特別希望根據從表單傳遞給API的地址,從某些API(本例中爲Google)中提取鄰域數據。即在上面的例子中,鄰里應顯示爲「任務區」或「任務」。 – dnyce 2009-12-09 05:20:01

+0

對不起,我誤解了你的意思。我認爲Google地圖不支持您所追求的內容。 – Noodles 2009-12-10 00:15:28

2

Google地理編碼器現在通過新的V3 API提供更新 - 鄰居數據(當可用時)。 Neighborhood只是address_components數組中的另一種數據類型。更多信息是code.google.com/apis/maps/documentation/geocoding/

4
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); 
} 

只是作爲一個例子,當然你必須來urlencode的變數,我會建議使用,而不是*的file_get_contents捲曲*功能。

如果你var_dump返回,你會看到鄰居數據和訪問它的結構。