谷歌地图点聚合功能的实现,及参数设置

1.使用 NPM 安装最新版本的 @googlemaps/markerclusterer 库。

npm install @googlemaps/markerclusterer

2.在应用中添加标记聚类器

import { MarkerClusterer } from "@googlemaps/markerclusterer";

const markerCluster = new MarkerClusterer({ map, markers });

3.使用情况

import { MarkerClusterer,defaultOnClusterClickHandler } from "@googlemaps/markerclusterer";

let markerClusterer = null;
function initMap() {

//初始化地图
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 3,
    center: { lat: -28.024, lng: 140.887 },
  });
 
  const labels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

// 创建一个设置markers方法
  const setMarkers = (setmarkers) => {return setmarkers.map((location, i) => {
    return new google.maps.Marker({
      position: location,
      label: labels[i % labels.length],
    });
  })};
  // 创建渲染器,可修改文字样式及显示集群的图片

const renderer = {

render: ({ count, position }) =>

new google.maps.Marker({

label: { text: String(count), color: "white", fontSize: "16px"},

position,

icon: {

//设置集群的图片

url: this.renderImg,

scaledSize: new google.maps.Size(65, 32),

},

// 设置zIndex

zIndex: Number(google.maps.Marker.MAX_ZINDEX) + count,

}),

};

// 创建一个聚合方法
  const setClusters = (setclusters) => {

return new MarkerClusterer({markers:setclusters,map:this.nodeMap,renderer,onClusterClick:onClusterClickHandler})

// 点击后集群底下的Markers
clusterMarkers = []

// 点击聚合的点,获取集群底下的Markers

const onClusterClickHandler = (event,cluster,map)=>{

clusterMarkers = cluster.markers.map((item, index, arr) => {

return item

});

defaultOnClusterClickHandler(event,cluster,map)

}

const markers = setMarkers(locations);
  
  markerClusterer = setClusters(markers);

}

const locations = [

  { lat: -31.56391, lng: 147.154312 },{ lat: -33.718234, lng: 150.363181 },{ lat: -33.727111, lng: 150.371124 },{ lat: -33.848588, lng: 151.209834 },{ lat: -33.851702, lng: 151.216968 },{ lat: -34.671264, lng: 150.863657 },{ lat: -35.304724, lng: 148.662905 },{ lat: -36.817685, lng: 175.699196 },{ lat: -36.828611, lng: 175.790222 },{ lat: -37.75, lng: 145.116667 },{ lat: -37.759859, lng: 145.128708 },{ lat: -37.765015, lng: 145.133858 },{ lat: -37.770104, lng: 145.143299 },{ lat: -37.7737, lng: 145.145187 },{ lat: -37.774785, lng: 145.137978 },{ lat: -37.819616, lng: 144.968119 },{ lat: -38.330766, lng: 144.695692 },{ lat: -39.927193, lng: 175.053218 },{ lat: -41.330162, lng: 174.865694 },{ lat: -42.734358, lng: 147.439506 },{ lat: -42.734358, lng: 147.501315 },{ lat: -42.735258, lng: 147.438 },{ lat: -43.999792, lng: 170.463352 },
];

