因为最近在搞uni-app的地图项目,所以大量使用了uni-app中的地图组件
虽然uni-app还是一个小学生水平,但是自己也想了很多
本期就来谈一谈uni-app中的marker,里面的好的内容和一些小坑和大家share一下:
首先,老样子,上手册链接 https://uniapp.dcloud.io/component/map.html#app%E5%B9%B3%E5%8F%B0%E5%9C%B0%E5%9B%BE%E6%9C%8D%E5%8A%A1%E5%95%86%E5%B7%AE%E5%BC%82
对于手册来说marker的内容就是使用marker数组的使用方法,以及相对来说的一些属性
手册上给的例子是一个数组的情况:
export default {
data() {
return {
id:0, // 使用 marker点击事件 需要填写id
title: 'map',
latitude: 39.909,
longitude: 116.39742,
covers: [{
latitude: 39.909,
longitude: 116.39742,
iconPath: '../../../static/location.png'
}, {
latitude: 39.90,
longitude: 116.39,
iconPath: '../../../static/location.png'
}]
}
},
methods: {
}
}
当然,实际使用中并不可能都是,我们只在数组中使用一个数值
因为数组中的一个数值,对应到地图上就是一个标记点,也就是我们所说的
一个marker
因此,就是数组的拓展内容啦~
也就是这样:
{ id: 1, width: 40, height: 40, latitude: 26 longitude: 117 iconPath: '/static/signPoint.png', "callout": { "content": "上饶", "fontSize": 14, "borderRadius": 5, "display": "ALWAYS", "padding": 7, "bgColor": "#ffffff" } }, { id: 2, //唯一的ID值,每个mark都不一样 width: 40, //宽度 height: 40, //长度 latitude: 26 //中心精度之一 longitude: 118 //中心精度之一 iconPath: '/static/signPoint.png', //对应的地图上标点的样式 "callout": { //气泡 "content": "天山", //callout上面的显示内容 "fontSize": 14, //callout上面内容字体 "borderRadius": 5, //callout边缘的圆滑程度(用我自己话来讲) "display": "ALWAYS", //callout总是显示 "padding": 7, //边距 "bgColor": "#ffffff" //背景颜色,这个和tabbar好像是一样的,不是所有的颜色都支持 } },
基本的数组结构,就和C++的一样
后面的callout就是marker中的一些属性,用处标记在代码上了
callout中的一些属性,里面的内容也注释到代码上了
然后就是本章想说的内容,markerTap //marker点击事件,也就是点击marker,我们的标记的事件
markerTap默认是显示在console上面的,
但是,我们为了点击不同的marker,获得不同的输出
就有了下面的代码:
markerTap(e) { console.log(e) var clickmarkerId = e.detail.markerId //根据e.mp.detail.markerId跟撒点的id进行判断,如果相等就进行赋值 for (var i = 0; i < this.markers.length; i++) { if (this.markers[i].id == clickmarkerId) { if (clickmarkerId == 0) { console.log("成功点击0") } if (clickmarkerId == 1) { console.log("成功点击1") } console.log(this.markers[i].id) } } },
也就是方法中定义markerTap方法,markerTap方法是默认回调一个e参数的,使用遍历,再对比,就可以很好的把点击不同的marker进行不同的操作写出来了
因为这里是测试内容,所以写了console的输出内容
————————————————————————————————————————————————————————————————————————————————————————————
对于marker的东西就分享到这里,欢迎大家评论区留下想问的内容
我们可以一起学习解决~
QAQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通