vue谷歌地图聚合功能

五申请秘钥在 入口文件里面引入 写入key值
<script src="http://maps.google.cn/maps/api/js?key="></script>

写入一个存放地图的div标签
<div id="googleMap" style="height: 100%;"></div>
五在vue模板里面引入自定义的聚合图标并且挂在在vue实例是哪个
  import mar0 from "./img/img/0.png";
  import mar1 from "./img/img/1.png";
  import mar2 from "./img/img/2.png";
  import mar3 from "./img/img/3.png";
  import mar4 from "./img/img/4.png";
  export default {
    data() {
      return {
        map:null,
        infowindow:null,
        clickTimer: null,
        imgUrl22 :require("../../../../static/img/marker-1.png"),
        imgUrl11 :require("../../../../static/img/marker0.png"),
        markerStyles:[
          {
            url:mar0,
            width:53,
            height:53,
          },
          {
            url:mar1,
            width:56,
            height:56,
          },
          {
            url:mar2,
            width:66,
            height:66,
          },
          {
            url:mar3,
            width:78,
            height:78,
          },
          {
            url:mar4,
            width:90,
            height:90,
          },
        ],
        markerCluster:null
      };
    },

初始化地图
   mounted() {
      this.mapBuild(); //初始化实例之后调用
      this.setPoint(this.pointsguge); //地图数据
    },
    methods: {
      mapBuild() {
        let mapProp = {
          center:new google.maps.LatLng(39.839472,116.288262),
          zoom:7,//缩放级数
          mapTypeId:google.maps.MapTypeId.ROADMAP
        };
        this.map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
        //自定义的聚合图标
        this.markerCluster = new MarkerClusterer(this.map, [],{imagePath:this.markerStyles});
      },
      removePoints(){//清楚坐标点
        this.markerCluster.clearMarkers()
      },
      setPoint(pointsguge){
         console.error(pointsguge)
        this.removePoints();
        this.latlngbounds = new google.maps.LatLngBounds();
        let markers =[];
        let marker;
        let position;
        for(let node of pointsguge){
          position = new google.maps.LatLng(node.lat, node.lon);
          let icon = node.noticeLevel == '-1'  ? this.imgUrl22 : this.imgUrl11;
          marker =new google.maps.Marker({
            position: position,
            icon: icon
          });
          this.latlngbounds.extend(position);
          markers.push(marker)
          this.clickInfo(marker,node,this)
        }
        this.markerCluster.addMarkers(markers,false)
        if(!this.latlngbounds.isEmpty()){
          this.map.setCenter( this.latlngbounds.getCenter());
        }
       // this.map.fitBounds( this.latlngbounds);
      },
      clickInfo(marker,node,that){
        google.maps.event.addListener(marker, 'click', function() {
         //单击事件
        });
        google.maps.event.addListener(marker, 'dblclick', function() {
         //双击事件
        });
      },
  
    },
五级标题
五级标题
五级标题
五级标题
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中使用高德地图的聚合功能,首先需要安装并引入高德地图的JavaScript API。 1. 在`index.html`文件中,添加如下代码引入高德地图的API: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=your_api_key"></script> ``` 其中,`your_api_key`是你在高德地图开放平台申请的API Key。 2. 在Vue组件中,首先在`mounted`生命周期钩子中初始化地图,并创建一个地图实例: ```javascript mounted() { // 初始化地图 AMap.initAMapApiLoader({ key: 'your_api_key', plugin: ['AMap.MarkerClusterer'] }); // 创建地图实例 this.map = new AMap.Map('mapContainer', { center: [lng, lat], // 地图中心点经纬度 zoom: 13 // 地图缩放级别 }); } ``` 3. 在数据加载完成后,将需要聚合的点数据添加到地图上: ```javascript addMarkers() { this.points.forEach(point => { let marker = new AMap.Marker({ position: [point.lng, point.lat] // 标记点位置经纬度 }); this.map.add(marker); }); } ``` 其中,`this.points`是包含标记点经纬度的数组。 4. 最后,启用聚合功能,将添加的标记点进行聚合: ```javascript clusterMarkers() { let cluster = new AMap.MarkerClusterer(this.map, this.map.getAllOverlays(), { gridSize: 80, // 聚合点的像素大小 renderCluserMarker(cluster) { let count = cluster.getMarkers().length; let div = document.createElement('div'); div.className = 'cluster-marker'; div.innerHTML = count; return new AMap.Icon({ size: new AMap.Size(40, 40), image: 'cluster.png', imageSize: new AMap.Size(40, 40), // 自定义聚合点的样式和内容 div: div }); } }); } ``` 通过`AMap.MarkerClusterer`类创建一个聚合器对象,将地图实例、添加的标记点和聚合选项传入。 以上就是在Vue中使用高德地图聚合功能的基本步骤。根据实际需求,可以进一步添加交互、自定义样式等功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值