Openlayers - 点聚集,全球地震点聚集为例

本文通过GitHub上的openlayers-examples展示了如何利用OpenLayers的Cluster功能动态聚合全球地震数据,实现实时的点聚集可视化。文章详细介绍了数据来源、实现方法,包括设置数据、样式以及Cluster原理,帮助理解点聚集的展示效果及其在地理数据分析中的应用。
摘要由CSDN通过智能技术生成

GitHub地址:https://github.com/QingyaFan/openlayers-examples

1. 描述

点聚集指在某个缩放级别下,将临近(一般用像素距离衡量)的点聚合为一个点要素显示,这在房屋中介的等的地图找房功能中很常见,如下图。但是这样的例子并不恰当,地图找房里的聚集确切的说并不是点聚集,他们是在每一级别显示某一级区块,然后在区块多边形的质心或者什么地方设置一个点要素,用预先统计好的数量给这个点要素设置样式而已。

点聚集示例01.png)

而我们要做的是动态聚类,在每一个地图缩放级别,动态扫描每个要素周围的要素,生成聚集的点要素。这里,我们利用USGS的地震数据,结合openlayers尝试实现全球地震点聚集可视化的功能。最终结果如图:

点聚集示例

2. 实现

  • 数据

地理数据可视化,我们必须要找到合适的数据,要求呈现点状分布,且有一定的聚集分布现象,我在USGS官网上找到了他们对于地震统计的数据,geojson格式,对外开放,且地震分布肯定有聚集现象,地震多发带如四大地震带必定地震较多。

https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson

  • 可视化

openlayers提供了一个点聚集图层数据源类型ol.source.Cluster,结合矢量图层即可构造一个简单的聚集图层。点聚集图层数据源的distance类型控制聚集的阈值,当两点间像素距离小于20时便聚集为一个点。

// 聚类图层
earthquakeCluster = new ol.layer.Vector({
    source: new ol.source.Cluster({
        distance: 80,
        source: new ol.source.Vector({
            format: new ol.format.GeoJSON(),
            url: 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson'
        })
    })
});

我们还没有给聚类要素设置要素,相信我,使用默认的样式很难看,且找不到聚类的痕迹,我就不贴了。接下来我们给聚类图层设置样式,要求是每个聚类要素大小要根据该

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值