vue3+leaflet开发地图入门教程(超级详细)

vue3+leaflet开发地图01

1.离线地图下载

​ 离线地图下载器有很多,网络上也很多文档,这里不再详细说明,根据项目要求下载对应的瓦片地图就好

2.leaflet官网及地图加载

Leaflet - 一个交互式地图 JavaScript 库 (leafletjs.cn)

​ 官网第一个案例就是加载地图,也很简单,不再详述

3.使用leaflet

3.1 实现动态线段

#安装
yarn add leaflet
#或者
npm i leaflet
#安装插件
npm install leaflet-ant-path

//引入插件 antpath
import {AntPath} from 'leaflet-ant-path'
//折线坐标
let path = [[维度,经度],[维度,经度]...]
//动态折线
 let gPath = antPath(path, {
      paused: false, //暂停  初始化状态
      reverse: false, //方向反转
      delay: 3000, //延迟,数值越大效果越缓慢
      dashArray: [15, 15], //间隔样式
      weight: 7, //线宽
      opacity: 0.8, //透明度
      color: '#0000FF', //颜色
      pulseColor: '#ffffff', //块颜色
    })
 //将动态折线添加到地图中即可
   gPath.addTo(map)

3.2 添加标记点

//设置标记图标样式和大小
let customIcon = L.icon({
    iconUrl: 'path/to/your/custom/icon.png',
    iconSize: [30, 30],
    iconAnchor: [15, 30],
    popupAnchor: [0, -30]
});
//鼠标悬停,变大图标
marker.on('mouseover', function() {
    marker.setIcon(highlightIcon);
});
//鼠标移走,变默认
marker.on('mouseout', function() {
    marker.setIcon(defaultIcon);
});

聚合标记

作用:在Leaflet中,可以通过使用插件如MarkerCluster来实现标记点聚合的功能。MarkerCluster插件可以自动将标记点聚合,并在用户操作地图时根据地图的缩放级别进行动态展示和隐藏。

// 添加标记点并配置聚合功能
var markers = L.markerClusterGroup();
// 创建标记点
var marker1 = L.marker([lat1, lng1]);
var marker2 = L.marker([lat2, lng2]);
// 将标记点添加到聚合组
markers.addLayer(marker1);
markers.addLayer(marker2);
// 将聚合组添加到地图
map.addLayer(markers);

3.3 添加点击事件

特别注意: Leaflet的事件监听器是一次性的,如果你没有重新添加监听器,事件就不会再次触发。核心代码如下:

// 定义点击事件处理函数
function onMarkerClick() {
    alert('Marker clicked!');
    //移除绑定事件
    marker.off('click');
    // 重新绑定事件,如果需要的话
    marker.on('click', onMarkerClick);
}
// 绑定点击事件
marker.on('click', onMarkerClick);


//需要传参的话按照如下使用方法
function onMarkerClick(e, myCustomParam) {
    alert("Marker clicked with custom param: " + myCustomParam);
}
// 绑定点击事件,并传递自定义参数
marker.on('click', onMarkerClick.bind(null, marker,'myCustomValue'));

3.4 弹窗设置

使用setContent这个api可以灵活定制弹窗。若相似弹窗多,建议封装一个共用弹窗组件。

4.天地图和高德地图坐标转换

坐标系算法不一致,所以需要转换,参考文档:

高德地图更换天地图底图(坐标转换)—使用高德API(WMTS)_高德地址查询api 天地图-CSDN博客

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Leaflet 是一种结合了Vue框架和Leaflet库的前端技术,用于展示和操作天地图。天地图是一种具有高清影像和矢量数据的地图服务,提供了丰富的地理信息资源和功能,如地图展示、地图操作、定位导航等。 Vue Leaflet 可以通过调用天地图的API接口,获取并展示天地图的各类地理信息。通过Vue的组件化开发方式,可以方便地在Vue项目中使用这些地理信息,实现自定义的地图功能。例如,在Vue Leaflet 中可以实现地图、标记点、线段、面等地理要素的显示和编辑。 Vue Leaflet 提供了一套方便易用的API和组件,可以轻松地在Vue项目中集成和使用天地图。比如,可以使用Vue Leaflet 提供的地图组件将天地图展示在网页中,可以使用它提供的标记点组件在地图上添加标记,可以使用它提供的工具条组件进行地图的操作和导航等。 使用Vue Leaflet 可以有效地提高开发效率和用户体验。通过其简洁的API和灵活的组件,开发人员可以快速地实现各种地图需求,如显示地图、标记地点、展示线段等。并且,Vue Leaflet 结合了Vue框架的优势,可以更好地组织和管理地图相关的逻辑代码,使开发工作更加方便和高效。 总之,Vue Leaflet 是一种方便、灵活和高效的前端技术,用于展示和操作天地图。它通过结合Vue框架和Leaflet库,提供了一套方便易用的API和组件,帮助开发人员快速实现各种地图需求,提高开发效率和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值