我正在使用JavaScript Google Map API(版本3),更确切地说是在反向地理位置上。在the official documentation的帮助下,我成功执行了反向地理编码,我找到了对应于经度和纬度的地址。
但是我找不到如何找到绑定到该地址的名称。可能吗?如何执行?

谢谢。
卡米尔

最佳答案

您确实需要循环并对google在这些点上找到的内容进行多次检查,一个小的脚本才能实际读取/循环返回的数据(在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->results[0]->中搜索它)。
因此,请阅读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
}
?>

关于javascript - 使用Google Map API进行反向地理编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4874556/

10-11 05:36