最近项目需要使用离线地图 leaflet是最好的选择,但是翻遍各大大佬文章找了很多量尺功能都不好用,要不是不兼容 索性自己写一个简单的测量功能 根据地图的经纬度来计算距离。给列为提供个思路,可以自己封装利用,兼容vue2,vue3
<template>
<div>
<div id="map"></div>
<button @click="startMeasurement">开始测量</button>
</div>
</template>
<script>
export default {
data() {
return {
map: null,
drawnItems: null,
lastClickedLatLng: null,
totalDistance: 0,
measuring: false, // 用于跟踪测量是否在进行中
polyline: null, // 用于保存绘制的线对象
};
},
mounted() {
this.map = L.map('map', {
minZoom: 4,
maxZoom: 13,
maxBounds: [
[35.606168, 123.01982],
[38.126654,123.70392],
[38.013431,115.635907],
[34.356035,115.013999]