当前位置:   article > 正文

vue使用百度地图(标点、点击后展示弹框、多个标点、点聚合)_vue 百度地图 显示多个坐标

vue 百度地图 显示多个坐标
  1. 安装百度地图

npm install vue-baidu-map --save
  1. 在百度地图开放平台申请AK

  1. 全局注册,在项目的main.js中引入

  1. import Vue from "vue";
  2. import baiduMap from "vue-baidu-map";
  3. Vue.use(baiduMap, { ak: 在百度地图开放平台申请AK });

4.在public文件里的index.html中引入百度地图的点聚合工具开源库的文件

  1. <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=在百度地图开放平台申请AK "></script>
  2. <script type="text/javascript" src="//api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js">
  3. </script>
  4. <script type="text/javascript" src="//api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js">
  5. </script>
  1. 效果全部代码

  1. <template>
  2. <div id="test">
  3. <baidu-map class="bm-view" id="allmap" @ready="init"></baidu-map>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. name: "Home",
  9. components: {},
  10. data() {
  11. return {};
  12. },
  13. methods: {
  14. init() {
  15. var map = new BMap.Map("allmap"); // 创建地图实例
  16. var point = new BMap.Point(108.953723, 34.276202); //设置城市经纬度坐标
  17. map.centerAndZoom(point, 5); //
  18. map.setCurrentCity("西安"); // 设置地图显示的城市 此项是必须设置的
  19. map.enableScrollWheelZoom(true); //鼠标滚动缩放
  20. var setstyle = [
  21. {
  22. featureType: "water",
  23. elementType: "geometry.fill",
  24. stylers: {
  25. weight: "1",
  26. lightness: 1,
  27. saturation: 100,
  28. visibility: "on",
  29. },
  30. markersArr:[]
  31. },
  32. ];
  33. map.setMapStyle({
  34. styleJson: setstyle,
  35. });
  36. var data_info = [
  37. [
  38. 110.229321,
  39. 25.227083,
  40. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  41. ],
  42. [
  43. 104.979273,
  44. 25.096498,
  45. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  46. ],
  47. [
  48. 112.60061,
  49. 37.74101,
  50. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  51. ],
  52. [
  53. 109.944203,
  54. 40.764037,
  55. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  56. ],
  57. [
  58. 126.448706,
  59. 45.959158,
  60. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  61. ],
  62. [
  63. 96.448706,
  64. 30.959158,
  65. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  66. ],
  67. [
  68. 100.448706,
  69. 30.959158,
  70. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  71. ],
  72. [
  73. 100.548706,
  74. 30.959158,
  75. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  76. ],
  77. [
  78. 100.648706,
  79. 30.959158,
  80. "地址:广州省深圳市龙岗区<h4>标题格式啥的</h4>",
  81. ],
  82. ];
  83. var opts = {
  84. min_width: 250, // 信息窗口zuixiao宽度
  85. min_height: 80, // 信息窗口高度
  86. title: "详细信息", // 信息窗口标题
  87. enableMessage: true, //设置允许信息窗发送短息
  88. };
  89. var markersArr = [];
  90. for (var i = 0; i < data_info.length; i++) {
  91. var marker = new BMap.Marker(
  92. new BMap.Point(data_info[i][0], data_info[i][1])
  93. ); // 创建标注
  94. var content = data_info[i][2];
  95. map.addOverlay(marker); // 将标注添加到地图中
  96. addClickHandler(content, marker);
  97. markersArr.push(marker);
  98. }
  99. function addClickHandler(content, marker) {
  100. marker.addEventListener("click", function (e) {
  101. openInfo(content, e);
  102. });
  103. }
  104. function openInfo(content, e) {
  105. var p = e.target;
  106. var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
  107. var infoWindow = new BMap.InfoWindow(content, opts); // 创建信息窗口对象
  108. map.openInfoWindow(infoWindow, point); //开启信息窗口
  109. }
  110. var markerClusterer = new BMapLib.MarkerClusterer(map, {
  111. markers: markersArr,
  112. });
  113. },
  114. },
  115. mounted() {
  116. // this.init();
  117. },
  118. };
  119. </script>
  120. <style>
  121. #test {
  122. height: 98vh;
  123. width: 100%;
  124. background-color: rgb(192, 228, 127);
  125. }
  126. .bm-view {
  127. width: 100%;
  128. height: 100%;
  129. }
  130. </style>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/109726
推荐阅读
相关标签
  

闽ICP备14008679号