首页 / 浏览问题 / WebGIS / 问题详情
leaflet出现设置Zoom问题
55EXP 2022年05月27日

leaflet两次设置Zoom时出现错误

<script>
    var crs =L.Proj.CRS("EPSG:3857",{
       bounds: L.bounds([-20037508.34 , -20037508.34],[ 20037508.34 , 20037508.34]),能投影
    });

    var url="http://localhost:8090/iserver/services/map-china400/rest/maps/China"
    var map = L.map('map', {
       crs:crs,
        zoom: 5,
       center:[0,0]//

    });
    L.supermap.tiledMapLayer(url).addTo(map);//将从url获取的layer装载到map

   map.on("zoom",function () {
        alert(map.getZoom())
    })



    $("#btn").on("click",function () {
       var zoom=map.getZoom()
        map.setZoom(0)//////////////////////////出错的地方
        map.setZoom(zoom)///////////////////////出错的地方

    })




</script>

在某些级数如“3”下会出错,但是在大级数下又能正常执行

2 个回答

$("#btn").on("click",function () {
    map.zoomIn()
    map.zoomOut()

})

如果是这样缩放,地图也不会还原

55EXP 2022年05月27日
您好,您的代码在选择‘btn’元素里面的点击事件设置zoom重复了导致无效,请您修改代码逻辑,一个点击事件只执行一部操作。
3,405EXP 2022年05月27日
如果这样是有效的

map.setZoom()

map.setZoom()

为什么一个点击事件只能触发一个操作呀,我想着设置两下相当于刷新一下地图,有没有更好的刷新地图的方法呢
您可以添加一个放大与一个缩小按钮,分别调用不同的点击事件,刷新的话使用map.refresh()方法

那就没不要的,我的目的就是设置两次zoom来刷新地图,因为我在做echarts的时候拉框查询的结果会卡,但是发现缩放以后就正常了,所以想通过放大缩小还原地图来刷新

查询出来会卡,但是滚动滑轮缩放Zoom以后正常

leaflet里面好像没有refresh方法
根据您的描述,这种查询结果出来后出现的卡顿情况是否排除了是网络的原因,,您是否有看过查询结果出来后刷新时的网络请求情况呢,如果refresh与zoom方法的请求情况差不多,就说明是结构原因,如果排除其他原因的可能性,麻烦您将能复现的代码发送到邮箱1426221195@qq.com.
leaflet有没有刷新地图的方法呢,就是按照当前的缩放和中心,重新加载地图,refresh不是leaflet的函数
代码以发送至您的邮箱,谢谢
您可以使用使用setUrl()方法刷新map
...