为了防止在最高缩放级别上出现多个重复的世界地图,我正在使用noWrap=true选项。它运作良好,但仅在地图的左侧(灰色区域),右侧仍显示额外的图块。这是为什么?
UPDATE1:看起来是特定Mapbox磁贴或其加载方式存在问题吗?在这里noWrap和https://{s}.tiles.mapbox.com/v3/ebrelsford.ho06j5h0/{z}/{x}/{y}.png
完美运行:NoWrap可以运行JSBIN链接
但是一旦我改变了使用样式加载图块的另一种方式
我可以向右滚动但仍能获得图块
我打开了一个github问题,我怀疑这是库https://github.com/Leaflet/Leaflet/issues/5938的错误
这是某些Mapbox样式和noWrap代码中“不完全”使用选项的问题:(强调我的)
noWrap:图层是否包裹在子午线周围。如果为true,则GridLayer仅在低缩放级别下显示一次。当地图CRS不环绕时不起作用。可以与结合使用,bounds以防止请求超出CRS限制的图块。
noWrap,顾名思义,它告诉Leaflet不要复制“主要”世界。因此,Leaflet必须假设“主”世界是“无限”,并且它尝试将瓦片加载到各处,从而扩展了四叉树方案:与瓦片0/0/0一起(缩放为0),它尝试加载瓦片0 / 1 / 0、0 / -1 / 0等。如果要告诉Leaflet不要扩展四叉树方案,则应指定在“主要”世界之外没有可用的图块。
因此,解决方案就是将Tile Layer bounds选项与以下选项一起使用noWrap:
L.tileLayer(urlTemplate, {
noWrap: true,
bounds: [
[-90, -180],
[90, 180]
]
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)
更新的JS Bin:http : //jsbin.com/nokasukozo/1/edit?html, js,console, output
| 归档时间: |
|
| 查看次数: |
1138 次 |
| 最近记录: |