在 Leaflet 中将 Key/Value 对附加到 L.Control.layer
Append Key/Value pair to L.Control.layer in Leaflet
这是我的 "issue."
的简化示例
我有一个 key/value 对的列表,如下所示:
var baseMaps = {"thing1": thing1,
"thing2": thing2};
var overlayMaps = {"OverLay1": link to overlay2
"Overlay2": link to overlay2};
等......
我可以使用此代码添加到我的对象列表中:
overlayMaps["New Item"] = link to new item;
我在控制台上验证它已添加到 overlayMaps 列表中。
问题:它不像其他所有的那样显示在地图侧面的框中。它们在一个盒子里,旁边几乎没有复选标记来打开和关闭它们。我是否缺少一些代码来执行此操作?看来我需要一种方法来刷新图层组列表。
假设您的其余代码与 documentation 中的示例一致。
L.control.layers(baseLayers, overlays).addTo(map);
问题是您丢失了对控件实例的引用,因为您没有将它分配给任何东西。由于 addTo 方法是可链接的,它将为您提供控制权。
var layerControl = L.control.layers(baseLayers, overlays).addTo(map);
现在您可以在您的代码中访问它,运行 它的方法如 layerControl。addBaseLayer
这是我的 "issue."
的简化示例我有一个 key/value 对的列表,如下所示:
var baseMaps = {"thing1": thing1,
"thing2": thing2};
var overlayMaps = {"OverLay1": link to overlay2
"Overlay2": link to overlay2};
等......
我可以使用此代码添加到我的对象列表中:
overlayMaps["New Item"] = link to new item;
我在控制台上验证它已添加到 overlayMaps 列表中。
问题:它不像其他所有的那样显示在地图侧面的框中。它们在一个盒子里,旁边几乎没有复选标记来打开和关闭它们。我是否缺少一些代码来执行此操作?看来我需要一种方法来刷新图层组列表。
假设您的其余代码与 documentation 中的示例一致。
L.control.layers(baseLayers, overlays).addTo(map);
问题是您丢失了对控件实例的引用,因为您没有将它分配给任何东西。由于 addTo 方法是可链接的,它将为您提供控制权。
var layerControl = L.control.layers(baseLayers, overlays).addTo(map);
现在您可以在您的代码中访问它,运行 它的方法如 layerControl。addBaseLayer