uniapp 地图行车轨迹

文章目录

uniapp 地图行车轨迹

官网地图组件:https://uniapp.dcloud.net.cn/component/map.html

官网地图组件控制:https://uniapp.dcloud.net.cn/api/location/map.html#createmapcontext

1、画地图

html 复制代码
<map class="positioning-map"
     id="largeScreenMap"
     :latitude="中心纬度"
     :longitude="中心经度"
     :scale="5"
     :include-points="polyline[0].points"
     :markers="标记点"
     :polyline="路线"
     @markertap="点击标记点时触发"
></map>
js 复制代码
// 地图实例
onReady() {
	this._mapContext = uni.createMapContext("largeScreenMap", this);
}

2、切换地图中心点

js 复制代码
// 获取当前位置
 uni.getLocation({
    type: 'wgs84',
    success: function (res) {
        let { longitude, latitude } = res
        // 将地图中心移动到当前定位点,需要配合map组件的show-location使用
        _this._mapContext.moveToLocation({ longitude: +longitude, latitude: +latitude }) 
        _this.mapCenter = { lat: latitude, lng: longitude }
    }
});

3、画路线

js 复制代码
// 路线
let polyline = [{
    width: 8,
    points: [], // 经纬度数组 [{latitude: 0, longitude: 0}]
    arrowLine: true, //带箭头的线
    color: '#3591FC', // 线的颜色
}]

4、轨迹移动

js 复制代码
// nextPoint 下一个点,moving 是否继续行驶-用于暂停行驶
movePoint(){
	if(!this.polyline[0] return;
	let durationTime = Math.ceil(30000 / polyline[0].points.length)	//默认播放全程使用30秒,计算相连两点动画时长
	this._mapContext.translateMarker({ // 平移marker,带动画
    duration: durationTime,
    markerId: '当前标记点的id', 
    destination: { // 指定 marker 移动到的目标点
        latitude: this.polyline[0].points[this.nextPointIndex].latitude,
        longitude: this.polyline[0].points[this.nextPointIndex].longitude
    },
    animationEnd: res => { // 动画结束回调函数
        //播放结束,继续移动到下一个点,最后一个点时结束移动
        if (this.nextPoint < polyline[0].points.length - 1) {
            this.nextPoint++
            if (this.moving) {
                this.movePoint()
            }
        } else {
            this.nextPoint = 1
        }
    }
})
}

5、标记点及自定义内容

js 复制代码
let marker=[
	{
		id: number-必填,
		latitude: '纬度',
		longitude: '经度',
		width: 18, height: 25,
		callout:{ content: '结束',// 开始
                  bgColor: '#ffffff',
                  padding: 4,
                  borderRadius: 3,
                  display: 'ALWAYS'},// '自定义标记点上方的气泡窗口'- 纯文本内容 - content 显示标记内容,二选一
		customCallout:{name:'需要的数据',display: 'BYCLICK'},// '自定义气泡窗口' - 自定义窗口内容 - 使用cover-view覆盖 ,二选一
	}
]

自定义气泡窗口参考:uniapp map自定义气泡窗

相关推荐
ModyQyW8 小时前
vite-plugin-uni-manifest 更新了什么
前端·typescript·uni-app
PedroQue9921 小时前
v2.7.1:修复 H5 端返回死循环闪烁问题
前端·uni-app
lhldsg1 天前
AI零售系统实战指南:从架构设计到落地部署全解析
java·人工智能·小程序·uni-app·零售
RisunJan2 天前
uni-app 面试知识点梳理
面试·职场和发展·uni-app
郑州光合科技余经理2 天前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
lhldsg4 天前
家校托管互通系统开发实战:从需求分析到部署全指南
小程序·uni-app·需求分析
paopaokaka_luck4 天前
基于springboot3+vue3+uniapp的河南非遗数字图谱小程序(协同过滤算法、数字图谱展示、ECharts 图形化分析)
java·前端·spring boot·学习·小程序·uni-app·echarts
宠友信息4 天前
社区类源码开发实践中的仿小红书系统技术要点分析
java·spring boot·redis·mysql·uni-app·vue·内容运营
郑州光合科技余经理5 天前
本地生活平台搭建:统一订单表与多后台切换怎么拆
java·开发语言·前端·系统架构·uni-app·php·ai编程
lhldsg5 天前
树洞交友系统开发实战:从匿名社交需求到技术落地
java·小程序·uni-app·交友