使用腾讯地图驾车规划路线

末蓝、 2022-05-24 06:46 894阅读 0赞
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <link href="https://v3.bootcss.com/dist/css/bootstrap.min.css" rel="stylesheet"/>
  6. <title>基本地图展示</title>
  7. </head>
  8. <body>
  9. <p>通过腾讯地图规划驾车路线,并展示运动轨迹</p>
  10. 输入要规划路线的地址:<input type="text" style="width: 63%;"
  11. value="http://apis.map.qq.com/ws/direction/v1/walking/?from=39.915285,116.403857&to=39.915285,116.803857&key=腾讯地图key" />
  12. <button class="btn btn-xs btn-primary">查看路线</button>
  13. <input type="button" class="btn btn-xs btn-primary hidden" value="开始动画" id="start"/>
  14. <input type="button" class="btn btn-xs btn-primary hidden" value="暂停动画" id="pause"/>
  15. <input type="button" class="btn btn-xs btn-primary hidden" value="继续动画" id="resume"/>
  16. <input type="button" class="btn btn-xs btn-primary hidden" value="停止动画" id="stop"/>
  17. <br><br>
  18. <div id="container" style="height: 500px; width: 80%"></div>
  19. <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
  20. <script src="http://webapi.amap.com/maps?v=1.4.6&key=高德地图key"></script>
  21. <script>
  22. $(function() {
  23. var map = new AMap.Map('container', {
  24. resizeEnable: true,
  25. zoom:11,
  26. center: [116.397428, 39.90923]
  27. });
  28. $('button').click(function(){
  29. map.clearMap();
  30. var urlAll = $('input').val();
  31. //获取参数
  32. var arr = urlAll.split('?');
  33. var url = arr[0];
  34. var canshu = arr[1].split('&');
  35. var dataParam = {
  36. output : 'jsonp'
  37. };
  38. for(var i=0; i<canshu.length; i++) {
  39. var can = canshu[i].split('=');
  40. if(can[0] == 'from') {
  41. dataParam.from = can[1];
  42. }
  43. if(can[0] == 'to') {
  44. dataParam.to = can[1];
  45. }
  46. if(can[0] == 'waypoints') {
  47. dataParam.waypoints = can[1];
  48. }
  49. if(can[0] == 'key') {
  50. dataParam.key = can[1];
  51. }
  52. }
  53. //始点
  54. var kaishi = dataParam.from;
  55. var kaishiArr = kaishi.split(',');
  56. new AMap.Marker({
  57. map: map,
  58. position: [kaishiArr[1], kaishiArr[0]],
  59. icon: "http://webapi.amap.com/theme/v1.3/markers/n/start.png"
  60. });
  61. //终点
  62. var zhong = dataParam.to;
  63. var zhongArr = zhong.split(',');
  64. new AMap.Marker({
  65. map: map,
  66. position: [zhongArr[1], zhongArr[0]],
  67. icon: "http://webapi.amap.com/theme/v1.3/markers/n/end.png"
  68. });
  69. $.ajax({
  70. url: url,
  71. data : dataParam,
  72. dataType: 'jsonp',
  73. success: function (data) {
  74. var luxiain = data.result.routes[0];
  75. console.log(luxiain);
  76. var coors = luxiain.polyline;//点集合
  77. //转经纬度集合
  78. for (var i = 2; i < coors.length; i++) {
  79. coors[i] = coors[i - 2] + coors[i] / 1000000;
  80. }
  81. var lineNew = [];
  82. for (var i = 0; i < coors.length; i=i+2) {
  83. lineNew[i/2] = [coors[i+1], coors[i]];
  84. }
  85. var polyline = new AMap.Polyline({
  86. path: lineNew,
  87. strokeOpacity: 1,
  88. strokeWeight: 3,
  89. strokeStyle: "solid",
  90. strokeDasharray: [10, 5]
  91. });
  92. polyline.setMap(map);
  93. $('#start').removeClass('hidden');
  94. //开始动画
  95. marker = new AMap.Marker({
  96. map: map,
  97. position: [kaishiArr[1], kaishiArr[0]],
  98. icon: "http://webapi.amap.com/images/car.png",
  99. offset: new AMap.Pixel(-26, -13),
  100. autoRotation: true });
  101. var passedPolyline = new AMap.Polyline({
  102. map: map,
  103. strokeColor: "#F00", //线颜色
  104. strokeWeight: 3 //线宽
  105. });
  106. marker.on('moving',function(e){
  107. passedPolyline.setPath(e.passedPath);
  108. })
  109. map.setFitView();
  110. AMap.event.addDomListener(document.getElementById('start'), 'click', function() {
  111. marker.moveAlong(lineNew, 1500);
  112. $('#pause').removeClass('hidden');
  113. $('#resume').removeClass('hidden');
  114. $('#stop').removeClass('hidden');
  115. }, false);
  116. AMap.event.addDomListener(document.getElementById('pause'), 'click', function() {
  117. marker.pauseMove();
  118. }, false);
  119. AMap.event.addDomListener(document.getElementById('resume'), 'click', function() {
  120. marker.resumeMove();
  121. }, false);
  122. AMap.event.addDomListener(document.getElementById('stop'), 'click', function() {
  123. marker.stopMove();
  124. }, false);
  125. },
  126. error: function(error) {
  127. console.log('jsonp');
  128. console.log(error);
  129. }
  130. });
  131. //缩放显示所有点
  132. map.setFitView();
  133. });
  134. });
  135. </script>
  136. </body>
  137. </html>

地图展示:

20180522183444392

发表评论

表情:
评论列表 (有 0 条评论,894人围观)

还没有评论,来说两句吧...

相关阅读