首页 / 浏览问题 / WebGIS / 问题详情
leaflet fitBounds后范围不对
hu
4EXP 2022年11月15日
坐标系是4326,使用leaflet 进行开发,

bound ={
    "_southWest": {
        "lat": 30.274200439453125,
        "lng": 119.12063598632812
    },
    "_northEast": {
        "lat": 31.265716552734375,
        "lng": 120.5859375
    }
}

map.fitBounds(bound);

如此设置后,打印map.getBounds()=

{
    "_southWest": {
        "lat": 30.9375,
        "lng": -104.0625
    },
    "_northEast": {
        "lat": 30.9375,
        "lng": 343.828125
    }
}

为什么会出现这种问题?要怎么设置,才能使map定位到设置的范围?

2 个回答

您好,fitBounds是根据您的bounds,设置地图窗口的视图,调整地图显示。生成Bounds的方法有以下两种:

971EXP 2022年11月15日

可是getBounds方法就是获取底图的当前视图的啊,我上面贴的代码的意思是,设置了一个bound,但是地图并没有根据设置的bound显示地图的范围

使用map.fitBounds()可以根据您给出的bounds进行显示,但是您使用的定义方法生成的bounds不能传入方法中,可以选择上面的两种方式中的一种,生成bounds,再使用map.fitBounds()。
上面两种fitBounds方法都试过了,还是不行呢;试过用setView的方法,但是有个zoom的参数,不知道要如何计算
您好,您设置了一个fitBounds,地图会尽可能大缩放到这个bound范围内,其他打印的map.getBounds()可能是移动前的值,您可以设置一个延迟打印的map.getBounds(),可以看到获得的bound包含您设置的bound。
971EXP 2022年12月07日
...