Mapbox Gl Js-使用Mapbox方向和切换层

问题描述

我正在尝试使用mapboxdirection和switchLayer编写代码。

我想实现一个在两点之间绘制路线的功能和一个切换多张地图的功能。

参考URL如下。

https://docs.mapbox.com/jp/mapbox-gl-js/example/setstyle/

https://docs.mapbox.com/jp/mapbox-gl-js/example/mapbox-gl-directions/

因此,基于示例代码实现的代码如下。

<!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>sample</title>
            <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
            <script src="https://api.mapbox.com/mapbox-gl-js/v1.6.1/mapbox-gl.js"></script>
            <link href="https://api.mapbox.com/mapbox-gl-js/v1.6.1/mapbox-gl.css" rel="stylesheet" />
            <style>
                body { margin: 0; padding: 0; }
                #map { position: absolute; top: 0; bottom: 0; width: 100%; }
            </style>
        </head>
        <body>
            <script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v4.0.2/mapbox-gl-directions.js"></script>
            <link rel="stylesheet" href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v4.0.2/mapbox-gl-directions.css" type="text/css"/>
            <style>
                #menu {
                    position: absolute;
                    background: #fff;
                    padding: 10px;
                    font-family: 'Open Sans',sans-serif;
                }
            </style>

            <div id="map"></div>
            <div id="menu">
                <input id="streets-v11" type="radio" name="rtoggle" value="streets" checked="checked"/>
                <label for="streets">streets</label>
                <input id="light-v10" type="radio" name="rtoggle" value="light" />
                <label for="light">light</label>
                <input id="dark-v10" type="radio" name="rtoggle" value="dark" />
                <label for="dark">dark</label>
            </div>
            <script>
                mapboxgl.accessToken = 'pk.eyJ1IjoidGFrYW4iLCJhIjoiY2tjOG41emF3MThsaTJydDY5ajFzM2ZqdCJ9.8mqKF71ZVvEkskX2l5_liA';
                    var map = new mapboxgl.Map({
                    container: 'map',style: 'mapbox://styles/mapbox/streets-v11',zoom: 13,center: [4.899,52.372]
                });

                var layerList = document.getElementById('menu');
                var inputs = layerList.getElementsByTagName('input');

                function switchLayer(layer) {
                    var layerId = layer.target.id;
                    map.setStyle('mapbox://styles/mapbox/' + layerId);
                }

                for (var i = 0; i < inputs.length; i++) {
                    inputs[i].onclick = switchLayer;
                }

                map.addControl(
                    new MapboxDirections({
                        accessToken: mapboxgl.accessToken
                    }),'bottom-left'
                );
            </script>
        </body>
    </html>

切换地图时,A点和B点的显示消失了。

即使切换地图,我也希望继续显示点。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...