我目前正在为我的大学的班级创建一个互动地图。因为我只是编码的初学者,所以在实现我的想法时遇到了一些麻烦。我想创建一个层交换机,例如此处提供的层交换机:https://github.com/ScanEx/Leaflet-IconLayers。
我很遗憾不了解此示例中的所有内容,因此无法将其添加到我自己的地图中。
当我尝试复制代码并将其添加到我的地图时,我所拥有的大部分内容将不再出现(例如标记和infopopup)。
这是我的项目:https://github.com/TheBearMan93/Projet-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: '© <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请求,看看它对你有用。我希望这会有所帮助。