Amap.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <div class="box">
  3. <div id="container" style="width:100%; height:100%"></div>
  4. <loading :visible="isLoading"></loading>
  5. </div>
  6. </template>
  7. <script>
  8. import MapLoader from '$project/utils/AMap'
  9. import Loading from '$project/components/Loading.vue'
  10. export default {
  11. components: {
  12. Loading
  13. },
  14. data() {
  15. return {
  16. isLoading: false,
  17. }
  18. },
  19. mounted() {},
  20. props: {
  21. converStatus: {
  22. require: false,
  23. default: 0,
  24. }
  25. },
  26. created() {
  27. /* var script = document.createElement('script')
  28. script.type = 'text/javascript'
  29. script.src = 'https://webapi.amap.com/maps?v=1.4.15&key=09abadb2e35fc61fd84042c518e9aebf' // 高德地图
  30. document.body.appendChild(script) */
  31. },
  32. methods: {
  33. init(pointArr) {
  34. this.isLoading = true;
  35. MapLoader().then(AMap => {
  36. /* let map = new AMap.Map('container', {
  37. center: [116.397428, 39.90923],
  38. resizeEnable: true,
  39. zoom: 10
  40. }) */
  41. var amapPointArr = pointArr;
  42. //console.log(pointArr)
  43. var marker, lineArr = amapPointArr;
  44. console.log(amapPointArr)
  45. map && map.destroy();
  46. //默认荆鹏软件园中心坐标
  47. var map = new AMap.Map("container", {
  48. resizeEnable: true,
  49. center: [112.276527, 30.306427],
  50. zoom: 17
  51. });
  52. var markArr = [];
  53. var _this = this;
  54. amapPointArr.forEach(function(item, index) {
  55. if (index == 0 || amapPointArr.length == 1) {
  56. var icon = require("$project/assets/img/map_0.png");
  57. } else if (index == amapPointArr.length - 1) {
  58. var icon = require("$project/assets/img/map_2.png");
  59. } else {
  60. var icon = require("$project/assets/img/map_1.png");
  61. }
  62. var marker=new AMap.Marker({
  63. map: map,
  64. position: lineArr[index],
  65. icon: icon,
  66. offset: new AMap.Pixel(-26, -13),
  67. autoRotation: true,
  68. extData: item
  69. });
  70. markArr.push(marker)
  71. AMap.event.addListener(marker, 'click', function(e) {
  72. var cur = JSON.parse(JSON.stringify(e.target.getExtData()));
  73. console.log(cur)
  74. });
  75. })
  76. map.add(markArr);
  77. // 绘制轨迹
  78. var polyline = new AMap.Polyline({
  79. map: map,
  80. path: lineArr,
  81. showDir: true,
  82. strokeColor: "#28F", //线颜色
  83. // strokeOpacity: 1, //线透明度
  84. strokeWeight: 3, //线宽
  85. // strokeStyle: "solid" //线样式
  86. });
  87. var passedPolyline = new AMap.Polyline({
  88. map: map,
  89. // path: lineArr,
  90. strokeColor: "#AF5", //线颜色
  91. // strokeOpacity: 1, //线透明度
  92. strokeWeight: 6, //线宽
  93. // strokeStyle: "solid" //线样式
  94. });
  95. /* marker.on('moving', function(e) {
  96. passedPolyline.setPath(e.passedPath);
  97. }); */
  98. map.setFitView();
  99. this.isLoading = false;
  100. }, e => {
  101. this.mui.toast('地图加载失败');
  102. console.log('地图加载失败', e)
  103. })
  104. },
  105. },
  106. }
  107. </script>
  108. <style>
  109. </style>