Leaflet仅加载一个tile

时间:2015-07-16 12:52:30

标签: javascript leaflet intel-xdk

我对Leaflet有一个问题,它实际上阻碍了我的整个工作。由于某些原因我无法解释,Leaflet的UI在我的英特尔XDK应用程序中正确加载,但只加载了一个地图图块 - 相同的代码在另一个测试应用程序中工作!现在,我尝试了所有我能做的事情,我希望有人可以解决我的问题。

为了更好地理解,这里是我的leaflet.js中的代码(它不是 leaflet.js,因为我使用leaflet-src.js作为脚本)和截图应用程序的地图窗口。

npm cache clean

http://imgur.com/exOUZuT

2 个答案:

答案 0 :(得分:13)

我猜想初始化时地图的大小是罪魁祸首。

Leaflet需要知道初始化时嵌入的元素的大小。 Leaflet使用该信息来了解要加载的图块数量等。此外,map.invalidateSize(..) link必须遵循任何程序化更改(或Leaflet无法轻易检测到的更改)到地图大小。

我怀疑在设置大小后,Leaflet无法正确读取#map元素的新大小。尝试使之后的大小无效或异步运行初始化。我想补充一下:

setTimeout(function () {
    map.invalidateSize();
}, 0);

并检查它是否变得更好。

答案 1 :(得分:1)

我用这个命令修复了我丢失的瓷砖问题:

map.getSize();

看起来像Leaflet需要事先知道元素图的大小,正如Michal所说。