动态地在MapSettingsControl中添加层,这样我就可以切换到可见性了。当我试图在mapSettingControl中添加层时,它被禁用了。
背景:
我有一个网页应用程序开发使用传单。我有5个层,如图1所示。它在传单上工作得很好。现在我在这里使用Maps javascript API来开发相同的web应用程序。
我在传单上做得如何:
当添加层控制时,我将它们作为映射覆盖添加。
let layerControl = L.control.layers(baseMaps, overlayMaps).addTo(map);当我需要动态地在层控件中添加覆盖时,我使用以下方法:
layerControl.addOverlay(somelayer, "layer name");这个很好用。

如何使用这里的Maps js:
因为我有五个层,两个是集群层,两个是标记层和一个geojson。我试图通过为五个层创建组并将它们添加到映射设置控件的层中来应用相同的方法。
public clusterGroup1 = new H.map.Group();
public clusterGroup2 = new H.map.Group();
public markerGroup1 = new H.map.Group();
public markerGroup2 = new H.map.Group();
public boundary = new H.map.Group();创建自定义地图设置ui:
this.customizedMapSetting = new H.ui.MapSettingsControl({
baseLayers: [{
label: "Normal", layer: defaultLayers.vector.normal.map
}],
layers: [{
label: "Cluster-1",
layer: this.clusterGroup1
},
{
label: "Cluster-2",
layer: this.clusterGroup2
},
{
label: "Marker-1",
layer: this.markerGroup1
},
{
label: "Marker-2",
layer: this.markerGroup2
},
{
label: "Geojson",
layer: this.boundary
}]
});
this.customizedMapSetting.setAlignment('top-right');
ui.addControl("customized", this.customizedMapSetting);

我正在为这样一个组添加标记:
dataArray.forEach(data=> {
let lat = data.latlng[0];
let lng = data.latlng[1];
var marker = new H.map.Marker({ lat: lat, lng: lng }, { icon: icon});
this.markerGroup1.addObject(marker);
});问题陈述
我无法让这个mapSetting ui为我的层工作。
如何在MapSettingControl中添加集群层,以便切换(显示/隐藏)它们?(我认为我没有使用正确的分组方法)当我将它们作为一个map.addLayer(clusterLayer)添加时,效果很好。
如何在MapSettingControl中动态添加层?传单法的可能替代办法:
layerControl.addOverlay(somelayer, "layer name");发布于 2019-10-17 07:02:43
从API来看,MapSettingsControl.Options似乎
layers: {
label: 'test',
layer: instance of H.map.layer.Layer
}我们在切换时得到的错误是关于第一个参数的InvalidArgumentException来自DataModel.add。我相信这意味着在切换时,DataModel.add被调用并传递在MapSettingsControl中设置的H.map.Group,但是DataModel.add需要H.map.layer.Layer,但接收H.map.Group。
我不确定是否可以简单地在H.map.Group中添加MapSettingsControl。我认为我们必须以某种方式将H.map.Group添加为H.map.layer.Layer的provider,并将Layer对象添加到MapSettingsControl中。
编辑
至于增加集群。当我试图为集群添加一个新的层时,它就会变成灰色。集群提供程序已经创建,ObjectLayer也被创建了,但是我认为在您创建了MapSettingsControl并定义了充当H.map.layer.Layer的变量之后,更新变量将不会对切换行为产生任何影响。
https://stackoverflow.com/questions/58316602
复制相似问题