当前位置: 首页 > news >正文

微信小程序 map地图(轨迹)

allMarkers效果图

 

废话少说直接上马(最后是我遇到的问题)

cover-view是气泡弹窗,可以自定义弹窗,要配合js:customCallout,如果是非自定义的话:callout(可以修改颜色、边框宽度、圆角、边距等)有些属性我没加,还是看官方文档(虽然写的。。)

<!--index.wxml-->
<view class="page-section page-section-gap"><map id="myMap" style="width: 100%; height: 450px;" latitude="{{latitude}}" longitude="{{longitude}}" bindmarkertap="markertap" bindcallouttap="callouttap" bindlabeltap="labeltap" markers="{{markers}}" scale="16" polyline="{{polyline}}"><cover-view slot="callout"><block wx:for="{{customCalloutMarkerIds}}" wx:key="*this"><cover-view class="customCallout" marker-id="{{item}}"><!-- <cover-image class="icon" src="../img/point.png"></cover-image> --><cover-view class="content"><view style="background-color: #fff;"><view>设备名称</view><view>设备名称</view><view>设备名称</view></view></cover-view></cover-view></block></cover-view></map><button bindtap="addMarker" class="page-body-button" type="primary">添加marker</button>
</view>

字段说明:

allMarkers:模拟位置点

markers:地图显示位置点

polyline:地图点连线位置点

mapCtx:初始化地图

 customCallout:气泡自定义使用(建议使用方法)

callout:气泡简易使用

const normalCallout = {id: 1,latitude: 23.098994,longitude: 113.322520,iconPath: '../img/point.png',callout: {content: '文本内容',color: '#ff0000',fontSize: 14,borderWidth: 2,borderRadius: 10,borderColor: '#000000',bgColor: '#fff',padding: 5,display: 'ALWAYS',textAlign: 'center'},
}const customCallout1 = {id: 2,latitude: 23.097994,longitude: 113.323520,iconPath: '../img/point.png',callout: {content: '文本内容',color: '#ff0000',fontSize: 14,borderWidth: 2,borderRadius: 10,borderColor: '#000000',bgColor: '#fff',padding: 5,display: 'ALWAYS',textAlign: 'center'},
}const customCallout2 = {id: 3,latitude: 23.096994,longitude: 113.324520,iconPath: '../img/point.png',customCallout: {anchorY: 10,anchorX: 0,display: 'ALWAYS',},
}const customCallout3 = {id: 4,latitude: 23.095994,longitude: 113.325520,iconPath: '../img/point.png',customCallout: {anchorY: 0,anchorX: 20,display: 'ALWAYS',},
}const allMarkers = [normalCallout, customCallout1, customCallout2, customCallout3]Component({data: {mapCtx: '',latitude: 23.098994,longitude: 113.322520,customCalloutMarkerIds: '',markers: [],polyline: []},onReady: function (e) {// 使用 wx.createMapContext 获取 map 上下文this.mapCtx = wx.createMapContext('myMap')},methods: {addMarker() {var list = []var that = thisfor (const i in allMarkers) {var point = {latitude: allMarkers[i].latitude,longitude: allMarkers[i].longitude}list.push(point)}console.log(this.data.polyline.points)this.setData({polyline:[{points: list,color: '#58c16c',width: 6,borderColor: '#2f693c',borderWidth: 1,arrowLine: true}],markers: allMarkers,customCalloutMarkerIds: [2, 3, 4],})},},
})

xml和js直接复制就可以运行了没有其他配置

所遇到问题:

1.初始化时我在data直接给markers和polyline赋值了,导致不能显示气泡,解决是加了一个按钮等map初始化结束在添加点就正常了

2.marker-id必须是number

3.我没写,但是我感觉自定义气泡是可以加点击事件的

http://www.lryc.cn/news/121985.html

相关文章:

  • 【钉钉接口】bpms_task_change、bpms_instance_change 的区别及举例
  • vue左右div结构手动拉伸并且echarts图表根据拉伸宽高自适应
  • 开发工具Eclipse的使用
  • DrawerLayout布局使用教程Android侧边栏导航完全指南:创建简单实用的导航抽屉
  • Dynamics 365 实体快速创建功能启用
  • Mybatis三剑客(一)在springboot中自动生成Mybatis【generator】
  • 【LeetCode 热题 100】图论 专题(bfs,拓扑排序,Trie树 字典树)
  • Jmeter压测实战:Jmeter二次开发之自定义函数
  • 在python中使用nvidia的VPF库对RTSP流进行硬解码并使用opencv进行显示
  • C++中using namespace std的作用记录
  • 【TX 企业微信私有化历史版本 API 信息泄露】
  • 腾讯云轻量应用服务器镜像应用模板清单大全
  • C语言链表操作
  • 详解拦截器和过滤器
  • 关于`IRIS/Caché`进程内存溢出解决方案
  • 构建Docker容器监控系统(cadvisor+influxDB+grafana)
  • 最强自动化测试框架Playwright(17)- 模拟接口
  • Python爬虫——requests_get请求
  • 【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
  • C++11 异步与通信之 std::async
  • 影视站用什么cms好?
  • HOT88-乘积最大子数组
  • 工博士与纷享销客达成战略合作,开启人工智能领域合作新篇章
  • 拆解与重构:慕云游首页组件化设计
  • 刷了3个月的华为OD算法题,刷出感觉了,如洁柔般丝滑,文末送《漫画算法2:小灰的算法进阶》
  • ip转换器哪个好用 ip地址切换器有哪些
  • 【python】爬取豆瓣电影Top250(附源码)
  • 35岁职业危机?不存在!体能断崖?不担心
  • C语言——指针进阶
  • heap pwn 入门大全 - 1:glibc heap机制与源码阅读(上)