vue实现高德地图点聚合功能

效果截图展示: 

高德地图点聚合功能:

1、创建地图:new AMap.Map 

示例:this.map = new AMap.Map("container", {
                resizeEnable: true,//是否监控地图容器尺寸变化
                center: [105, 34],//初始化地图中心点
                zoom: 4 //初始化地图层级
        });

2、获取全部的点标记集合,并标记在地图上:that.map.add(that.markerss);

3、修改点聚合的图标样式

        var sts = [
                {
                  url: "",//点图标,建议使用服务器图标
                  size: new AMap.Size(32, 32),//图片大小
                  offset: new AMap.Pixel(-16, -16),//偏移量
                  textColor: "#fff", //字体颜色
                },
        ];

4、点聚合:MarkerClusterer =》海量点标记-覆盖物-教程-地图 JS API | 高德地图API (amap.com)

示例:new AMap.MarkerClusterer(that.map, that.markerss, {
                styles: sts,  //利用styles属性修改点聚合的图标样式
                gridSize: 60, //聚合计算时网格的像素大小,默认60

        });

 js:聚合功能代码如:

/* 创建地图 */
this.map = new AMap.Map("container", {
    resizeEnable: true,//是否监控地图容器尺寸变化
    center: [105, 34],//初始化地图中心点
    zoom: 4 //初始化地图层级
});

that.markerss = [];//所有的点标记

//地图上标记获取的所有点
that.map.add(that.markerss);

/* 聚合功能 */
var sts = [
    {
        url:
        "http://isdapp.shandong.gov.cn/ceshicomp/resources/lnzbslc/dbx5x.png",
        size: new AMap.Size(32, 32),
        offset: new AMap.Pixel(-16, -16),
        textColor: "#fff",
    },
];
new AMap.MarkerClusterer(that.map, that.markerss, {
    styles: sts,
    gridSize: 60,
});

 还可参考: 高德点聚合-点标记-示例 | 高德地图API 

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中使用高德地图聚合功能的基本步骤。根据实际需求,可以进一步添加交互、自定义样式等功能
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值