【问题标题】:Disable traffic map views with HERE JavaScript API使用 HERE JavaScript API 禁用交通地图视图
【发布时间】:2017-08-24 11:00:08
【问题描述】:

HERE 地图材料带有不同的地图视图和可能的叠加层,例如“交通状况”、“公共交通”和“事件”。我根本不想提供这三种观点。不幸的是,我只能通过以下代码停用它们:

//disable traffic information
var control = HEREMap.ui.getControl('mapsettings');  
control.getChildren()[1].m[3].setDisabled(true);
control.getChildren()[1].m[2].setDisabled(true);
control.getChildren()[1].m[1].setDisabled(true);

但是,这给我留下了灰色的、无法点击的选项,例如“交通状况”、“公共交通”和“事件”。有没有办法让他们完全不使用 JavaScript API?

在此先感谢 DG7 团队

【问题讨论】:

    标签: here-api


    【解决方案1】:

    截至 2018 年 8 月,API 中似乎没有任何选项可以创建没有流量视图的默认 UI。

    我使用以下代码清理默认菜单:

    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);
    

    【讨论】:

      【解决方案2】:

      不漂亮,但它有效。按照相同的方法删除 hr。

      $(".H_btn:contains('Traffic conditions')").hide();
      $(".H_btn:contains('Public transport')").hide();
      $(".H_btn:contains('Show traffic incidents')").hide();
      

      不带 jQuery 的替代方案:

      control.getChildren()[1].m[3].el.hidden = true; 
      control.getChildren()[1].m[2].el.hidden = true; 
      control.getChildren()[1].m[1].el.hidden = true;
      

      【讨论】:

      • 为什么假设他想使用jQuery?您至少应该提到您的答案需要它。 JavaScript !== jQuery
      • control.getChildren()[1].m[3].el.hidden = true; control.getChildren()[1].m[2].el.hidden = true; control.getChildren()[1].m[1].el.hidden = true;
      • 没有及时格式化代码,但没有 JQuery 也可以。
      • 你这次为什么不编辑你的答案?此外 - 在你的新提议中,:contains 发生了什么?
      • 如果我改变答案,cmets 将没有任何意义。不再需要包含,因为他正在通过节点引用特定的菜单项。该对象有一个属性为 hidden 的 el,可以设置为 true。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 1970-01-01
      • 2022-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多