map——地图控件,不能再scroll-view 中使用,本案例先使用 wx.getLocation()方法获取当前坐标,然后将值设置到地图显示,本次案例简单显示其覆盖物。小程序文档中对covers和markers描述有些冲突,待后面查证。
看实现效果:
视图层:
<view class="page">
<view><text>纬度:{{latitude}}</text></view>
<view><text>经度:{{longitude}}</text></view>
<map style="width: 100%; height: 400px;"
latitude="{{latitude}}"
longitude="{{longitude}}"
markers="{{markers}}"
covers="{{covers}}"
scale="14"/>
</view>
控制层:
//获取应用实例
var app = getApp()
var util = require('../../../utils/util.js')
Page({
data: {
latitude: 0,//纬度
longitude: 0,//经度
markers: [{
latitude: 0,
longitude: 0,
name: '苏州'
}],
covers: [{
latitude: 0,
longitude: 0,
iconPath: '../../images/wechatHL.png', // 目前有 bug,正确的写法应该是 /image/green_tri.png ,等我们下个版本修复吧T_T
}]
},
//获取当前的经纬度
onLoad: function () {
var that = this;
wx.getLocation({
type: 'wgs84', // 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标
success: function (res) {
// success
console.log(res);
var marker = that.data.markers[0];
marker.latitude = res.latitude
marker.longitude = res.longitude
var cover = that.data.covers[0];
cover.latitude = res.latitude
cover.longitude = res.longitude
that.setData({
latitude: res.latitude,//纬度
longitude: res.longitude,//经度
})
var changeData = {}
changeData['markers[' + 0 + ']'] = marker
that.setData(changeData)
var changeData = {}
changeData['covers[' + 0 + ']'] = cover
that.setData(changeData)
},
fail: function () {
// fail
util.showToast("什么鬼")
},
})
},
})