4

有没有什么方法可以根据传入的地址、邮编、城市、州向谷歌地理编码器有效/准确地拉出城市内的社区?

每当我尝试通过 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 调用,这对于我正在尝试做的事情来说似乎有点矫枉过正(而且更让人头疼)。

理想情况下,我现在需要它在旧金山工作,但如果我能让它在美国所有主要城市工作,那就太好了。

4

4 回答 4

4

据我所知,您无法通过 google maps API 获取 Neighborhood 数据。您可以尝试其他 Web 服务,例如 Urban Mapping 的 Neighborhood API: http: //developer.urbanmapping.com/demo/或 Maponics ( http://www.maponics.com/Neighborhood_Boundaries/neighborhood_boundaries.html )。Urban Mapping 的 API 包含按纬度和各种地址元素获取邻域的方法。

于 2009-12-30T20:00:17.273 回答
3
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,我建议使用 CurL 而不是 *file_get_contents* 函数。

如果您 var_dump 返回,您将看到邻域数据和访问它的结构。

于 2012-02-03T02:57:54.640 回答
2

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

于 2012-01-10T09:31:11.743 回答
0

使用来自http://www.maxmind.com/app/ip-location的免费服务

你永远不会让它 100% 准确,但它应该给你一个良好的开端。

HTML5 中也有地理定位,但并非所有浏览器都支持它,我不确定如何提取用户的地理位置。

于 2009-12-09T02:06:40.673 回答