微信小程序调用百度地图api遇到的小坑之renderReverse参数

http://api.map.baidu.com/geocoder/v2/?ak=xxx&coordtype=wgs84ll&callback=renderReverse&location=37.58585,118.8889&output=xml&pois=1

用这个api解析得到的json值中会多出

renderReverse&&renderReverse({"status":0,"result":{"location":{"lng":119.95955778200993,"lat":31.745123739675667},
renderReverse&&renderReverse这是什么鬼,拿到值很开心的用上json_decode,结果刷新查看返回NULL,竟然是空,不甘心的我以特么刷新了几遍,还是空,这是逗我吗?又跑去检查代码,代码没错啊。最后通过百度找到了正确的解决办法,原来是多了callback=renderReverse这个javascript函数名,去掉这个就行了。另一种方法是通过正则来匹配出json格式数据,

preg_match('/\(.*\)/', $str, $result);

var_dump($result);

第三办法是用str_replace和substr和strlen解决,这里就不给出具体的写法了,有需要的可以去百度一下用法。

renderReverse&&renderReverse({"status":0,"result":{"location":{"lng":116.44354999999993,"lat":39.92190007648824},"formatted_address":"北京市朝阳区吉祥里胡同206","business":"朝阳门,建国门,建外大街","addressComponent":{"country":"中国","country_code":0,"country_code_iso":"CHN","country_code_iso2":"CN","province":"北京市","city":"北京市","city_level":2,"district":"朝阳区","town":"","adcode":"110105","street":"吉祥里胡同","street_number":"206","direction":"附近","distance":"5"},"pois":[{"addr":"东二环雅宝路7号","cp":"","direction":"内","distance":"0","name":"国星大厦","poiType":"房地产","point":{"x":116.4434086604886,"y":39.921593848478497},"tag":"房地产","tel":"","uid":"631c4157bb0c036130f71d94","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区朝外西街万邦商贸大厦东50米(雅宝里旁)","cp":" ","direction":"西","distance":"82","name":"南下坡清真寺","poiType":"旅游景点","point":{"x":116.44427103377818,"y":39.92203653047836},"tag":"旅游景点;文物古迹","tel":"","uid":"a5097bfa38d65563f13cbabb","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区外交部南街10号","cp":" ","direction":"南","distance":"95","name":"万邦商贸大厦","poiType":"房地产","point":{"x":116.4433637452131,"y":39.922548377944469},"tag":"房地产;写字楼","tel":"","uid":"8fa14fc3e016c86ef6eafc94","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区雅宝路6号","cp":" ","direction":"北","distance":"104","name":"雅宝大厦","poiType":"房地产","point":{"x":116.44357035548039,"y":39.92117883148359},"tag":"房地产;写字楼","tel":"","uid":"680fb703eb66829c8ab98894","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区雅宝路甲5号","cp":" ","direction":"西","distance":"137","name":"吉利大厦(北京儿研所店)","poiType":"酒店","point":{"x":116.44473815264337,"y":39.922161034271038},"tag":"酒店;星级酒店","tel":"","uid":"d24e48eb034c52adaeee7ae4","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区雅宝路5号","cp":" ","direction":"西","distance":"73","name":"雅宝红城","poiType":"购物","point":{"x":116.44419018628229,"y":39.92178060529899},"tag":"购物;购物中心","tel":"","uid":"5e53af1a5f49335f4051c082","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区雅宝路2号","cp":" ","direction":"西北","distance":"170","name":"天雅大厦","poiType":"房地产","point":{"x":116.44460340681687,"y":39.92104049192182},"tag":"房地产;写字楼","tel":"","uid":"f60a15ed3de18ef5ba17e789","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区雅宝路8号","cp":" ","direction":"东北","distance":"189","name":"亚太大厦","poiType":"酒店","point":{"x":116.44260018552962,"y":39.920812231029028},"tag":"酒店;公寓式酒店","tel":"","uid":"dec8feba50f0f36749fc8d41","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}},{"addr":"北京市朝阳区雅宝路8号亚太大厦一二层","cp":" ","direction":"东北","distance":"178","name":"中国银行(雅宝路支行)","poiType":"金融","point":{"x":116.44270798219081,"y":39.920846816062098},"tag":"金融;银行","tel":"","uid":"3f3f0f874fe99c5c32870a00","zip":"","parent_poi":{"name":"亚太大厦","tag":"酒店;公寓式酒店","addr":"北京市朝阳区雅宝路8号","point":{"x":116.44260018552962,"y":39.920812231029028},"direction":"东北","distance":"189","uid":"dec8feba50f0f36749fc8d41"}},{"addr":"北京市朝阳区朝阳门南大街14号","cp":" ","direction":"东南","distance":"285","name":"FESCO北京外企人力资源服务有限公司(总部)","poiType":"公司企业","point":{"x":116.44222289721543,"y":39.923592811485089},"tag":"公司企业;公司","tel":"","uid":"ca68d85fb58c6f07ee74f842","zip":"","parent_poi":{"name":"","tag":"","addr":"","point":{"x":0.0,"y":0.0},"direction":"","distance":"","uid":""}}],"roads":[],"poiRegions":[{"direction_desc":"内","name":"E园EPARK(雅宝路店)","tag":"公司企业;公司","uid":"3609eebad1bc8116b1077d5b"}],"sematic_description":"E园EPARK(雅宝路店)内,国星大厦内0米","cityCode":131}})
// pages/main/main.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    this.loadInfo();
    this.loadCity();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  loadInfo: function() {
    var page =this;
    wx.getLocation({
      type: 'gcj02',
      success(res) {
        const latitude = res.latitude;
        const longitude = res.longitude;
        page.loadCity(latitude, longitude);
      }
    })
  },
  loadCity: function(la, lo) {
    var page = this;
    wx.request({
      url: 'http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location='+la+','+lo + '&output=json&pois=1&ak=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
      header: {
        "Content-Type": "application/json"
      },
      success: function(res) {

        console.log('http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=' + la + ',' + lo + '&output=json&pois=1&ak=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
        console.log(res);
        console.log(res.data);

      }
    })
  }
})

--------------------- 
作者:xiaolong20081 
来源:CSDN 
原文:https://blog.csdn.net/xiaolong20081/article/details/79604476 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值