Overlay 此处映射:在MapSettingsControl中动态添加图层
在MapSettingsControl中动态添加图层,以便切换可见性。 当我尝试在mapSettingControl中添加图层时,它被禁用 背景: 我有一个使用传单开发的web应用程序。我有5层,如图1所示。传单上写的很好。现在我在这里使用Maps javascript API来开发相同的web应用程序 我在传单中的表现: 我在添加图层控制时将它们添加为地图覆盖,即Overlay 此处映射:在MapSettingsControl中动态添加图层,overlay,here-api,Overlay,Here Api,在MapSettingsControl中动态添加图层,以便切换可见性。 当我尝试在mapSettingControl中添加图层时,它被禁用 背景: 我有一个使用传单开发的web应用程序。我有5层,如图1所示。传单上写的很好。现在我在这里使用Maps javascript API来开发相同的web应用程序 我在传单中的表现: 我在添加图层控制时将它们添加为地图覆盖,即 let layerControl = L.control.layers(baseMaps, overlayMaps).addTo(
let layerControl = L.control.layers(baseMaps, overlayMaps).addTo(map);
当我需要在层控制中动态添加覆盖时,我使用以下方法:
layerControl.addOverlay(somelayer, "layer name");
这工作做得很好
我如何使用heremaps js api:
因为我有五个层,两个是集群层,两个是标记层,一个是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();
已创建自定义地图设置界面:
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);
});
问题陈述我无法使此地图设置ui为我的图层工作 如何在MapSettingControl中添加clusterlayers,以便切换(显示/隐藏)它们?(我认为我没有使用正确的分组方法)当我将它们添加为地图时,addLayer(clusterLayer)工作正常 如何在MapSettingControl中动态添加图层?传单方法的可能替代方案:
layerControl.addOverlay(somelayer, "layer name");
看看API,似乎
MapSettingsControl.Options
layers: {
label: 'test',
layer: instance of H.map.layer.Layer
}
切换时出现的错误是来自DataModel的InvalidArgumentException
。添加关于第一个参数的。我相信这意味着在切换时,DataModel.add
被调用并传递H.map.Group
,该组在mapsettings控件中设置,但DataModel.add需要H.map.layer.layer
但接收H.map.Group
我不确定是否可以简单地在mapsettings控件中添加H.map.Group
。我认为我们必须以某种方式添加H.map.Group
作为H.map.layer.layer
的provider
,并将层对象添加到MapSettingsControl
编辑
至于添加集群。当我尝试为集群添加新层时,它将灰显。创建了集群提供程序,也创建了ObjectLayer,但我认为在创建了MapSettingsControl
并定义了将用作H.map.layer.layer
的变量之后,更新变量将不会对切换行为产生影响。查看API,似乎mapsettings控件。选项
layers: {
label: 'test',
layer: instance of H.map.layer.Layer
}
切换时出现的错误是来自DataModel的InvalidArgumentException
。添加关于第一个参数的。我相信这意味着在切换时,DataModel.add
被调用并传递H.map.Group
,该组在mapsettings控件中设置,但DataModel.add需要H.map.layer.layer
但接收H.map.Group
我不确定是否可以简单地在mapsettings控件中添加H.map.Group
。我认为我们必须以某种方式添加H.map.Group
作为H.map.layer.layer
的provider
,并将层对象添加到MapSettingsControl
编辑
至于添加集群。当我尝试为集群添加新层时,它将灰显。创建了集群提供程序,也创建了ObjectLayer,但我认为在创建了MapSettingsControl
并定义了充当H.map.layer.layer
的变量之后,更新变量不会对切换行为产生影响。请提供一个最小且相关的代码片段,以了解问题以及您迄今为止取得的成就。您好,是否要在地图上显示一些位图图像?然后请看这个链接嗨,不,我不想覆盖位图。我想在地图上显示一些geojson层、标记集群层和一些标记组层。为了控制那里的可见性(切换显示/隐藏),我无法使用“here api”的地图设置控件。请分享geojson图层的外观,好吗?如果您正在谈论地图图层,请查看此文档,矢量和光栅问题与地图设置ui有关,它不能正常工作。请提供一个最小的相关代码片段,以了解问题以及您迄今为止取得的成就。您好,是否要在地图上显示一些位图图像?然后请看这个链接嗨,不,我不想覆盖位图。我想在地图上显示一些geojson层、标记集群层和一些标记组层。为了控制那里的可见性(切换显示/隐藏),我无法使用“here api”的地图设置控件。请分享geojson图层的外观,好吗?如果您正在谈论地图图层,请查看此文档,矢量和光栅问题与地图设置ui有关,它不能正常工作。