uniapp使用高德地图路径规划之map组件

uniapp使用高德地图路径规划之map组件

1、项目前准备

1.1、首先你需要去申请一个属于自己的高德地图key,怎么申请暂不多说需要的去官网看
1.2、链接: 高德地图申请key直通车,点击前往
有一个uniapp项目。

2、页面创建

新建一个uniapp的空白页 使用map组件渲染地图

  	<map id='map' :longitude="118.045616" :latitude="24.366646" :markers="covers"></map>
  	
    const covers = [{
		latitude: 24.366646,
		longitude: 118.045616,
		width: 40,
		height: 40,
		callout: {
			content: '点标记',
			display:'ALWAYS'
		},
		iconPath: '../../../../static/addrs.png'
	}]

就完成了 基础操作
在这里插入图片描述

3、路径规划

3.1、我们需要借助高德地图的路径规划查询获取到全部的路径规划 链接: 高德文档,点击前往

   const getDriving = () => {
       	let params =
   	    	`origin=118.045616,24.366646&destination=118.099481,24.583817&key=你的key`
   	    uni.request({
   		   url: `https://restapi.amap.com/v3/direction/driving?${params}`,
   		   success: (res) => {
   		   	   let data = res.data.route
   			   if (data.paths && data.paths[0] && data.paths[0].steps) {
   				   washData(data.paths[0].steps)
   			   }
   		   }
   	    });
   }

3.2、我们就获取到全部路径规划的数据,但是还是要洗一下数据。 ( ps:v3 和 v5返回的数据格式不一样)
在这里插入图片描述

   let planList = ref([])
   const washData = (steps) => {
   	    let points = []
   	    steps.forEach(item => {
   		    const polen = item.polyline.split(';')
   		    polen.forEach(vv => {
   			    let splits = vv.split(',')
   			    points.push({
   				    longitude: parseFloat(splits[0]),
   				    latitude: parseFloat(splits[1])
   			    })
   		    })
   	   })

   	    planList.value = [{
   		    points: points,
   		    width: 3,
   		    arrowLine: true,
   		    arrowIconPath: true,
   		    color: '#204CF1',
   	    }]
   }
   
    // template 里面的map组件使用
 	<map id='map' :longitude="118.045616" :latitude="24.366646" :markers="covers" :polyline="planList"></map>

3.2、然后就大功告成啦!! 其他的按照官网参数变成自己想要的样子就好了
在这里插入图片描述

4、最后 上代码~
<template>
   <map id='map' :longitude="118.045616" :latitude="24.366646" :markers="covers" :polyline="planList"></map>
</template>

<script setup>
   onLoad(() => {
   	getDriving()
   })

   const covers = [{
   	latitude: 24.366646,
   	longitude: 118.045616,
   	width: 40,
   	height: 40,
   	callout: {
   		content: '点标记',
   		display: 'ALWAYS'
   	},
   	iconPath: '../../../../static/addrs.png'
   },{
   	latitude: 24.583817,
   	longitude: 118.099481,
   	width: 40,
   	height: 40,
   	callout: {
   		content: '点标记',
   		display: 'ALWAYS'
   	},
   	iconPath: '../../../../static/addrss.png'
   }]
   
   const getDriving = () => {
   	let params =
   		`origin=118.045616,24.366646&destination=118.099481,24.583817&key=你的key`
   	uni.request({
   		url: `https://restapi.amap.com/v3/direction/driving?${params}`,
   		success: (res) => {
   			let data = res.data.route
   			if (data.paths && data.paths[0] && data.paths[0].steps) {
   				washData(data.paths[0].steps)
   			}
   		}
   	});
   }

   let planList = ref([])
   const washData = (steps) => {
   	let points = []
   	steps.forEach(item => {
   		const polen = item.polyline.split(';')
   		polen.forEach(vv => {
   			let splits = vv.split(',')
   			points.push({
   				longitude: parseFloat(splits[0]),
   				latitude: parseFloat(splits[1])
   			})
   		})
   	})

   	planList.value = [{
   		points: points,
   		width: 3,
   		arrowLine: true,
   		arrowIconPath: true,
   		color: '#204CF1',
   	}]
   }
</script>

<style scoped>
   #map {
   	width: 100%;
   	height: 100%;
   }
</style>
  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
uniapp结合高德地图进行路线规划的实现有一些技术难点和一些解决方法。首先,要在uniapp使用地图组件,需要引入map组件,并在页面中配置地图的属性和函数细节。 在展示导航路线后,有时候会遇到地图页面缩放大小不能很好地控制的问题。为了解决这个问题,可以根据展示的路线起点和终点,调整地图的视角,使整个路线都能够显示在地图上。 具体实现和使用该技术的步骤如下: 1. 首先,在地图开发者平台申请地图的key。这个key是用来验证开发者身份和控制地图资源的访问权限的。需要在uniapp项目中的manifest.json文件中的“app-plus”部分配置key。 2. 在uniapp页面中引入地图组件,并在配置项中设置地图的初始位置和缩放级别。 3. 使用高德地图提供的API进行路线规划。可以根据起点和终点的经纬度坐标,调用相应的函数来获取路线的信息。 4. 在地图上展示路线。可以使用图标或者线段来表示起点、终点和沿途的导航点,以及连接它们的路径。 5. 为了使整个路线都能够显示在地图上,可以根据路线的坐标点,计算出一个合适的地图缩放级别和中心点,并调用相应的函数来设置地图的视角。 6. 针对地图缩放大小不能很好控制的问题,可以根据起点和终点的坐标点,计算出一个合适的缩放级别,并调用相应的函数来设置地图的缩放级别。 通过以上步骤,就可以实现在uniapp使用高德地图进行路线规划,并控制地图的视角和缩放大小。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [uniapp 开发安卓App实现高德地图路线规划导航](https://blog.csdn.net/weixin_45739290/article/details/125424472)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值