map组件中心点重设失效
发布于 6 年前 作者 weimo 18062 次浏览 来自 问答

我有个map组件,通过移动地图产生变化后,重新获取中心点,可是show-location并不会产生变化,而我新增的markers标记点是有变化的,是什么情况?希望官方给个回应

测试代码如下:

<map id="map" latitude="{{lat}}" longitude="{{lng}}" markers='{{markers}}' bindregionchange="moveMap" show-location>
 
  <cover-view class="text">{{lat}}***{{lng}}</cover-view>
 
</map>
let mapCtx=null;
Page({
  data: {
    lat: 0,
    lng: 0,
    markers:[]
  },
  onLoad: function (options) {
    let that = this;
    wx.getLocation({
      success: function (res) {
        that.setData({
          lat: res.latitude,
          lng: res.longitude,
          markers: [{
            id: 0,
            title: '000',
            latitude: res.latitude,
            longitude: res.longitude
          }]
        });
      },
    });
  },
  onReady: function () {
    mapCtx=wx.createMapContext('map', this);
  },
  moveMap(e){
    console.log(e)
    let that=this;
    if(e.type==='end'){
      let markers=that.data.markers;
      mapCtx.getCenterLocation({
        success(res) {
          console.log(res)
          markers.push({
            id: 1,
            title: '111',
            latitude: res.latitude,
            longitude: res.longitude
          })
          that.setData({
            lat: res.latitude,
            lng: res.longitude,
            markers: markers
 
          });
          console.log(that.data.markers)
        }
      })
    }
  }
})

以上逻辑代码中,我将用户中心点作为markers标记点,移动地图后重新获取用户中心点并赋值中心点坐标和markers标记点,但是show-location坐标点并没有跟着产生变化

效果如下:

8 回复

这个就是调节 show-location 那个当前位置的经纬度

show-location 的位置只有在调试器的__sensor__ 可换位置

好吧,我是想要做一个调试测试。

当用户行走到景区附近提醒用户展示相应的信息。如何就是想直接在地图上模拟用户的行走进行调试测试。

“show-location 的位置只有在调试器的sensor 可换位置”你说的这个是什么意思?@GaleLiu 

我觉得地图组件api的__getCenterLocation()__方法可解决你的问题

恩,你说的这种确实可行。

另外一种是模拟用户行走,实时提醒用户行走的一个需求,这个要怎么调试测试会更方便呢?

不知道更改map的latitude和longitude是否可行,这个确实是得在测试看看。或者是否有其他更好的方案呢?

感谢你的帮助。

那不就相当于你移动地图,然后展示你移动后的位子附近要展示的信息吗?很简单啊,你只用把点打好不就行了么?这个需求很简单的,别想太复杂

那个show什么是显示你的定位坐标。。。你可能搞晕头了,你移动地图,你的定位坐标为什么会跟着改变呢?

回到顶部