传单错误:对象 #<对象> 在 file:///android_asset/www/leaflet.js:6 没有方法“

LeafLet Error : Object #<Object> has no method 'onAdd' at file:///android_asset/www/leaflet.js:6

本文关键字:对象 asset android www 有方法 leaflet js 错误 单错误 file      更新时间:2023-09-26

我试图了解传单是如何工作的。我正在尝试本教程。我从教程中删除了一些代码以获得更干净的代码。现在L.control.layers有问题。

如果我想像这样添加叠加层

var overlays = {
          "Cities": cities
            };
var layersControl = L.control.layers(null, overlays);

向控件添加叠加层没有问题。使用此代码,我可以通过单击复选框显示/隐藏图层

但是如果我想像这样添加叠加层

 var overlays = {
              "Cities": cities
                };
var layersControl = L.control.layers();
layersControl.addOverlay(overlays);

叠加有问题。在这里,当我想通过单击复选框显示/隐藏图层时,会出现错误。

未捕获的类型错误:对象 # 在 file:///android_asset/www/leaflet.js:6 没有方法"onAdd"

未捕获的类型错误:对象 # 在 file:///android_asset/www/leaflet.js:6 没有方法"onRemove"

我必须使用 2. 一段代码。谁能帮我?

完整代码在这里

var cities = new L.LayerGroup();
 L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.').addTo(cities),
            L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.').addTo(cities),
            L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.').addTo(cities),
            L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.').addTo(cities);

            var cmAttr = 'Map data &copy; 2011 OpenStreetMap contributors, Imagery &copy; 2011 CloudMade',
                cmUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/{styleId}/256/{z}/{x}/{y}.png';

            var map = L.map('map');

            map.addLayer(cities,true);
            map.setView([39.73, -104.99],10);
            var overlays = {
                "Cities": cities
            };
    var layersControl = L.control.layers(null, overlays);
     layersControl.setPosition("bottomleft");
     layersControl.addTo(map);

我自己找到了解决方案。

我直接添加了城市对象,而不是尝试添加叠加层

var layersControl = L.control.layers();
layersControl.addOverlay(cities,'Cities');