我对Leaflet有一个问题,它实际上阻碍了我的整个工作。由于某些原因我无法解释,Leaflet的UI在我的英特尔XDK应用程序中正确加载,但只加载了一个地图图块 - 相同的代码在另一个测试应用程序中工作!现在,我尝试了所有我能做的事情,我希望有人可以解决我的问题。
为了更好地理解,这里是我的leaflet.js中的代码(它不是 leaflet.js,因为我使用leaflet-src.js作为脚本)和截图应用程序的地图窗口。
npm cache clean
答案 0 :(得分:13)
我猜想初始化时地图的大小是罪魁祸首。
Leaflet需要知道初始化时嵌入的元素的大小。 Leaflet使用该信息来了解要加载的图块数量等。此外,map.invalidateSize(..)
link必须遵循任何程序化更改(或Leaflet无法轻易检测到的更改)到地图大小。
我怀疑在设置大小后,Leaflet无法正确读取#map元素的新大小。尝试使之后的大小无效或异步运行初始化。我想补充一下:
setTimeout(function () {
map.invalidateSize();
}, 0);
并检查它是否变得更好。
答案 1 :(得分:1)
我用这个命令修复了我丢失的瓷砖问题:
map.getSize();
看起来像Leaflet需要事先知道元素图的大小,正如Michal所说。