Leaflet: 直到调整窗口大小才加载所有图块

创建于 2012-05-21  ·  8评论  ·  资料来源: Leaflet/Leaflet

只有在调整窗口大小或手动触发 ._onResize() 后才能正确加载所有图块

最有用的评论

我看到了同样的问题。 最初只显示一些图块,但如果我调整浏览器窗口的大小,则会显示所有图块。

所有8条评论

在 windows resize 上调整大小可以正常工作,请参阅此示例: http :

如果您手动调整地图容器的大小,则需要调用map.invalidateSize()

我看到了同样的问题。 最初只显示一些图块,但如果我调整浏览器窗口的大小,则会显示所有图块。

没有修复 chrome27 上的这个错误。我有同样的问题
网址失败

检查这个: http :

@mourner我必须动态更改地图。我使用 map._onResize() 来修复它。上面的 url 是一个全屏示例,不用于更改地图大小。感谢您的 hack @ludinov-stuzo

@mourner我发现了问题。我在动画之后使用 setTimeout() 来执行 invalidateSize() 。

    var is_fullScreen=0;
    $("#close_left").click(function(){
        if(is_fullScreen){
            $("#left_panel").animate({left:0,opacity:1},800);
            $("#right_panel").animate({marginLeft:280},800);
            this.className="icon-left";
            is_fullScreen=0;
            setTimeout(function(){ map.setView([5,40],2);},1000);
        }else{
            $("#left_panel").animate({left:-280,opacity:0},800);
            $("#right_panel").animate({marginLeft:0},800);
            this.className="icon-right";
            setTimeout(function(){map.invalidateSize();            map.setView([5,-20],3);},1000)
            is_fullScreen=1;
        }
    });

在 windows resize 上调整大小可以正常工作,请参阅此示例: http :

如果您手动调整地图容器的大小,则需要调用map.invalidateSize()

你让我今天一整天都感觉很好。 我的地图无法正常工作。 包括setViewflyTopanTofitbounds在内的所有功能都不能正常工作。 它有时会起作用,有时不会。 我只是不明白什么。 然后我在调整窗口大小时看到它有效,经过数小时无用的研发后到达了这个线程。

非常感谢。

Map obj 对我的帮助。 添加一个在地图加载或更改大小并在内部执行时触发的函数 - map.invalidateSize().

反应钩子方式:

import { Map as LeafletMap } from "react-leaflet";

export default const MyMap = () => {

   useEffect(()=>{
        mapElement.current.leafletElement.invalidateSize();
    },[mapElement])


  /*render and other function*/
}
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

arminghm picture arminghm  ·  3评论

viswaug picture viswaug  ·  4评论

piehei picture piehei  ·  3评论

broofa picture broofa  ·  4评论

timwis picture timwis  ·  3评论