0

我有一个具有多个图层的 MapService。我想利用图层组来更改带有单选按钮的图层,但想将它与图层 [] 数组选项一起使用,而不是为每个图层创建一个 L.esri.dynamicMapLayer 等。

这是一个示例片段:

  var msndfd = "https://nowcoast.noaa.gov/arcgis/rest/services/nowcoast/forecast_meteoceanhydro_sfc_ndfd_time/MapServer";

            var minTemp = L.esri.dynamicMapLayer({
                url: msndfd,
                layers: [8],
                opacity: .7
            });

我们如何在使用 L.control.layers(baseMaps, overlayMaps) 时根据该图层数组 # 例如 [4,8,12,16] 切换图层?所以每个overlayMaps本质上都是一个layer#而不是另一个dynamicMapLayer变量,比如我上面例子中的minTemp。

4

1 回答 1

0

Leaflet 的图层控件当前编写的方式是从地图中添加/删除图层,以响应用户与复选框和单选按钮的交互。

如果您想组织事物以便选择不同的收音机以确保L.esri.dynamicMapLayer.setLayers()调用它,则必须自定义控件以不同方式布置其 UI(引用单个基础层和要切换的子层数组)并确保选择新无线电时会发生适当的操作。

用于布置列表的现有逻辑 - Control.Layers.js#L313-L322

响应用户交互的现有逻辑 - Control.Layers.js#L382-L387

我的直觉反应是,您可能最好接受控件的设计方式,但我相信您有自己的理由。

于 2017-04-07T20:25:15.753 回答