mapbox gl结合turf.js完成绘图工具画线等距平分

这篇博客介绍了如何结合Mapbox GL与Turf.js库来实现地图上画线并进行等距平分的绘图工具。通过引入相关SDK和页面元素,初始化地图,编写绘制线条的代码,利用Turf.js的计算方法,以及定义点的样式,最终实现了将一条线等分为11段,共标记了12个点的效果。
摘要由CSDN通过智能技术生成

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); //绘制后的回调函数
			}
//绘制线的回调
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值