宣传单 - 图标层交换机

时间:2016-12-10 16:06:41

标签: leaflet

我目前正在为我的大学的班级创建一个互动地图。因为我只是编码的初学者,所以在实现我的想法时遇到了一些麻烦。我想创建一个层交换机,例如此处提供的层交换机:https://github.com/ScanEx/Leaflet-IconLayers

我很遗憾不了解此示例中的所有内容,因此无法将其添加到我自己的地图中。

当我尝试复制代码并将其添加到我的地图时,我所拥有的大部分内容将不再出现(例如标记和infopopup)。

这是我的项目:https://github.com/TheBearMan93/Projet-1

如果有人可以帮助我解决我的问题,我将非常感激。

感谢您的时间

1 个答案:

答案 0 :(得分:0)

要使用宣传单图标图层切换,您将要创建一个baseLayers对象,其中包含名称,图标和图层。

var providers = {};

providers['OpenStreetMap_Mapnik'] = {
    title: 'osm',
    icon: './images/icons/openstreetmap_mapnik.png',
    layer: L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        maxZoom: 19,
        attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
    })
};

然后,您将使用icon-layer-switch库,而不是使用标准的传单层控件。这将遍历您定义的所有提供程序,创建图层控件并添加到地图中。

var layers = [];
for (var providerId in providers) {
    layers.push(providers[providerId]);
}
layers.push({
    layer: {
        onAdd: function() {},
        onRemove: function() {}
    },
    title: 'empty'
})
var ctrl = L.control.iconLayers(layers).addTo(mymap);

我已经在你的github项目上创建了一个pull请求,看看它对你有用。我希望这会有所帮助。