我是leafletjs的新手。我正在制作一张地图,只有美国地图,只有很少的图层选项,例如道路和主要道路。我有一个基层,使用WMS协议来获取第一层的图块以下代码:
L.tileLayer.wms(......)
然后我有另一个来自不同服务器的层,它不使用WMS协议。此服务器接受bbox,height,width,lat,lng等参数。我可以一次查询此服务器一个磁贴,因此我需要提供多个ajax调用以获取多个磁贴以覆盖当前视图,并在移动地图时更新所有图层。
我遇到的问题是如何让两个层一起工作?以及如何使每个瓦片的边界框成为传单的方式?以及如何继续更新" moveend"用户移动地图时的事件?
使用leafletJS版本0.7.3!
感谢您的帮助
答案 0 :(得分:2)
L.TileLayer
类中有未记录的函数:
L.TileLayer.getTileUrl(tilePoint)
为屏幕上的每个图块调用此函数。它接收带有x
,y
和z
键(磁贴编号)的哈希值,并返回磁贴的图像URL。您可以在L.TileLayer
实例中重写此功能:
var layer = L.tileLayer(url);
layer.getTileUrl = function(tilePoint) {
return 'http://example.com/' + tilePoint.z + '/' + tilePoint.y + '/' + tilePoint.x + '.png';
}
因此,您不需要跟踪地图移动,出现和消失瓷砖等。