【问题标题】:Reverse Geocoding with Google Map API使用 Google Map API 进行反向地理编码
【发布时间】:2011-02-02 12:38:48
【问题描述】:


我正在研究 JavaScript Google Map API (Version3),更准确地说是在反向地理定位上。在the official documentation的帮助下,我成功进行了反向地理编码,找到了经纬度坐标对应的地址。
但我找不到如何到达绑定到地址的名称。可能吗?如何执行?

谢谢。
卡米尔。

【问题讨论】:

  • 什么名字?请举个例子。
  • 例如,我向 Google Map API 提交坐标“46.1124, 1.245”,然后它返回地址关联。我希望 API 给我商店的名称或该地址的任何名称。可能吗 ?谢谢。
  • 你的意思是试图从返回结果中提取信息?

标签: javascript google-maps geolocation reverse-geocoding


【解决方案1】:

您确实需要循环并多次检查谷歌在这些点发现的内容,一个实际读取/循环返回数据的小脚本将是(在 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
}
?>

现在根据文档:

注意反向地理编码器 返回多个结果。 ...等

还有:

一般情况下,地址是从 从最具体到最不具体;这 更准确的地址是最 突出的结果...等

你只需要第一个结果就可以得到你想要的(或者至少在那里搜索它$data-&gt;results[0]-&gt;
因此,阅读types 并在此基础上检查您想要的结果是否存在:

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

【讨论】:

  • 嗨,我会试试你的解决方案。干杯
  • 只是想知道为什么这是 PHP 解决方案而不是 JS 解决方案?
【解决方案2】:

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 返回提供位置附近的候选地点列表,然后用户可以对原始搜索中返回的特定实体发起地点详细信息请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2019-06-16
    • 2013-05-20
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2015-11-02
    相关资源
    最近更新 更多