微信小程序地图

简介: 微信小程序地图

效果展示

通过点击标签切换到相应的景点地区

html部分

1. <!--pages/map/map.wxml-->
2. <!-- <text>地图页面</text> -->
3. <view class="geographical_map">
4. <!-- 标记点预留处 -->
5. <view class="map_label" >
6. <view  wx:for="{{biao_shi}}" bindtap="map_ditu" data-id="{{item.id}}">{{item.name}}</view>
7. </view>
8. <!-- 地图 -->
9. <view class="map">
10. <map    
11. id="map"
12. style="width: 100%;height: 100%;"
13. longitude="{{longitude}}"
14. latitude="{{latitude}}"
15. markers="{{markers}}"
16. scale="{{scale}}"
17. show-location
18. ></map>
19. </view>
20. </view>

css部分

1. /* pages/map/map.wxss */
2. /* 给地图一个宽高 */
3. .geographical_map map{
4. width: 100%;
5. height: 100vh;
6. }
7. .map_label{
8. justify-content: space-around;
9. display: flex;
10. width: 100%;
11. height: 60px;
12. background-color: #ffffff;
13. font-size: 20px;
14. line-height: 100rpx;
15. }
16. page{
17. height: 100%;
18. }
19. .map_diaply{
20. width: 70%;
21. display: flex;
22. font-size: 40rpx;
23. }
24. .map_diaply view{
25. margin: 0 10px 0 10px;
26. }
27. .map_image image{
28. width:50rpx ;
29. height: 50rpx;
30. }
31. /* ditu */
32. .map{
33. width: 100vw;
34. height: 100vh;
35. }page{
36. background-color: #8a8a8a;
37. }

json部分

1. {
2. "usingComponents": { "van-tab": "@vant/weapp/tab/index",
3. "van-tabs": "@vant/weapp/tabs/index"}
4. }

js部分

1. // pages/map/map.js
2. Page({
3. // 地图控件
4. 
5. /**
6.    * 页面的初始数据
7.    */
8. data: {
9. // 标识
10. biao_shi:'',
11. // 地图其他数据
12. qi_ta:'',
13. // ditu
14. longitude:"",   // 中心经度
15. latitude:"",    // 中心纬度
16. markers:[],     // 标记点
17. scale:10        // 缩放级别,取值范围为3-20
18. 
19.   },
20. 
21. /**
22.    * 生命周期函数--监听页面加载
23.    */
24.   onLoad(options) {
25.     let str = wx.getStorageSync('shezhi')
26.     var that = this;
27.     wx.request({
28.       url: '通过这个接口获取标记点',
29. data: {
30. //需要的参数
31.       },
32.       header: {
33. 'content-type': 'application/json'
34.       },
35.       success (res) {
36.         console.log(res);
37.         console.log(res.data.data);
38.         that.setData({
39.           biao_shi:res.data.data
40.         })
41. // console.log(biao_shi);
42.       }
43.     }),
44. // 获取当前地理位置
45.       wx.getLocation({
46.         success:(res)=>{
47.             let {latitude,longitude} = res;
48.             this.setData({
49.                 latitude,
50.                 longitude,
51.             })
52.         }
53.     })
54. 
55. 
56.   },
57. // 地图标识点击事件
58.   map_ditu:function (e) {
59.     let {id} = e.target.dataset;
60.     console.log(e.currentTarget.dataset.id);
61.     let str = wx.getStorageSync('shezhi')
62.     var that = this;
63.     wx.request({
64.       url: '地图地点接口',
65. data: {
66. //参数
67.       },
68.       header: {
69. 'content-type': 'application/json'
70.       },
71.       success (res) {
72.         console.log(res);
73.         console.log(res.data.tab);
74.         console.log(res.data)
75.         let ar=[]
76. // 标记点
77. for (let i = 0; i < res.data.tab.length; i++) {
78.             let obj={
79.                 name:res.data.tab[i].name,
80.                 joinCluster:true,   // 是否点聚合
81.                 iconPath:"/image/bar.jpg",  // 项目目录下的图片路径
82.                 longitude:res.data.tab[i].lng, // 经度
83.                 latitude:res.data.tab[i].lat,  // 纬度
84.                 width:30,  // 标注图标宽度
85.                 height:30, // 标注图标高度
86.                 label:{
87. content:`${res.data.tab[i].name}`,  //文本
88.                     color: '#000000',  //文本颜色
89.                     borderRadius: 3,  //边框圆角
90. // borderWidth: 1,  //边框宽度
91.                     borderColor: '#409eff',  //边框颜色
92.                     bgColor: '#ffffff',  //背景色
93.                     padding: 5,  //文本边缘留白
94.                     textAlign: 'center'  //文本对齐方式。有效值: left, right, center
95.                   },
96.             }
97.             ar.push(obj)
98.         }
99.         console.log(ar);
100.         that.setData({
101.             longitude:res.data.tab[0].lng,   // 中心经度
102.             latitude:res.data.tab[0].lat,    // 中心纬度
103.             markers:ar
104.         })
105. 
106.       }
107.     })
108.   }, // 自定义markers
109. 
110. /**
111.    * 生命周期函数--监听页面初次渲染完成
112.    */
113.   onReady() {
114. 
115.   },
116. 
117. /**
118.    * 生命周期函数--监听页面显示
119.    */
120.   onShow() {
121. 
122.   },
123. 
124. /**
125.    * 生命周期函数--监听页面隐藏
126.    */
127.   onHide() {
128. 
129.   },
130. 
131. /**
132.    * 生命周期函数--监听页面卸载
133.    */
134.   onUnload() {
135. 
136.   },
137. 
138. /**
139.    * 页面相关事件处理函数--监听用户下拉动作
140.    */
141.   onPullDownRefresh() {
142. 
143.   },
144. 
145. /**
146.    * 页面上拉触底事件的处理函数
147.    */
148.   onReachBottom() {
149. 
150.   },
151. 
152. /**
153.    * 用户点击右上角分享
154.    */
155.   onShareAppMessage() {
156. 
157.   }
158. })

 

目录
相关文章
|
8月前
|
小程序 定位技术 API
【社区每周】小程序码支持沙箱调试;开发文档新增产品地图(1月第二期)
【社区每周】小程序码支持沙箱调试;开发文档新增产品地图(1月第二期)
58 0
|
7月前
|
小程序 定位技术
uniapp微信小程序地图全屏显示配送范围
uniapp微信小程序地图全屏显示配送范围
147 1
|
7月前
|
XML 小程序 JavaScript
微信小程序如何使用地图
微信小程序如何使用地图
269 4
|
6月前
|
小程序 定位技术 API
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
783 0
|
6月前
|
小程序 定位技术
【微信小程序-原生开发+TDesign】地图导航(wx.openLocation的使用)
【微信小程序-原生开发+TDesign】地图导航(wx.openLocation的使用)
119 0
|
8月前
|
小程序 安全 定位技术
高德地图实现-微信小程序地图导航
高德地图实现-微信小程序地图导航
399 0
|
8月前
|
小程序 定位技术 API
微信小程序实现地图功能(腾讯地图)
微信小程序实现地图功能(腾讯地图)
|
8月前
|
小程序 JavaScript 定位技术
微信小程序地图控件Map的使用
微信小程序地图控件Map的使用
185 0
|
8月前
|
小程序 定位技术 API
微信小程序引入地图
微信小程序引入地图
170 0
|
3月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
901 7

热门文章

最新文章