Javascript 谷歌地图API反向查找地址详细信息准确性

Javascript 谷歌地图API反向查找地址详细信息准确性,javascript,google-maps,Javascript,Google Maps,我使用谷歌地图API反向查找地址,特别是国家、城市和邮政编码。我的问题是,使用地理编码器,当你输入一个特定的lat lng时,你会得到一系列基于地址细节准确性的结果。例如,如果你点击街道,你得到的地址细节准确度为8,地址如下所示“街道、城市、国家代码”或“街道、城市邮政编码、国家代码”。如果你点击另一个位置,你可以得到返回的地址细节准确度为5;城市邮政编码,国家代码 我要找的是城市、邮政编码和国家。有没有办法强迫谷歌地图始终返回5的地址详细信息准确度,或者返回分为各个部分的元素,即城市、邮政编码

我使用谷歌地图API反向查找地址,特别是国家、城市和邮政编码。我的问题是,使用地理编码器,当你输入一个特定的lat lng时,你会得到一系列基于地址细节准确性的结果。例如,如果你点击街道,你得到的地址细节准确度为8,地址如下所示“街道、城市、国家代码”“街道、城市邮政编码、国家代码”。如果你点击另一个位置,你可以得到返回的地址细节准确度为5;城市邮政编码,国家代码

我要找的是城市、邮政编码和国家。有没有办法强迫谷歌地图始终返回5的地址详细信息准确度,或者返回分为各个部分的元素,即城市、邮政编码和国家

这是我用来获取信息的代码:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> 
  <head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>Google Maps JavaScript API Example:  Reverse Geocoder</title> 
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAMkjr3Dq_jK6GSFYDFzaHTBRoJ0TBOI_XK4bTNi9dL2l04KlxphRNL_k0peOib9IHF6T2KwlVmOb6uQ" type="text/javascript"></script> 
    <script type="text/javascript">

        var map;
        var geocoder;
        var address;

        function initialize() {

            var zoom = 10;

            map = new GMap2(document.getElementById("map_canvas"));
            map.setCenter(new GLatLng(40.730885, -73.997383), zoom);
            map.setUIToDefault();
            GEvent.addListener(map, "click", getAddress);
            geocoder = new GClientGeocoder();
        }

        function getAddress(overlay, latlng) {
            if (latlng != null) {
                address = latlng;
                geocoder.getLocations(latlng, showAddress);
            }
        }

        function showAddress(response) {
            map.clearOverlays();
            if (!response || response.Status.code != 200) {
                alert("Status Code:" + response.Status.code);
            } else {
                place = response.Placemark[0];
                point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
                marker = new GMarker(point);
                map.addOverlay(marker);

                var message = '<b>orig latlng:</b>' + response.name + '<br/>' +
                                '<b>latlng:</b>' + place.Point.coordinates[1] + "," + place.Point.coordinates[0] + '<br>' +
                                '<b>Status Code:</b>' + response.Status.code + '<br>' +
                                '<b>Status Request:</b>' + response.Status.request + '<br>' +
                                '<b>Address:</b>' + place.address + '<br>' +
                                '<b>Accuracy:</b>' + place.AddressDetails.Accuracy + '<br>' +
                                '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode;

                marker.openInfoWindowHtml(message);
            }
        }


    </script> 
  </head> 

  <body onload="initialize()"> 
    <div id="map_canvas" style="width: 800px; height: 600px"></div> 
  </body> 
</html>

谷歌地图JavaScript API示例:反向地理编码器
var映射;
var地理编码器;
var地址;
函数初始化(){
var=10;
map=newgmap2(document.getElementById(“map_canvas”);
地图设置中心(新格拉特林(40.730885,-73.997383),缩放);
map.setUIToDefault();
addListener(映射“单击”,获取地址);
geocoder=新的GClientGeocoder();
}
函数getAddress(覆盖、latlng){
如果(latlng!=null){
地址=latlng;
地理编码器。获取位置(latlng、showAddress);
}
}
函数showAddress(响应){
map.clearOverlays();
如果(!response | | response.Status.code!=200){
警报(“状态代码:+响应.状态.代码”);
}否则{
地点=响应。地点标记[0];
点=新玻璃(地点点坐标[1],地点点坐标[0]);
标记器=新的GMarker(点);
添加覆盖图(标记);
var message='orig latlng:'+response.name+'
'+ “latlng:”+place.Point.coordinates[1]+“,“+place.Point.coordinates[0]+”
”+ '状态代码:'+response.Status.Code+'
'+ '状态请求:'+response.Status.Request+'
'+ '地址:'+place.Address+'
'+ '准确度:'+place.AddressDetails.accurity+'
'+ “国家代码:”+place.AddressDetails.Country.CountryNameCode; marker.openInfoWindowHtml(消息); } }
任何帮助都将不胜感激。我最后的办法是解析地址字符串,但这感觉有点过分了。一定有更干净的方法

我目前正在研究getLocations()方法,也许解析JSON结果可以生成我要查找的字段


Thanx.

您需要在应用程序中处理不同的精度级别…API不能为您做任何事情;)。我同意,如果你能告诉地理编码器你想要的准确度,那就太好了,只是现在还没有。也许谷歌将来会实现它,但在那之前,你必须在你的应用程序中解析结果。这篇文章对不同的准确度值进行了分类:

你需要在应用程序中处理不同的准确度级别…API不能为你做任何事情;)。我同意,如果你能告诉地理编码器你想要的准确度,那就太好了,只是现在还没有。也许谷歌将来会实现它,但在那之前,你必须在你的应用程序中解析结果。这篇文章对不同的精度值进行了细分: