小程序中引入地图

242 阅读1分钟

image.png

 <view class="carmap">
    <map
      id="myMap"
      class="map"
      latitude="{{latitude}}"
      longitude="{{longitude}}"
      markers="{{markers}}"
      polyline="{{polyline}}"
      scale="{{scale}}"	
    ></map>
 </view>
//引入api.js里需要用的的请求
import {
  isChenckRt,
  getRt,
  cfn152
} from "../../utils/requst/api.js";

Page({
  data: {
    polyline: [],
    timer: "",
    vehicleNo: "", //车牌号
    refresh_token: "",
    latitude: null,
    longitude: null,
    markers: [],
    scale: 7
  },
  onLoad: function(options) {
    var that = this
    that.setData({
      vehicleNo: decodeURIComponent(options.vehicleNo)
      // vehicleNo:"苏JS6126"
    });

    if (that.data.vehicleNo == '' || that.data.vehicleNo == 'undefined' || that.data.vehicleNo == undefined) {
      that.setData({
        latitude: 31.369014,
        longitude: 121.583243,
        markers: [],
        vehicleNo: ''
      })

      wx.showModal({
        content: '车牌号为空!',
        showCancel: false,
        //点击确定 
        success: function(res) {
          wx.navigateBack({
            delta: 1
          })
        }
      })

    } else {
      that.setData({
        latitude: 31.369014,
        longitude: 121.583243,
        markers: []
      })
      //调用地图
      that.getMap();
    }
  },
  onShow: function() {

  },
  onReady: function() {

  },
  getMap() {
    var that = this
    var refresh_token = wx.getStorageSync('token')
    that.setData({
      refresh_token: refresh_token
    })
    let parmas = {
      refreshToken: that.data.refresh_token, //用户登录成功后返回的RT
      vehicleNo: that.data.vehicleNo
    }
    cfn152(parmas).then(function(res) {
      if (res.data.meta.code == 200) {
        if (res.data.data) {
          if (res.data.data.markers.length != 0) {
            delete res.data.data.markers[1].callout;
            let start_longitude = parseInt(res.data.data.markers[0].longitude);
            let end_longitude = parseInt(res.data.data.markers[1].longitude);
            let start_latitude = parseInt(res.data.data.markers[0].latitude);
            let end_latitude = parseInt(res.data.data.markers[1].latitude);
            if ((end_latitude - start_latitude > 1) || (end_longitude - start_longitude > 1)) {
              that.scale = 7;
            } else {
              that.scale = 12;
            }
          } else {
            wx.showModal({
              content: '暂无24小时轨迹数据!',
              showCancel: false,
              //点击确定 
              success: function(res) {
                wx.navigateBack({
                  delta: 1
                })
              }
            })
          }

          that.setData({
            latitude: res.data.data.markers[0].latitude,
            longitude: res.data.data.markers[0].longitude,
            markers: res.data.data.markers,
            polyline: res.data.data.polyline
          });
          // let id=res.data.data.total * 200;
          setTimeout(() => {
            that.MapContext = wx.createMapContext('myMap', that);

            that.MapContext.moveAlong({
              markerId: 3,
              path: that.data.polyline[0].points,
              autoRotate: true,
              duration: 20000,

            })
          }, 500)
        } else {
          that.setData({
            latitude: 31.369014,
            longitude: 121.583243,
            markers: []
          })
        }
      } else {
        that.setData({
          latitude: 31.369014,
          longitude: 121.583243,
          markers: []
        })
      }
    })
  },
})