当前位置:   article > 正文

vue中使用腾讯地图做路线规划_vue direction/v1/driving

vue direction/v1/driving

在index.html中引入

<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=IVJBZ-PXLCP-GURDR-VROBE-4HQAF-U4FDK"></script>

main.js  jsonp的回调函数,必须在window下,不然指向不到

  1. // 腾讯地图--做路线规划
  2. window.cb = function(ret) {
  3. var coords = ret.result.routes[0].polyline,
  4. pl = [];
  5. //坐标解压(返回的点串坐标,通过前向差分进行压缩)
  6. var kr = 1000000;
  7. for (var i = 2; i < coords.length; i++) {
  8. coords[i] = Number(coords[i - 2]) + Number(coords[i]) / kr;
  9. }
  10. //将解压后的坐标放入点串数组pl中
  11. for (var i = 0; i < coords.length; i += 2) {
  12. pl.push(new TMap.LatLng(coords[i], coords[i + 1]));
  13. }
  14. display_polyline(pl); //显示路线
  15. //标记起终点marker
  16. }
  17. window.display_polyline = function(pl) {
  18. //创建 MultiPolyline显示折线
  19. var polylineLayer = new TMap.MultiPolyline({
  20. id: "polyline-layer", //图层唯一标识
  21. map: map, //绘制到目标地图
  22. //折线样式定义
  23. styles: {
  24. style_blue: new TMap.PolylineStyle({
  25. color: "#3777FF", //线填充色
  26. width: 8, //折线宽度
  27. borderWidth: 5, //边线宽度
  28. borderColor: "#FFF", //边线颜色
  29. lineCap: "round", //线端头方式
  30. }),
  31. },
  32. //折线数据定义
  33. geometries: [
  34. {
  35. id: "pl_1", //折线唯一标识,删除时使用
  36. styleId: "style_blue", //绑定样式名
  37. paths: pl,
  38. },
  39. ],
  40. });
  41. }

地图

  1. <div id="mapContainer"></div>
  2. initMap() {
  3. //初始化地图
  4. window.map = new TMap.Map(document.getElementById("mapContainer"), {
  5. center: new TMap.LatLng(34.22621,108.884623), //地图显示中心点,经纬度
  6. zoom: 14, //缩放级别
  7. disableDefaultUI: true,
  8. });
  9. //WebServiceAPI请求URL(驾车路线规划默认会参考实时路况进行计算)
  10. var url = `https://apis.map.qq.com/ws/direction/v1/driving/?from=${this.orderLocationList[0].latitude},${this.orderLocationList[0].longitude}&to=${this.orderLocationList[1].latitude},${this.orderLocationList[1].longitude}&output=jsonp&callback=cb&key=IVJBZ-PXLCP-GURDR-VROBE-4HQAF-U4FDK`
  11. this.jsonp_request(url);
  12. var marker = new TMap.MultiMarker({
  13. id: "marker-layer",
  14. map: map,
  15. styles: {
  16. start: new TMap.MarkerStyle({
  17. width: 25,
  18. height: 35,
  19. anchor: { x: 16, y: 32 },
  20. src:"https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/start.png",
  21. }),
  22. end: new TMap.MarkerStyle({
  23. width: 25,
  24. height: 35,
  25. anchor: { x: 16, y: 32 },
  26. src: "https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/end.png",
  27. }),
  28. },
  29. geometries: [
  30. {
  31. id: "start",
  32. styleId: "start",
  33. position: new TMap.LatLng(34.22621,108.884623),
  34. },
  35. {
  36. id: "end",
  37. styleId: "end",
  38. position: new TMap.LatLng(34.22621,108.884623),
  39. },
  40. ],
  41. });
  42. },
  43. //浏览器调用WebServiceAPI需要通过Jsonp的方式,此处定义了发送JOSNP请求的函数
  44. jsonp_request(url) {
  45. var script = document.createElement("script");
  46. script.src = url;
  47. document.body.appendChild(script);
  48. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/495232
推荐阅读
相关标签
  

闽ICP备14008679号