小程序定位

做小程序有四个月的时间,对小程序的认知还是比较浅的,小程序已上线,正好有空余时间总结一下。=.=

门店定位

门店定位用到了百度地图,先说一下怎么实现定位的,贴代码

var bmap = require('../libs/bmap-wx.min.js');
// 获取定位信息
getLocation() {
  let that = this;
  let BMap = new bmap.BMapWX({
    ak: that.$parent.globalData.appInfo.ak
  });
  //定位失败或是拒绝定位授权
  let fail = function (data) {
    let _info = {
      title: '提示',
      content: "未定位到门店,请选择门店",
      confirmText: '选择门店',
      showCancel: false,
      success(res) {
        if (res.confirm) {
          wx.reLaunch({
            url: './location'
          })
        }
      }
    };
    wx.showModal(_info);
    //that.matchNearmall();
  };
  let success = function (data) {
    //返回数据内,已经包含经纬度 
    //使用wxMarkerData获取数据
    let wxMarkerData = data.wxMarkerData;
    //把所有数据放在初始化data内 
    that.$parent.globalData.locationInfo = {
      latitude: wxMarkerData[0].latitude,
      longitude: wxMarkerData[0].longitude,
      address: wxMarkerData[0].address,
      cityInfo: data.originalData.result.addressComponent
    };
    if (data) {
      // 获取到经纬度传给后台匹配最近门店并返回当前门店的信息
      that.gthomeInfo(that.$parent.globalData.locationInfo);
    }
  }
  //发起regeocoding检索请求   
  BMap.regeocoding({
    fail: fail,
    success: success
  });
}
复制代码

目前定位门店并获取门店信息的流程是
百度地图api 下载链接

  1. 在百度api虎鲸数据手动添加对应门店信息位置
  2. 引入百度地图api
  3. 在文件中引入var bmap = require('./libs/bmap-wx.min.js')
  4. 匹配附近门店
代码实现
var bmap = require('./libs/bmap-wx.min.js')
getLocation () {
    // 
    let Bmap = new bmap.BMapWX({
      ak: this.globalData.appInfo.ak
    })
    Bmap.regeocoding({
      fail: res => {
        console.log(res)
      },
      success: res => {
        console.log(res)
        let wxMarkerData = res.wxMarkerData
        wx.setStorageSync('location', {
          longitude: wxMarkerData[0].longitude,
          latitude: wxMarkerData[0].latitude,
          address: wxMarkerData[0].address,
          addressComponent: res.originalData.result.addressComponent
        })
        this.nearLocationInfo()
      }
    })
  }
  // 匹配附近
  nearLocationInfo() {
    wx.request({
      url: 'http://api.map.baidu.com/geosearch/v3/nearby?ak=nqcYH1wuDwhloiynnROqx2jDAXdkBPln',
      data: {
        geotable_id: this.globalData.appInfo.geotable_id,
        location: wx.getStorageSync('location').longitude + ',' + wx.getStorageSync('location').latitude,
        radius: 1000000,
        sortby: 'distance:1',
        page_index: 0,
        page_size: 10
      },
      success: data => {
        console.log(data)
        // 调用成功之后获取第一个数据就是附近的定位
        // 因为sortby给定顺序
      }
    })
  }
  onLaunch() {
    this.getLocation()
  }
复制代码

不知道大家怎么实现的,有比较好的意见,欢迎大家提议。

小程序我使用了wepy组件 使用过程中 也会遇到很多坑。有时跳转有问题 在最终还是使用小程序原生组件。 问题说的比较笼统,下面我总结一下自己用到的功能展现。我也是初识小程序,在项目中也是不断挖坑填坑,技术还不到家 有问题的话,希望大家指出~_~

微信小程序swiper轮播图卡死来回疯狂轮播

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值