百度地图自动缩放与指定中心点的自动缩放

百度地图自动缩放与指定中心点的自动缩放

根据指定中心点,自动计算缩放等级

效果图:
在这里插入图片描述

                function getZoom (list) { 
                    var point0 = new BMap.Point(list[0].lon, list[0].lat);
                    var maxDistance = 0;
                    for(var i = 1; i<list.length;i++){
                        var pointX = new BMap.Point(list[i].lon, list[i].lat);
                        var distance = map.getDistance(point0,pointX).toFixed(1);
                        if(distance > maxDistance){
                            maxDistance = distance
                        }
                    }
                    maxDistance = maxDistance*2;//计算距离中心点最远点和中心点距离的2倍
                    var zoom = ["50","100","200","500","1000","2000","5000","10000","20000","25000","50000","100000","200000","500000","1000000","2000000"]//级别18到3。  
                    // var pointA = new BMap.Point(maxLng,maxLat);  // 创建点坐标A  
                    // var pointB = new BMap.Point(minLng,minLat);  // 创建点坐标B  
                    // var distance = map.getDistance(pointA,pointB).toFixed(1);  //获取两点距离,保留小数点后两位  
                    for (var i = 0,zoomLen = zoom.length; i < zoomLen; i++) {  
                        if(zoom[i] - distance > 0){  
                            return 18-i;//之所以会多3,是因为地图范围常常是比例尺距离的10倍以上。所以级别会增加3。  
                        }  
                    };  
                }
                function setZoom(bPoints) {
                    var mapZoom = getZoom(list);
                    var centerPoint = new BMap.Point(list[0].lon, list[0].lat);
                    map.centerAndZoom(centerPoint, mapZoom);

                }

画点

                for (var i = 0; i < list.length; i ++) {
                    var point = new BMap.Point(list[i].lon, list[i].lat);
                    bPoints.push(point);
                    addMarker(point, list[i].type, list[i].name, i);
                }


                setTimeout(function () {
                    setZoom(bPoints);
                }, 1000)

没有中心点,自动计算缩放等级并展示

                function setZoom(bPoints) {
                     var view = map.getViewport(eval(bPoints));
                     var mapZoom = view.zoom;
                     var centerPoint = view.center;
                     map.centerAndZoom(centerPoint, mapZoom);
                }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值