百度地图自动获取地图中心所在城市名称

1、编写坐标点地址解析方法

      /**
        * 坐标点地址解析
         * @param point 经纬度点对象
         */
        getGeocoderInfoByPoint:function(point){
            Geocoder.getLocation(point, function(rs) {
                   var addComp = rs.addressComponents;
                   Geocoder.point=point;
                   Geocoder.city=addComp.city;
                   Geocoder.address=addComp.province + " " + addComp.city + " "
                            + addComp.district + " " + addComp.street+ " " + addComp.streetNumber;
            });
            return Geocoder;
        }

2、注册地图事件

           moveend:function(tagId){
                map.addEventListener("moveend",function(e){
                    var point=map.getCenter();
                    BmapUtils.getGeocoderInfoByPoint(point);
                    $("#"+tagId).html(Geocoder.city);
                });
            },
            dragend:function(tagId){
                map.addEventListener("dragend",function(){
                    var point=map.getCenter();
                    BmapUtils.getGeocoderInfoByPoint(point);
                    $("#"+tagId).html(Geocoder.city);
                });
            },
            tilesloaded:function(tagId){
                map.addEventListener("tilesloaded",function(){
                    var point=map.getCenter();
                    BmapUtils.getGeocoderInfoByPoint(point);
                    $("#"+tagId).html(Geocoder.city);
                });
            }

3、调用注册事件处理

    //动态改变地图显示城市
    BmapUtils.event.moveend("curCity");
    BmapUtils.event.dragend("curCity");
    BmapUtils.event.tilesloaded("curCity");

注:解析坐标的方法在BmapUtils下,而事件方法在BmapUtils.event下;可以在之前发布版本上添加。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注