1. 小程序地图怎么用?
1.1 引入地图组件
在小程序开发过程中,首先需要引入地图组件。可以通过微信小程序官方提供的组件“map”来进行引入,代码如下:
<map id="map" longitude="{{ longitude }}" latitude="{{ latitude }}" show-location="true" />
其中,id属性是必填项,longitude和latitude属性是指地图中心点的经纬度,show-location属性是表示是否显示当前位置。
1.2 获取用户地理位置
要在地图上显示当前位置,首先需要获取用户的地理位置。可以通过微信小程序提供的API wx.getLocation来获取。代码如下:
wx.getLocation({
type: 'gcj02',
success: function(res) {
var latitude = res.latitude
var longitude = res.longitude
that.setData({
longitude: longitude,
latitude: latitude
})
}
})
其中,type属性是获取位置的类型,可以选择使用“wgs84”或“gcj02”坐标系,这里选择使用gcj02坐标系。
1.3 在地图上添加标记
在地图上添加标记,可以通过wx.createMarkerAPI来进行。代码如下:
var marker = [{
iconPath: "/resources/others.png",
id: 0,
latitude: 23.099994,
longitude: 113.324520,
width: 50,
height: 50
}]
that.setData({
markers: marker
})
其中,iconPath属性是指标记的图标路径,id属性是唯一标识,latitude和longitude属性是坐标,width和height属性是标记的宽度和高度。
1.4 完整代码
下面是一个完整的小程序地图的示例代码:
//index.js
Page({
data: {
longitude: 113.324520,
latitude: 23.099994,
markers: [{
iconPath: "/resources/others.png",
id: 0,
latitude: 23.099994,
longitude: 113.324520,
width: 50,
height: 50
}]
},
onReady: function (e) {
this.mapCtx = wx.createMapContext('myMap')
}
})
其中,onReady事件是指页面初次渲染完成时触发的事件,可以在这里得到地图上下文,使用地图上下文继续操作地图。
2. 操作地图
2.1 地图移动
在开发中,经常需要通过代码来控制地图移动。可以通过地图上下文的translateMarker方法来实现。代码如下:
this.mapCtx.translateMarker({
markerId: 0,
autoRotate: true,
duration: 1000,
destination: {
latitude: 23.10229,
longitude: 113.3345211,
},
animationEnd() {
console.log('animation end')
}
})
其中,markerId属性是指要移动的标记的id,autoRotate属性是指标记是否自动旋转,duration属性是指移动动画的持续时间,destination属性是指目标点的坐标。animationEnd事件是指移动动画完成后触发的事件。
2.2 缩放地图
在实际开发中,经常需要对地图进行缩放。可以通过地图上下文的includePoints方法来实现。代码如下:
this.mapCtx.includePoints({
padding: [10],
points: [{
latitude: 23.099994,
longitude: 113.324520,
}, {
latitude: 23.00229,
longitude: 113.3345211,
}]
})
其中,padding属性是指缩放后的地图边缘与屏幕边缘的间隔距离,points属性是指需要显示在当前地图可视区域内的点的集合。
2.3 设置地图控件
在小程序地图中,也可以自定义地图控件。可以在js文件中通过调用小程序提供的API wx.getSystemInfoSync来获取手机屏幕的宽度和高度,然后计算出控件的位置和大小。代码如下:
var windowWidth = wx.getSystemInfoSync().windowWidth
var windowHeight = wx.getSystemInfoSync().windowHeight
this.setData({
controls: [{
id: 1,
iconPath: '/pages/map/images/location.png',
position: {
left: windowWidth/2 - 20,
top: windowHeight/2 - 50,
width: 40,
height: 40
},
clickable: true
}]
})
其中,controls属性是指控件的组合,id属性是控件的唯一标识,iconPath属性是控件的图标路径,position属性是控件的位置和大小,clickable属性是指控件是否可以点击。
3. 总结
小程序地图的使用相对来说比较简单,可以通过引入地图组件、获取用户地理位置、添加标记、地图移动、缩放地图、设置地图控件等操作来实现各种地图功能。
此外,在使用小程序地图时,需要注意授权问题,需要在小程序的app.json文件中进行配置,否则无法获取地理位置。