在小程序中使用地图组件遇到的问题,使用微信小程序的map组件,
<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="16" markers="{{markers}}" bindmarkertap="markertap" show-location style="width: 100%; height: 270px;"></map>
<!--js-->
data: {
latitude: 30.52210,
longitude: 114.32051,
markers: [{
iconPath: "../../images/icon/location.png",
id: 0,
latitude: 30.52210,
longitude: 114.32051,
width: 30,
height: 30
}]
},
<!--此前通过百度地图找到经纬度,设置latitude和longitude,就出现了此问题-->
在页面显示的效果如下,地图的定位点没有在视觉中心,
后来通过wx.getLocation()获得自己的定位点的信息,在开发工具中打印经纬度,然后把数值赋值给data,发现还是不在视觉中心,而且此时的经纬度与百度地图给出的经纬度也有出入不一样...,这个怎么办....
网络上有很多的解释,各种各样,有的写的都不想看,有的也看不懂...,这个如何是好!!!!
后来,偶然的一个机会......
我点击远程调试.....
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success: function (res) {
var latitude = res.latitude;
var longitude = res.longitude;
console.log(latitude + '--------------' + longitude)
},
fail: function () {
// console.log('fail')
},
complete:function(){
// console.log('complete')
}
})
然后在真机上访问,此时在....
image.png
发现打印的经纬度和在之前在开发工具里打印的经纬度不一样.....
然后把data里的经纬度改成这两个数据的时候发现,定位点就在数据中心......
哪位大神能解释一下这个问题是什么原因......
备注:后来的开发中,同样要显示客户的地理位置信息,这该怎么办,不可能小程序提供了这样的组件,但是使用起来很麻烦,或者出现错误,回头仔细想了想,微信是腾讯的产品,那么它内部使用的是不是腾讯地图,以前都是用百度经纬度查询的经纬度,在抱着尝试的态度,是用腾讯地图坐标拾取的经纬度,发现问题就没了......,是不是很神奇,总结猜想,应该是各大地图内置的坐标不一样,对同一个地点所得的经纬度有出入.....