本文主要介绍一下在geemap中maker_cluster的使用~
首先,先介绍一下什么是marker:
① 点标记 Marker:在地图上指定的⼀个坐标上打上⼀个Marker(如显⽰⼀个⽔滴图形,或者⾃定义的其他任何图形式),⼀个地图上可以
定义很多个Markers。
② 优点:可清晰的知道每个点的位置,数据和点之间可以联动展示;
③ 缺点:在地图缩放时,如果⼏个点的位置接近,则会导致点标记Marker重叠,目视较难识别重叠了⼏个坐标点,或者分别是哪⼏个点,给地图信息展示带来困难。
基于此,MakerCluster应运而生:
① 点聚合MarkerCluste:在地图缩小到⼀定⽐例时,预定距离内的点会⾃动合并成⼀个点显示【上图中有3数字的点就是⼀个聚合点,说明有3个坐标合并的,并通过地图提供的⽅法可以获取到这个3个坐标的清单】。点聚合本质上是若⼲个点的集合,可以随时往其中增、减点。
② 优点:在地图上可以清楚的展示哪些是独立点,哪些是聚合点,聚合了多少点,可视化效果更强,通俗易懂;
③ 缺点:无法针对其中特定某个点进行编辑和处理。
① 导入用到的包,并加载地图地图,代码如下(示例):
# class6 maker_cluster 案例展示
import geemap
import json
import os
import requests
from geemap import geojson_to_ee, ee_to_geojson
from ipyleaflet import GeoJSON, Marker, MarkerCluster
Map = geemap.Map()
Map
① 读入json中已经编译好的样本点和矢量范围信息,详细代码如下:
file_path = os.path.abspath('../us-cities.json')
#可以读取本地的json数据,如若本地没有,导入github中的数据“https://github.com/giswqs/geemap/raw/master/examples/data/us-cities.json”
if not os.path.exists(file_path):
url = 'https://github.com/giswqs/geemap/raw/master/examples/data/us-cities.json'
# points样本点和矢量范围信息
r = requests.get(url)
with open(file_path, mode = 'w') as f:
f.write(r.content.decode("utf-8"))
with open(file_path) as f:
json_data = json.load(f)
该处导入GitHub中的URL 数据,为已经编辑好的样本点和矢量范围信息,如下图所示:
① 在地图中利用maker_cluster工具展示研究区的聚合点,详细代码如下图所示:
maker_cluster = MarkerCluster(
markers=[
Marker(location=feature['geometry']['coordinates'][::-1])
for feature in json_data['features']
],
name='Markers',
)
Map.add_layer(maker_cluster)
#展示聚合点(maker_cluster)标记,统计在一定范围内,点的总数,聚合为一个表示数量的标记
统计在不同地图缩放尺度下,各研究区矢量范围内标记点的数量。
② 进一步展示聚合点对应的所有的标记点位置,代码如下。
ee_fc = geojson_to_ee(json_data)
Map.addLayer(ee_fc, {}, "US Cities EE") #展示所有点的位置
以上就是今天要讲的内容,本文仅仅简单介绍了在geemap中maker_cluster的使用~,后续会继续更新使用geemap的具体实例。