引言
手绘地图顾名思义就是手工绘制的地图,比普通的地图更有观赏性和生动性,通过把特定的地点绘制出来,兼具实用和纪念性,同时更加具有可看性。一般在旅游景点有很多这种纸质版手绘地图。比如这种:
问题
如何在小程序地图上实现覆盖手绘地图
方法
目前在小程序实现贴图主要有三种方法:
1.小程序个性化地图扩展功能(需要钱)
2.小程序内嵌webview(初始加载速度慢,而且个人开发的小程序无法使用)
3.应用MapContext.addGroundOverlay接口
排除要钱的和不好用的,这里我们将用第三种方法来实现小程序贴图:
index.wxml
<map
id="map"
latitude="{{latitude}}"
longitude="{{longitude}}"
style="width: 100%;height:1414rpx;"
>
</map>
index.js
Page({
/**
* 页面的初始数据
*/
data: {
latitude: 30.580251,
longitude: 104.277677,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function () {
this.mapCtx = wx.createMapContext('map')
this.mapCtx.addGroundOverlay({
id: 0,
src: "../image/sctu.png",
bounds: {
southwest: { //西南角
latitude: 30.576161,
longitude: 104.272544,
},
northeast: { //东北角
latitude: 30.585218,
longitude: 104.285232,
}
},
success(res){
console.log('wp', res)
},
fail(err){
console.log('wperr', err)
}
})
},
})
实验结果与讨论
最终效果如图:
注意:目前使用MapContext.addGroundOverlay实现小程序贴图在模拟器上不显示,在手机端可显示。
结语
使用MapContext.addGroundOverlay实现小程序贴图的方法比较简单,只要在js文件中应用该API即可。下次将介绍如何解决小程序地图切换标记点闪屏的问题。