各位好。现在在学习googlemap的第三版api,关于地址解析这方面,调用api是不是跟谷歌自己的地图的查找精度有差异啊。比如我在自己的项目里搜索“齐鲁软件园”,返回的结果只有青岛崂山的软件园和济南历下区的软件园。可是在谷歌里查询有1400多个结果。是不是因为api是免费的,所以不给那么精确啊附js代码片段var geocoder = new google.maps.Geocoder();
geocoder.geocode({
'address': address//查询文字
}, function (results, status) {
//回调函数
});
googlemap javascriptgooglemapapi

解决方案 »

  1.   

    请使用google.maps.places.PlacesService类进行检索
    在调用api是加入libraries=places引入places库
    <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&libraries=places"></script>/*检索方法*/
    function search() {
    var address = document.getElementById('searchTextField').value;//获取文本框中输入的检索关键字
                var service = new google.maps.places.PlacesService(map);//初始化类,将map对象传入
    //检索用的属性对象
                var request = {
                    bounds: map.getBounds(),//获取地图区域
                    query: address,//检索关键字
                    location: map.getCenter()//获取地图中心
                };
        service.textSearch(request, callback);//执行检索操作,callback为检索完毕后回调函数
    }
    /*检索完成后,将检索结果集合中的一个作为地图中心,并在地图上标注每个检索结果*/
      function callback(result, status) {
       if (status == google.maps.GeocoderStatus.OK) {
         map.setCenter(result[0].geometry.location);
            for (var i = 0; i < result.length; i++) {
    var er = new google.maps.Marker({
    map: map,
    position: result[i].geometry.location
    });
    }
    }
    }