根据地址与Google地理编码器/ API返回邻域

问题描述:

有没有什么方法可以根据传入的地址,邮编,城市,州到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

据我所知,您无法通过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

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

Google地理编码器现在通过新的V3 API提供更新 - 邻居数据(当可用时)。 Neighborhood只是address_components数组中的另一种数据类型。更多信息是code.google.com/apis/maps/documentation/geocoding/

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返回,你会看到邻居数据和访问它的结构。