百度地图区域的中心点怎么定位?

Markdown

有大佬知道链家是怎么定位区域的中心点么? 不会是一个点一个点打上去的吧....

区域的中心点我按照下面算的, 跟链家上的点不一样. 浦东新区很明显.
链家的地址: https://sh.lianjia.com/ditu/

function getBoundary() {
    var bdary = new BMap.Boundary();
    bdary.get(`上海市${region.name}`, function (rs) {       //获取行政区域
        console.log(rs)
        // map.clearOverlays();        //清除地图覆盖物       
        var count = rs.boundaries.length; //行政区域的点有多少个
        if (count === 0) {
            console.log(region.name)
            console.log(region)
        }
        var pointArray = [];
        var lngAry = [];
        var latAry = [];
        rs.boundaries[0].split(';').forEach(item => { 
            lngAry.push(item.split(',')[0]); 
            latAry.push(item.split(',')[1]); 
        })
        for (var i = 0; i < count; i++) {
            
            var ply = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 2, strokeColor: "#ff0000" }); //建立多边形覆盖物
            map.addOverlay(ply);  //添加覆盖物
            pointArray = pointArray.concat(ply.getPath());
        }
        var minLng = Math.min(...lngAry);
        var maxLng = Math.max(...lngAry);
        var minLat = Math.min(...latAry);
        var maxLat = Math.max(...latAry);
        var cenLng =(parseFloat(maxLng)+parseFloat(minLng))/2;
        var cenLat = (parseFloat(maxLat)+parseFloat(minLat))/2;
        var myCompOverlay = new ComplexCustomOverlay(new BMap.Point(cenLng, cenLat), region.name, region.countHotel);
        var cen = new BMap.Marker(new BMap.Point(cenLng, cenLat));
        map.addOverlay(myCompOverlay);
        map.addOverlay(cen);
        // map.setViewport(pointArray);    //调整视野  
    });
}
阅读 5.3k
1 个回答
实例化Boundary类,调用实例的get方法拿到边界点,根据上下左右的极点就可以计算出中心点了
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题