1.首先引入对应的sdk插件,以及页面元素,代码如下:
<link href="https://api.mapbox.com/mapbox-gl-js/v2.2.0/mapbox-gl.css" rel="stylesheet">
<script src="https://api.mapbox.com/mapbox-gl-js/v2.2.0/mapbox-gl.js"></script>
<script src="js/mapbox-gl-draw.js"></script>
<link rel="stylesheet"
href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.2.2/mapbox-gl-draw.css" type="text/css">
<!-- 使用unpkg -->
<script src="https://unpkg.com/@turf/turf/turf.min.js"></script>
<div id="map"></div>
<button id="drawLine" onclick="drawLine()">绘线</button>
2.初始化地图,代码如下:
mapboxgl.accessToken = '';
var map = new mapboxgl.Map({
container: 'map', // container id
style: 'mapbox://styles/mapbox/streets-v11', // style URL
center: [-74.5, 40], // starting position [lng, lat]
zoom: 9 // starting zoom
});
var draw = new MapboxDraw({
displayControlsDefault: false
});
map.addControl(draw); //添加绘制控件
3.添加绘线的代码:
let drawLineBool = false;
let pointsNum = 12; //定义点的个数,12个点,平均分成11段
//绘制线
function drawLine() {
drawLineBool = true;
draw.changeMode("draw_line_string"); //绘制线
map.on('draw.create', updateArea); //绘制后的回调函数
}
//绘制线的回调