赞
踩
在GEE中导出数据有一种方式是直接导出地图到Google Cloud Storage中,也就是Export.map.toCloudStorage(xxx),这种方式是将我们计算生成影像导出成为静态瓦片的格式存放在Google Cloud Storage中。我们可以在其他的前端程序比如OpenLayer、Mapbox GL JS等中直接使用,但是在GEE中之前是无法直接使用的。为了解决这个问题GEE推出了自己直接在编辑器中调用静态瓦片的方法,也就是最新的功能ui.Map.CloudStorageLayer(xxx)。
(1)构造方法
构造方法很简单,也就是设置一下Google Cloud Storage的bucket路径、缩放级别、后缀等等参数然后在GEE中直接显示就可以。详细参数说明:
bucket
必选项,存放瓦片资源的bucket名称
path
必选项,瓦片存在在bucket中的相对路径
maxZoom
必选项,缩放最大级别,也就是瓦片最大缩放级别
suffix
可选项,瓦片文件的后缀名称(常用的是.png或者.jpeg,需要看我们存放的类别)
name
可选项,在GEE地图区域显示图层的名称,默认是空字符串
shown
可选项,是否显示此图层,默认是true
opacity
可选项,透明度,值是0-1之间的数字,默认是1
(2)具体API方法也非常简单就是设置属性方法setXXX(xxx)和获取属性方法getXXX(xxx),如下图:
具体每一个方法的功能可以和构造方法中参数对应,set是设置方法,get是获取属性值方法,这里就不在一一介绍。
(3)具体例子
这里使用的是官方提供的一个资源(自己没有开通相关的Google Cloud Storage,只能使用官方资源)。
var layer = ui.Map.CloudStorageLayer({ bucket: 'earthenginepartners-hansen', path: 'tiles/gfc_v1.4/loss_year', maxZoom: 12, name: "hansen", suffix: '.png' }); Map.add(layer); // get properties print("getBucket", layer.getBucket()); print("getMaxZoom", layer.getMaxZoom()); print("getName", layer.getName()); print("getOpacity", layer.getOpacity()); print("getSuffix", layer.getSuffix()); print("getPath", layer.getPath()); print("getMaxZoom", layer.getMaxZoom()); print("getShown", layer.getShown()); // set new properties var layer1 = ui.Map.CloudStorageLayer({ bucket: 'earthenginepartners-hansen', path: 'tiles/gfc_v1.4/loss_year', maxZoom: 12, name: "hansen", suffix: '.png' }); layer1 = layer1.setName("hansen1"); layer1 = layer1.setOpacity(0.5); Map.add(layer1);
代码分析:
第一个layer是直接使用构造方法做的一个图层,最大缩放级别是12,图层在GEE中显示的名称是“hansen”,后缀是“.png”等;
第二个layer1构造方法和layer一致,然后后面是通过set方法重新修改了图层名称以及透明度;
第一次运行代码会出现如下内容,我们需要确认给GEE权限访问这个bucket,也就是点击按钮同意访问bucket,否则我们是无法显示我们想要的结果的。
显示结果:
输出的属性
图层显示的名称
地图显示
来源请引用:地理遥感生态网科学数据注册与出版系统.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。