uniapp map组件的markers,polyline使用及问题

10 篇文章 0 订阅
订阅专栏

最近在做巡检任务功能,需要在安卓端记录当前巡检轨迹,以及原本的路线显示,由于是使用uniapp框架开发的,所以这里我使用的是uniapp里的map组件。

参考官方文档:https://uniapp.dcloud.io/component/map?id=map

注意:地图组件用于展示地图,而定位API只是获取坐标,请勿混淆两者。

一、获取当前位置:
type:默认为 wgs84 返回 gps 坐标,gcj02 返回国测局坐标,可用于 uni.openLocation 的坐标,app平台高德SDK仅支持返回gcj02

//获取当前的地理位置
uni.getLocation({
    type: 'gcj02',
    success: function (res) {
        console.log('当前位置的经度:' + res.longitude);
        console.log('当前位置的纬度:' + res.latitude);
    }
});

二、在地图上画线(我这里通过请求接口数据,得到线上的经纬度信息)

// 获取巡检线路信息(包含线路光缆路由列表)
initLine(lineid) {
		api.getPatrolLine(lineid).then(res => {
			console.log(res.data.result.lineRouter);
			const points = [];
			const temp = [];
			// 第一层循环
			res.data.result.lineRouter.forEach((line, index1) => {
				// console.log("index1",index1)
				//第二层循环
				line.geometry.forEach((item, index2) => {
					// console.log("index2",index2)
					points.push({
						latitude: item.lat,
						longitude: item.lng
					});
					temp.push({
						id: index1 * 100000 + index2, //避免下标重复
						latitude: item.lat, //纬度
						longitude: item.lng, //经度
						iconPath: '/static/maps/all_location.png', //显示的图标        
						rotate: 0, // 旋转度数
						width: 40, //宽
						height: 40, //高
						title: item, //标注点名
						alpha: 1, //透明度
						// joinCluster: true, //是否参与点聚合
					})
		
				});
			});
			// 偏离路线距离计算
			this.taskPoints = points;
			// 点聚合:解决标记点marker过多时会导致界面上 marker 出现压盖,展示不全问题
			const taskLine = { //路线
				points: points, //经纬度数组
				color: '#007aff', //线的颜色
				width: 10, //线的宽度
				borderWidth: 2, //线的厚度
				// borderColor: '#ff0000', //线的边框颜色
				dottedLine: false, //是否虚线
				arrowLine: false //带箭头的线 开发者工具暂不支持该属性
			}
			// console.log(taskLine)
			this.polyline[0] = taskLine; //巡检路线
			this.polyline[1] = this.myPolyline; //记录当前的轨迹路线
			this.polyline = [...this.polyline] //需要结构,视图才更新
			// console.log(this.polyline);
			this.markers = temp //标记点
			this.markers = [...this.markers] //需要结构,视图才更新
			// console.log(this.markers)
			this.myIndex = this.markers.length; //获取标记点的下标开始值,防止下标重复
			
		})
		.catch(e => {
			console.log(e);
		});
		},

效果图如下:
效果图

