我正在研究 JavaScript Google Map API (Version3),更准确地说是在反向地理定位上。在官方文档的帮助下,我成功地进行了反向地理编码,找到了经纬度坐标对应的地址。
但我找不到如何到达绑定到地址的名称。可能吗?如何执行?
谢谢。
卡米尔。
我正在研究 JavaScript Google Map API (Version3),更准确地说是在反向地理定位上。在官方文档的帮助下,我成功地进行了反向地理编码,找到了经纬度坐标对应的地址。
但我找不到如何到达绑定到地址的名称。可能吗?如何执行?
谢谢。
卡米尔。
您确实需要循环并多次检查谷歌在这些点发现的内容,一个实际读取/循环返回数据的小脚本将是(在 PHP 中):
<?php
$data = json_decode(file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=46.1124,1.245&sensor=true"));
if($data->status == "OK") {
if(count($data->results)) {
foreach($data->results as $result) {
echo $result->formatted_address . "<br />";
}
}
} else {
// error
}
?>
现在根据文档:
请注意,反向地理编码器返回了多个结果。...ETC
和:
通常,地址从最具体到最不具体返回;更准确的地址是最突出的结果......等等
您只需要第一个结果即可获得您想要的(或至少在那里搜索它$data->results[0]->
。
所以阅读类型并基于此您可以检查您想要的结果是否存在:
<?php
$data = json_decode(file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=46.1124,1.245&sensor=true"));
if($data->status == "OK") {
if(count($data->results)) {
foreach($data->results[0]->address_components as $component) {
if(in_array("premise",$component->types) || in_array("route",$component->types) || in_array("park",$component->types)) {
echo $component->long_name . "<br />";
}
}
}
} else {
// error
}
?>
Google Map API 有一个地方查找 API 的 Beta 版本。我想这就是你要找的。基本上,您传递一个 lat/lng 或地址,然后 google 会将该地址反向查找到一个地名(如果它在其数据库中)。
请参阅他们的文档: http ://code.google.com/apis/maps/documentation/places/
摘自他们对 Places API 的介绍:
Places API 有两种相关的基本请求类型:Place Search 请求和 Place Details 请求。地点搜索请求发起对所提供位置周围的“地点”的请求,通常通过地理定位提供(以便用户可以搜索他们当前所在的地点或附近的地点)。Places API 返回提供位置附近的候选地点列表,然后用户可以对原始搜索中返回的特定实体发起地点详细信息请求。