javascript - 使用 document.getElementByID() 切换 Mapbox GL JS 图层不起作用
问题描述
我正在尝试让图层控制组件在 mapbox 中工作。我在这里阅读了mapbox 上的教程,解释了如何获得图层切换。但是,在本教程中,它还创建了我不需要的按钮,因为我正在调用document.getElementByID
,因为我已经创建了一个div
包含 HTML 中的所有图层的按钮。
问题是当我单击 div 中的链接时,什么也没有发生,并且我在 Web 控制台中没有收到任何错误,所以我不确定从这里去哪里。任何帮助将不胜感激。
地图框gl:
map.on('load', function() {
// layer - rail road
map.addLayer({
'id': 'Railroad',
'type': 'line',
'source': {
'type': 'geojson',
'data': geojson_railRoad,
},
'layout': {
'visibility': 'visible'
}
});
var tracks_layer = document.getElementById("tracks");
tracks_layer.onclick = function(){
var visibility = map.getLayoutProperty('Railroad', 'visibility');
if (visibility === 'visible'){
map.setLayoutProperty('Railroad', 'visibility', 'none');
} else {
map.setLayoutProperty('Railroad', 'visibility', 'visible')
}
};
HTML:
<div class="legend-body" id="legend">
<b>Railroad Layers</b>
<div class='train-layer-options'>
<div class="layer-line tracks" id="tracks"></div>
<a href=# class="layer-text" id="tracks">Tracks<br></a>
</div>
解决方案
我不得不id=tracks
从课堂上删除"layer-line tracks"
。现在一切正常。
推荐阅读
- css - 'history.back()' 堆栈的 Javascript 解析以消除页面内附加的导航 ID
- python - 如何为自定义图像回归问题构建 Keras 模型?
- php - 当有新访客时 PDO 如何插入?PHP & PDO
- operating-system - GDT 使用的理论例子是什么?
- ios - 创建开发证书 iOS
- praat - Praat 中的变调准确吗?
- javascript - 如何实时更新而不是一次又一次地重新加载浏览器?
- react-native - 只有在有条件的情况下,如何才能设置状态?
- jupyter-notebook - 将标记单元更改为代码单元的键盘快捷键是什么?
- bash - 带有变量的 printf 没有按预期工作