uniapp+高德地图开发APP自定义marker弹出框教程
renkai721的专栏
12-26 2088
uniapp+高德地图实现自定义弹框
uniapp map组件自定义markers标记点
qq_44161722的博客
07-23 1430
需求是根据后端返回数据在地图上显示标记点,并且根据数据状态控制标记点颜色,标记点背景通过两张图片实现控制。
uniapp使用高德地图设置marker标记点,后续根据接口数据改变某个marker标记点,动态更新
最新发布
qq_61876792的博客
09-13 702
uniapp动态更新marker标记点
解决uni-app map地图显示图标markers问题(初学记录)
m0_74265954的博客
05-14 1658
uni-app中引入地图需要提前在腾讯地图或者高德地图申请API,网上有很多教程官网给出的效果:然而我按照官网的步骤写了之后只有地图没有图标没改之前的代码:(我这里的经纬度是从云端传过来的)
uniapp App端地图实现中心点范围内的markers(标记)
热门推荐
菜鸟猿小天
08-27 1万+
需求:根据当前中心点,显示附近范围内的markers,类似于青桔找车功能 1.map代码 <map id="map" :latitude="latitude" :longitude="longitude" class="map-nvue-container" :controls="controls" :markers="markers" :scale="scale" :circles="circles" @controltap="onControlHandle" @regionchange="
uniapp 使用map组件 动态自定义标记点图标及内容文字
明耀的博客
07-26 1万+
先看效果 地图中的标记点 可以动态变化自定义的图片与内容 原理 通过map组件中的 markers 属性 设置标记点 用于在地图上显示标记的位置 map组件所在uniapp官网位置:map-uni-app https://uniapp.dcloud.io/componen...
uniapp map地图实现marker聚合点,并点击marker触发事件
weixin_44705979的博客
10-20 3843
【代码】uniapp map地图实现marker聚合点,并点击marker触发事件。
uniapp使用map地图组件
web18296061989的博客
03-03 1万+
本人所在的公司最近在做共享电动车的项目,打开该应用看到的就是一副地图,可以获取附近共享电动车的地址、状态等信息,开发这个应用程序还需要在地图上规划路线、动态显示轨迹、轨迹回放等功能。共享开发的项目功能总会用到LBS(Location Based Service),即基于位置的服务,国内提供地图服务的有百度地图、高德地图、腾讯地图,本文选取的是腾讯位置服务来进行地图功能的开发。 二、使用步骤 1.uniapp开发map说明 使用uniapp是因为它是一个使用vue.js开发所有前端应用的框架,开发者编写一套
uniapp map 制作一个简单的地图导航
qq_43402051的博客
04-30 7773
uniapp map 制作简单地图导航
uniapp地图(map)功能研发
ds0604的博客
09-24 1697
一、底层依赖地图 1、h5和微信小程序基于腾讯地图 2、app、支付宝小程序基于高德地图 3、百度小程序、快应用基于百度地图 备注:原生的map组件就是基于腾讯地图所以无需引用,其他地图是需要下载sdk文件以及申请key来支持应用的。 二、基础写法 <template> <view> <map style="width: 100%; height: 700px;" :latitude="latitude" :longitude="longitude" :marker
uniapp map地图显示图标markers问题,自定义图标不显示
web13985085406的博客
03-11 8226
自己记录一下uniapp开发小程序关于map地图问题 <map style="width:750rpx; height:100vh;" scale="17" show-location="true" :latitude="latitude" :longitude="longitude" :markers="markers"></map> 1 . 自定义图标不显示 data() { return { title: 'map', longitude:'122.1
uni-app 使用map标签实现自定义点标记,点聚合
Z1014h的博客
06-19 2080
图中绿色1点标记为自定义点标记,聚合点则使用的默认的聚合样式,目前存在设置自定义点聚合簇之后,markerClusterClick 事件在ios上触发不了,至今官方还没给出解答,我就用的默认样式,当然代码中也写了我自定义的样式,只是enableDefaultStyle设置了true,当把该属性改为false的时候聚合点就显示了自定义的样式了,废话不多说直接上代码。1、实现地图显示标记点markers与聚合点,点击标记点或聚合点,页面下弹出详情弹框,3、实现按钮功能:刷新地图。2、视野展示所有经纬度。
uniapp内置腾讯地图实现地图大量markers点聚合,轨迹回放开始暂停,兼容H5及小程序
weixin_42826247的博客
09-14 2556
腾讯地图,uniapp,小程序,兼容H5,安卓,鸿蒙,IOS
uniapp实现轨迹polyline和标记点markers最终实现效果
RemindingMe的博客
04-12 5914
uniapp使用map实现显示轨迹和自定义标记内容。
uniappmap地图组件介绍
weixin_67490903的博客
07-27 1万+
由之前描述可知,markers属性类型为Array,表示标记点用于在地图上显示标记的位置。这个数组属性,它里面有它的对象配置属性,分别是。
uniapp map组件 polyline属性的使用
woshiqiaozhiheng的博客
03-19 1884
这是他的属性说名,具体使用则是先在地图组件中引用。在map组件中有这样的一条属性。就是在地图上画出线的轨迹。就会绘制出想要的线条。
uniappmap组件动态加载marks标记
球球不吃虾WHR2349博客
04-20 2955
之前在uniapp项目中用到地图都是用h5的方式实现的,比如用高德地图webapi可以不收uniapp的限制,uniapp中vue页面中map组件功能太少,nvue中css写的有蛋疼。 言归正传,marks动态变化了,要给marks重新赋值,只改里面的某一个点某一属性是没用的。具体也没看源码,就不深究原因了。 xuandClickhandler(index) { // this.show = false; this.active = index; this.lists = this.
uniapp - Map地图组件属性示例
qq_39891453的博客
09-06 5681
uniapp - Map地图组件属性示例
uniappmap组件,显示标记距离
05-10
Uniappmap组件可以通过计算两个标记之间的距离来显示它们之间的距离。可以使用Haversine公式来计算两个地理位置之间的距离,该公式可以计算出两个经纬度之间的距离。以下是一个示例代码,可以根据需要进行修改: ```html <template> <view> <map :polyline="polyline" :markers="markers"></map> <view>{{distance}} km</view> </view> </template> <script> export default { data() { return { polyline: [], markers: [{ id: 1, latitude: 39.90469, longitude: 116.40717, label: { content: '北京市', color: '#FF0000', fontSize: 16, borderRadius: 10, bgColor: '#FFFFFF', padding: 5 } }, { id: 2, latitude: 31.23037, longitude: 121.4737, label: { content: '上海市', color: '#FF0000', fontSize: 16, borderRadius: 10, bgColor: '#FFFFFF', padding: 5 } }], distance: '' } }, methods: { getDistance(lat1, lng1, lat2, lng2) { const radLat1 = lat1 * Math.PI / 180.0; const radLat2 = lat2 * Math.PI / 180.0; const a = radLat1 - radLat2; const b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0; let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * 6378.137; s = Math.round(s * 10000) / 10000; return s.toFixed(2); }, updateDistance() { const marker1 = this.markers[0]; const marker2 = this.markers[1]; this.distance = this.getDistance(marker1.latitude, marker1.longitude, marker2.latitude, marker2.longitude); } }, mounted() { this.polyline = [{ points: [{ latitude: this.markers[0].latitude, longitude: this.markers[0].longitude }, { latitude: this.markers[1].latitude, longitude: this.markers[1].longitude }], color: "#FF0000DD", width: 2, dottedLine: true }]; this.updateDistance(); } } </script> ``` 在上面的代码中,我们使用了getDistance方法来计算两个标记之间的距离,并在页面上显示它。我们还使用polyline属性来绘制标记之间的连线,并使用markers属性来设置标记的位置和标注信息。在mounted方法中,我们初始化了polyline和distance,并调用了updateDistance方法来计算并显示距离。
写文章

热门文章

  • uniapp中使用计时器setInterval 12057
  • uniapp下载文件到手机自定义目录实现 11259
  • uniapp使用echarts图表问题及解决 7917
  • uniapp map组件的markers,polyline使用及问题 4511
  • props的理解和使用 4007

分类专栏

  • uniapp 10篇
  • day.js 1篇
  • android 1篇
  • js 9篇
  • antd 4篇
  • vue 9篇
  • react 3篇
  • NodeJs 3篇
  • css技巧用法 1篇
  • echarts 1篇
  • leaflet离线地图 2篇
  • vuex 1篇
  • 高德地图key 1篇
  • 微信小程序 1篇

最新评论

  • vue-cli 创建支持 vue3 的 uni-app 项目

    m0_74397090: 老哥现在有没有解决

  • uniapp下载文件到手机自定义目录实现

    二年前端工作之余记录备份账号: 现在还可以解决吗 2024

  • uniapp使用5+API实现文件的读取,写入功能

    幼丝: 面对大json文件时读取效率太慢怎么解决

  • vue-cli 创建支持 vue3 的 uni-app 项目

    没皮的土豆: 第二步安装依赖的时候,需要使用魔法,切记!

  • vue-cli 创建支持 vue3 的 uni-app 项目

    ∑sigma: 还是出错

最新文章

  • 用canvas画曲线图
  • dayjs时间格式处理库
  • android图库隐藏不愿显示的图片及目录
2023年9篇
2022年20篇
2021年11篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家武汉动物玻璃钢雕塑定做天津石雕雕塑玻璃钢上海玻璃钢孔雀雕塑西安多彩玻璃钢雕塑西安佛像玻璃钢雕塑优势沈阳定制玻璃钢雕塑设计山西玻璃钢卡通雕塑厂家人物玻璃钢雕塑哪家实惠商场dp点美陈深圳季节性商场美陈售价四川玻璃钢雕塑有哪些玻璃钢雕塑假山石玻璃钢雕塑的用途内蒙古仿铜玻璃钢雕塑安装景观玻璃钢雕塑哪家安全浙江树箱玻璃钢雕塑设计张掖玻璃钢植物雕塑定做湖北欧式玻璃钢雕塑多少钱宜兴商场秋季美陈梅州玻璃钢动物雕塑现货东莞塘厦玻璃钢雕塑厂定做园林玻璃钢花盆昌平区商场美陈二七区玻璃钢卡通雕塑韶关美陈玻璃钢动物雕塑建湖玻璃钢雕塑雕刻公司通用玻璃钢雕塑摆件市场玻璃钢龟仙人物雕塑漯河锻铜玻璃钢雕塑翠屏玻璃钢花盆花器香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化