Google Map MarkerCluster 点聚合使用简介相关推荐

  1. google map for ios聚合

    google map for ios聚合 必须番羽墙才可以用google map,不管是android手机还是ios,都需要番羽墙才可用....并且android手机还需要装google服务框架 io ...

  2. 在google map上显示Instagram的照片

    之前Instagram有一个在地图上显示照片的功能,可惜后来这个功能去掉了.INS的官方说法是因为这个功能的使用率很低,因此最后舍弃了这个功能.其实我觉得这个功能还蛮好的,看到自己的照片遍布全世界很有 ...

  3. 开发基于 Google Map 的 Android 应用

    开发基于 Google Map 的 Android 应用 张 谦, 软件工程师, IBM 吴 校军, 高级软件工程师, IBM 苏 琳, 软件工程师, IBM 简介: 随着移动互联网应用的迅速发展,利 ...

  4. google map

    Google 地图 API 概念 http://code.google.com/intl/zh-CN/apis/maps/documentation/index.html#Localization G ...

  5. Google Map开发之实战

    视频课:[免费]跨平台APP JQuery Mobile开发-1-初探移动开发-张晨光的在线视频教程-CSDN程序员研修院 学习内容 Google Map服务简介 获取Google Map API K ...

  6. google map api v3 的marker使用label的方法(markerwithlabel的使用)

    简介 公司有个需求就是需要实现在marker下面显示标题的名称,百度地图api里面这些东西都有,但是google查了一遍api,却没有找到,通过搜索发现了markerwithlabel这样一个组件,能 ...

  7. 在网页中轻松插入google map地图

    Google Map 是什么?这是Google公司(谷歌)推出的一项地图服务,我私下把它归为一种GIS服务.它不仅仅是一幅简单的电子地图图片,而是一种互动的.内涵丰富的GIS集成.当你打开 http: ...

  8. Android特色开发之Google MAP

    本文节选于机械工业出版社推出的<Android应用开发揭秘>一书,作者为杨丰盛.本书内容全面,详细讲解了Android框架.Android组件.用户界面开发.游戏开发.数据存储.多媒体开发 ...

  9. 关于Google Map API V2 版本的定位与导航

    近来,在关注安卓手机上的GoogleMap应用的开发,但是目前官方API版本网页版已经升级到V3版,而对于Android的支持也已经升级到V2版本,虽然Google说继续对V1版提供服务,但是不再提供 ...

  10. 分享两篇Google Map API的介绍

    这两篇文章也不知道我是什么时候下载下来的,一直丢在桌面上没有看,但终于在年后无聊就看了一下,结果让我心潮澎湃,一起哈成了"都让Google做了我们还做什么?(WebMap方向)"一 ...

最新文章

  1. 燕大计算机专业档次,河北省高校排名:分为四个档次,燕大在第二档,第三档有八所高校...
  2. C# WPF:把文件给我拖进来!!!
  3. ArcGIS实验教程——实验三十八:基于ArcGIS的等高线、山体阴影、山顶点提取案例教程
  4. 如何用纯 CSS 创作一个冒着热气的咖啡杯
  5. linux 安装 maven 、解决:bash: mvn: command not found
  6. azure api 管理_通过成本管理跟踪Azure成本
  7. 文件怎么更新_iOS屏蔽更新描述文件以及超级详细安装方法分享
  8. aceadmin1.4框架treeview多选改造
  9. python list倒序_Python 面试:这9个问题你一定要掌握!
  10. 安装原生Win7-SP1系统
  11. 《SegStereo: Exploiting Semantic Information for Disparity Estimation》
  12. TokenGazer评级丨TRON:BTT众筹谋求熊市破局,生态繁荣但数据受到质疑
  13. 赵小楼《天道》《遥远的救世主》深度解析(135)观念,传统观念,传统观念有没有用取决于观念,而不在传统
  14. 分别实现网页播放mp3、flv、wmv、Flash,代码兼容FireFox
  15. 常用aso优化技巧,分享ASO关键词优化的几个小技巧
  16. IO Workload Characterization Revisited: A Data-Mining Approach
  17. LLC开关电源详细工作过程
  18. 数字信号处理基础----FM的调制与解调(1)
  19. 如何使用QQ号来注册腾讯云新用户账号并完成实名认证?
  20. 微信 和 支付宝 公众服务号开发者文档

热门文章

  1. vc中cout如何解除fixed控制_C++ fixed用法详解
  2. 读书笔记:Google软件测试之道
  3. 第39级台阶--递归
  4. 蓝桥杯:第39级台阶
  5. 构建更安全、更智能、更健康的数字化世界——中新赛克2021全国渠道大会成功举办
  6. 上班第一天(3)--一个程序员的成长史(12)
  7. supervisor 管理后台进程
  8. html编辑器怎么设置为excel,excel2013宏编辑器的设置方法教程
  9. VS2017下搭建OPEN CASCADE
  10. 有哪些基于苹果HomeKit的全屋智能家居组合