我们是否可以从“选择视图”菜单中删除选项?
根据我在网上看到的内容,它可能与图层有关,但是我很难找到一个简单的示例并使它正确地填充选项菜单。
例如,如果我们从不希望在底部显示3个选项并且不需要“地形”图?
更新:我尝试了以下由HERE开发人员支持提供的解决方案(手动删除了一些选项),但最终在其下有一行(并且它没有描述如何删除地形地图,因此还有其他内容)帮助将不胜感激!
或者,如果有一种方法,不仅可以从UI菜单中删除选项,还可以完全摆脱地图中的图层和地图类型,那就更好了。谢谢!
答案 0 :(得分:1)
您可以尝试以下示例:
//get map settings
var mapSettings= ui.getControl('mapsettings');
//remove incidents options
mapSettings.setIncidentsLayer(false);
// remove traffic and public transit option
var traffic=mapSettings.getChildren()[1].getChildren()[1];
var publicTransit=mapSettings.getChildren()[1].getChildren()[2];
mapSettings.getChildren()[1].removeChild(traffic);
mapSettings.getChildren()[1].removeChild(publicTransit);
答案 1 :(得分:1)
可以使用所需的图层列表创建自定义MapSettingsControl并将其显示在UI中。可以为类的构造函数指定层。它们分为2组:
baseLayers
单击这些将更改基本地图(就像“单选按钮”一样工作)。
图层
点击这些按钮后,除了其他图层和现有的基础地图图层(类似于“复选框”)之外,还将在地图上添加指定的图层
ui.addControl('custom_settings_control', new H.ui.MapSettingsControl({
baseLayers: [{
label: 'Normal Map',
layer: maptypes.vector.normal.map
}, {
label: 'Satellite',
layer: maptypes.raster.satellite.map
}],
layers: []
}))
未指定“图层”时,不会自动绘制分隔线。
如果您不想创建默认图层,请从代码中删除 platform.createDefaultLayers(...)方法调用。
请注意,上述内容将与HERE Maps API for JavaScript 3.1版一起使用。如果您使用的是3.0版,请找到migration guide here。
答案 2 :(得分:0)
我在这里找到了另一个解决方案,该解决方案也删除了“行”:
Disable traffic map views with HERE JavaScript API
let mapsettings = ui.getControl('mapsettings');
let menuEntries = mapsettings.getChildren()[1].getChildren();
menuEntries[0].getElement().style.borderBottom = 'none';
for (let i=1; i<menuEntries.length; i++)
menuEntries[i].setVisibility(false);
为了摆脱地图视图选项之一(例如地形或卫星),我做了:
delete maptypes.terrain;
创建默认图层后的。
这并不是我的理想选择(因为我想完全阻止创建图层)是100%,但是从我所看到的情况来看,如果我们尝试创建,这可能会带来更多的麻烦,并且不会带来太多收益从头开始的层。