• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    微信小程序+騰訊地圖開發實現路徑規劃繪制

    來源:懂視網 責編:小采 時間:2020-11-27 21:56:27
    文檔

    微信小程序+騰訊地圖開發實現路徑規劃繪制

    微信小程序+騰訊地圖開發實現路徑規劃繪制:現象 我們想用微信小程序實現在map>組件上自定義顯示導航路徑,但是目前為止官方并未給出相應的方法實現,map>組件確實有繪制點對點連線的屬性polyline,但是呢我們沒有一系列的坐標集合也是畫不出一條路徑的, 更糟糕的是即便你內置微信小程序Java
    推薦度:
    導讀微信小程序+騰訊地圖開發實現路徑規劃繪制:現象 我們想用微信小程序實現在map>組件上自定義顯示導航路徑,但是目前為止官方并未給出相應的方法實現,map>組件確實有繪制點對點連線的屬性polyline,但是呢我們沒有一系列的坐標集合也是畫不出一條路徑的, 更糟糕的是即便你內置微信小程序Java

    現象

    我們想用微信小程序實現在map>組件上自定義顯示導航路徑,但是目前為止官方并未給出相應的方法實現,map>組件確實有繪制點對點連線的屬性polyline,但是呢我們沒有一系列的坐標集合也是畫不出一條路徑的,

    更糟糕的是即便你內置微信小程序JavaScript SDK,它目前為止也不能給你相應的返回導航路徑中所有坐標集合方法實現,不信你看介紹

    解決方案

    那我們只能用WebService API咯,

    但是不要高興的太早,根據文檔,我們要的接口參數是醬紫的

    那么我們開始寫(下面是菜雞版代碼,非禮勿視)

    wx.request()參數的data部分對”from”/”to”賦值不能采用慣用手法了,你會發現換了好幾種方式依然不能如意,要么請求參數非法,要么語法編譯又過不了,沒辦法,最后只能使用絕招了

     

    哼哼,狀態穩如老狗 @_@

    ok,到此為止,我們已經拿到我們想要的坐標集合了,那么接下來就是提取坐標數組,然后給polyline繪制的問題了

    利用polyline繪制路徑

    什么都不說了,直接上代碼:

    /**
     * 獲取當前位置標記在地圖上并且利用polyline繪制路徑
     */
     now_LocationTap: function () {
     var that = this
     /**
     * 初始化當前地圖標記信息
     */
     wx.getLocation({
     type: 'gcj02', // 默認為 wgs84 返回 gps 坐標,gcj02 返回可用于 wx.openLocation 的坐標
     success: function (res) {
     console.log('當前位置數據Object如下:')
     console.log(res)
     /** 開始同步數據 */
     that.setData({
     now_Location: {
     latitude: res.latitude,
     longitude: res.longitude,
     },
     /**初始化地圖標記點附近車輛信息 */
     markers: [
     {
     iconPath: '/resources/wait/car.png',
     width: 70,
     height: 70,
     latitude: res.latitude,
     longitude: res.longitude
     }
     ]
    
     })
     console.log('當前latitude:' + res.latitude)
     console.log('當前longitude:' + res.longitude)
     console.log('當前latitude同步結果:' + that.data.now_Location.latitude)
     console.log('當前longitude同步結果:' + that.data.now_Location.longitude)
    
     /********************** 從騰訊地圖WebService API請求導航路線坐標集合用于point_Array折線連接 */
     var now_Location = String(res.latitude + ',' + res.longitude)
     var end_Location = String(that.data.endLocation.latitude + ',' + that.data.endLocation.longitude)
     wx.request({
     url: 'https://apis.map.qq.com/ws/direction/v1/driving/', //連接接口地址
    
     data: {
     from: now_Location,
     to: end_Location,
     policy: 'REAL_TRAFFIC', //結合路況的最優方式
     key: '騰訊地圖KEY',
    
     },
     header: {
     'content-type': 'application/json' // 默認值
     },
     success: function (res) {
     console.log(res.data)
     console.log('剩余距離:' + res.data.result.routes[0].distance + '米')
     console.log('剩余時間:' + res.data.result.routes[0].duration + '分鐘')
     console.log('導航路線點串如下:')
     console.log(res.data.result.routes[0].polyline)
     /** 獲取返回的方案路線坐標點串并解壓 */
     var coors = res.data.result.routes[0].polyline
     for (var i = 2; i < coors.length; i++)
     { coors[i] = coors[i - 2] + coors[i] / 1000000 }
     console.log('路線坐標點串解壓完畢!')
     console.log('路線坐標點串解壓結果如下:')
     console.log(coors);
     /** 將解壓后的坐標點串進行拼接成polyline想要的樣子 */
     var coors_new=[] //記住微信小程序聲明一個數組這樣寫
     for(var j = 0; j < coors.length; j++){
     coors_new.push({
     latitude: parseFloat(coors[j]),
     longitude: parseFloat(coors[j+1])
     })
     j++;
     } 
    
     /* 自己想的針對polyline的points做出的格式化方案,直接實現了目標對象的字符串形式,但是一開始沒注意數據類型的問題,隨后試了好幾種方案都不如意,最終查看了高德地圖的開發方案后恍然大悟,Array.push({latitude:'',longitude:''}),簡直完美!
     for (var i = 0, j = 0; i < coors.length - 2, j < coors.length/2; i++,j++)
     { 
     coors[i] = String('{latitude:'+String(coors[i])+','+'longitude:'+String(coors[i + 1])+'}') ;
     coors_new[j] = coors[i];
     i+=1; //此處注意不+2的原因是:還有for循環的自動+1,結合起來就會達到跳2的效果
     }
     */
    
     console.log('路線坐標點串格式化完畢!')
     console.log('路線坐標點串格式化結果如下:')
     console.log(coors)
     console.log('已經產生新的經緯度數組coors_new如下:')
     console.log(coors_new)
     console.log('路線坐標點串解壓后一共:' + coors.length + '個')
     console.log('路線坐標點串轉換后一共:' + coors_new.length + '個')
     /** 開始同步路線坐標集合+剩余距離+剩余時間數據 */
     that.setData({
     now_Duration: res.data.result.routes[0].duration, //剩余時間
     now_Distance: res.data.result.routes[0].distance, //剩余距離
     polyline_Object: [{
     points: coors_new,//指定一系列坐標點,從數組第一項連線至最后一項
     color: "#FF0000DD",
     width: 2,
     dottedLine: true
     }],
     })
     console.log('更新points經緯度數組如下:')
     console.log(that.data.polyline_Object[0].points)
     console.log('更新polyline_Object如下:')
     console.log(that.data.polyline_Object)
     console.log('當前剩余時間 now_Duration同步結果:' + that.data.now_Duration+'分鐘')
     console.log('當前剩余距離now_Distance同步結果:' + that.data.now_Distance+'米')
     }
     })
    
     },
     })
     }!

     

    至此路徑規劃告一段落

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    微信小程序+騰訊地圖開發實現路徑規劃繪制

    微信小程序+騰訊地圖開發實現路徑規劃繪制:現象 我們想用微信小程序實現在map>組件上自定義顯示導航路徑,但是目前為止官方并未給出相應的方法實現,map>組件確實有繪制點對點連線的屬性polyline,但是呢我們沒有一系列的坐標集合也是畫不出一條路徑的, 更糟糕的是即便你內置微信小程序Java
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品三级在线观看无码| 国产精品久久久亚洲| 无码人妻精品一区二区三区99仓本 | 久久无码人妻精品一区二区三区 | 国产69精品久久久久9999| 久久精品国产精品亚洲毛片| 影院无码人妻精品一区二区| 国产成人99久久亚洲综合精品| 久久国产精品视频| 999精品色在线播放| 国产精品扒开腿做爽爽爽视频| 一本久久a久久精品综合夜夜 | 亚洲国产精品一区二区久久| 亚洲精品一品区二品区三品区| 国产亚洲欧洲精品| 精品国产乱码一区二区三区| 亚洲国产精品无码AAA片| 一本久久a久久精品综合香蕉| 动漫精品专区一区二区三区不卡| 高清在线国产午夜精品| 免费精品一区二区三区第35 | 国产亚洲精品拍拍拍拍拍| 97国产精品视频| 99在线精品视频在线观看| 久久久久久亚洲Av无码精品专口 | 99精品全国免费观看视频..| 精品国产第一国产综合精品| 欧洲精品99毛片免费高清观看| 国产成人精品视频2021| www国产精品| 九九精品免视看国产成人| 国内精品久久久久影院免费| 欧美日韩精品一区二区三区| 欧美极品欧美精品欧美视频| 777被窝午夜精品影院| 日本精品中文字幕| 国产精品国产三级在线专区| 久久这里有精品视频| 日韩精品中文字幕第2页| 中文字幕精品无码一区二区| 精品人妻人人做人人爽 |