收藏
回答

关于getLocation

问题模块
API和组件

有时候需要同时获取wgs84和gcj02两种坐标,但用如下的方式,连续两次调用getLocation,始终得到相同的坐标

wx.getLocation({

  type: 'wgs84',
  success: function(res){
     that.setData({loc: res});
  }
});
wx.getLocation({
  type: 'gcj02',
  success: function (res) {
    that.setData({ loc2: res });
  }
});

用下面的方式,在一个getLocation的success回调中再次调用getLocation,才可以得到两种不同的坐标

var that = this;
wx.getLocation({
    type: 'wgs84',
    success: function(res){
        that.setData({loc: res});
        wx.getLocation({
            type: 'gcj02',
            success: function (res) {
                that.setData({loc2:res });
            }
        });
    }
});

以上都要调用两次getLocation,效率太低,建议只调用一次getLocation,就能同时获得wgs84和gcj02两种坐标

最后一次编辑于  2017-09-07  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

2 个回答

  • logic
    logic
    2017-09-07

    如果调用两次getLocation,很多东西都要重复一次。其实gcj02就是由wgs84计算而来的,在getLocation中增加一个参数,决定是否计算gcj02,success返回参数再增加两个经纬度字段,保存gcj02经纬度,如果没有计算,这两个字段值就为null,原有的latitude和longitude就保存wgs84坐标,其他的高度、精度之类的,其实都一样。

    2017-09-07
    赞同
    回复
  • logic
    logic
    2017-09-07

    这个问题以前也提过

    https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1256082454&docid=53c1e9a32d1b1a9f60de0b801db9c132

    2017-09-07
    赞同
    回复