如何在传单中使用TileLayer和TileLayer.WMS添加多个图层

时间:2015-09-15 21:31:12

标签: maps leaflet wms

我是leafletjs的新手。我正在制作一张地图,只有美国地图,只有很少的图层选项,例如道路和主要道路。我有一个基层,使用WMS协议来获取第一层的图块以下代码:

L.tileLayer.wms(......)

然后我有另一个来自不同服务器的层,它不使用WMS协议。此服务器接受bbox,height,width,lat,lng等参数。我可以一次查询此服务器一个磁贴,因此我需要提供多个ajax调用以获取多个磁贴以覆盖当前视图,并在移动地图时更新所有图层。

我遇到的问题是如何让两个层一起工作?以及如何使每个瓦片的边界框成为传单的方式?以及如何继续更新" moveend"用户移动地图时的事件?

使用leafletJS版本0.7.3!

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

L.TileLayer类中有未记录的函数:

L.TileLayer.getTileUrl(tilePoint)

为屏幕上的每个图块调用此函数。它接收带有xyz键(磁贴编号)的哈希值,并返回磁贴的图像URL。您可以在L.TileLayer实例中重写此功能:

var layer = L.tileLayer(url);
layer.getTileUrl = function(tilePoint) {
    return 'http://example.com/' + tilePoint.z + '/' + tilePoint.y + '/' + tilePoint.x + '.png';
}

因此,您不需要跟踪地图移动,出现和消失瓷砖等。