GEE学习笔记 八十九:在自己的APP中使用绘制矢量(中)

news2024/9/30 9:37:19

 这一篇先讲一下ui.Map.GeometryLayer(...),也就是生成显示的绘制矢量图形图层,具体来讲就是地图上左上角绘制的图形后添加的图层。

1、什么是GeometryLayer?

(1)直接在地图上加载定义的图层

  1. //1. add normal layer

  2. var geometry = ee.Geometry.Point([50, 50]);

  3. Map.centerObject(geometry, 11);

  4. Map.addLayer(geometry, {color: "red"}, "geometry");

运行结果:

代码分析:

    上面这种是我们常用的加载图层的方法,最终效果就是添加了一个Layer图层,通过Layers选项可以控制。这一节中讲的GeometryLayer则不同,可以参考如下的示例。

(2)直接绘制显示GeometryLayer图层

    这里我先不使用API定义的方法来添加图层,而是直接使用GEE自带的工具来添加这个图层。实现的操作步骤就是选择“点”那个图标,然后在地图上点击一点,最终效果如下图。

代码编辑器上会出现如下内容

    这个geometry就是一个GeometryLayer,在之前我们只能通过GEE这个自带的工具来实现。在2020年年初GEE官方增加了这个图层的API,这样我们在自己的程序中就可以方便的控制调用这些绘制的API。

2、GeometryLayer的API

    主要的方法包括:初始化方法、设置是否显示、获取各种属性等,下面我会依次讲解每一个方法。

3、方法具体详解

(1)初始化方法

初始化方法中主要参数包括:

  • geometries:矢量图形geometry的列表,可选项;

  • name:图层的名称,可选项;

  • color:图层填充颜色,可选项;

  • shown:图层是否显示,可选项;

  • locked:图层是否锁定,也就是是否可以进行编辑,可选项;

例子:

  1. //2. add geometry layer

  2. var geometry = ee.Geometry.Point([50, 50]);

  3. Map.centerObject(geometry, 11);

  4. var layer = ui.Map.GeometryLayer({

  5.   geometries: [geometry],

  6.   name: "p",

  7.   color: "red",

  8.   shown: true,

  9.   locked: true

  10. });

  11. var drawingTools = Map.drawingTools();

  12. drawingTools.setLinked(false);

  13. drawingTools.layers().add(layer);

运行效果:

    上面初始化方法首先是加载我们自定义的Geometry(一个点),设置这个图层的名称为“p”,颜色为红色,然后图层要显示(前面对勾选择上)同时是图层是锁定不可编辑状态,具体效果如下图。

(2)显示各个属性方法也就是各种get方法

例子:

  1. //3. show all property

  2. var geometry = ee.Geometry.Point([50, 50]);

  3. Map.centerObject(geometry, 11);

  4. var layer = ui.Map.GeometryLayer({

  5.   geometries: [geometry],

  6.   name: "p",

  7.   color: "red",

  8.   shown: true,

  9.   locked: true

  10. });

  11. var drawingTools = Map.drawingTools();

  12. drawingTools.setLinked(false);

  13. drawingTools.layers().add(layer);

  14. //颜色

  15. print(layer.getColor());

  16. //图层中对象

  17. print(layer.getEeObject());

  18. //是否锁定

  19. print(layer.getLocked());

  20. //图层名称

  21. print(layer.getName());

  22. //图层是否显示

  23. print(layer.getShown());

运行结果:

(3)打开配置对话框

例子:

  1. // 4. open config dialog

  2. var geometry = ee.Geometry.Point([50, 50]);

  3. Map.centerObject(geometry, 11);

  4. var layer = ui.Map.GeometryLayer({

  5.   geometries: [geometry],

  6.   name: "p",

  7.   color: "red",

  8.   shown: true,

  9.   locked: true

  10. });

  11. var drawingTools = Map.drawingTools();

  12. drawingTools.setLinked(false);

  13. drawingTools.layers().add(layer);

  14. //打开配置对话框

  15. layer.openConfigurationDialog();

运行结果:

修改名字和颜色后点击确定可以看到修改后的结果如下:

(4)通过set方法设置各种属性

例子:

  1. // 5. set properties

  2. var geometry = ee.Geometry.Point([50, 50]);

  3. Map.centerObject(geometry, 11);

  4. var layer = ui.Map.GeometryLayer();

  5. layer = layer.fromGeometry(geometry)

  6.              .setColor("00ff00")

  7.              .setLocked(true)

  8.              .setName("p2")

  9.              .setShown(true);

  10. var drawingTools = Map.drawingTools();

  11. drawingTools.setLinked(false);

  12. drawingTools.layers().add(layer);

运行结果:

来源请引用:地理遥感生态网科学数据注册与出版系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【二】【整合springSecurity】

1、创建数据库 注意:mysql默认字符集为utf8,默认排序规则为utf8_general_ci。一般我们也会选择字符集为utf-8 MySQL在5.5.3之后增加了这个utf8mb4的编码,utf8mb4完全向下兼容utf8,为了节省空间,一般情况下使用utf8也就…

中国国家级地面气象站基本气象要素日值数据集(V3.0)

数据集摘要 数据集包含了中国基本气象站、基准气候站、一般气象站在内的主要2474个站点1951年1月以来本站气压、气温、降水量、蒸发量、相对湿度、风向风速、日照时数和0cm地温要素的日值数据。数据量为21.3GB。 (1)SURF_CLI_CHN_MUL_DAY-TEM-12001-201501.TXT 气温数据TEM, 包…

央行数据-一款查逆回购 LPR 货币供应量 资产负债表 Shibor 数据的专业工具

自己开发的APP, App Store搜索"央行数据" 即可下载欢迎大家下载,给修改意见逆回购、正回购、MLF、票据,俗称央行发钱房贷基准利率多少? M2/M1/M0, 资产负债表,Shibor 了解下这款APP是经济,投资理财,股市,房价分析参考利器适用于关注经济、货币政策的用户…

第五章.与学习相关技巧—权重初始值(随机初始值,Xavier初始值,He初始值)

第五章.与学习相关技巧 5.2 权重初始值 本节将介绍权重初始值的推荐值,并通过实验确认神经网络的学习是否会快速进行。 1.权值衰减 权值衰减就是一种以减少权重参数的值为目的进行学习的方法,通过减少权重参数值来抑制过拟合的情况发生。 2.权重初始值不…

表现良好的最长时段[前缀和思想子数组]

前缀和与最长子数组前言一、表现良好的最长时间段二、前缀和思想&子数组1、前缀和&map2、前缀和&单调栈总结参考文献前言 对于子数组/子串问题,紧密连续前缀和/滑动窗口/单调栈;挖掘内在规律,可以简化代码,降低时空复…

Python多进程同步——文件锁

多个进程共享同一份资源(共享内存、文件等)时,会涉及到资源竞争问题。为了解决这种问题,一般采取的措施是进程在访问资源前加锁保护,避免多个进程同时读写。本文介绍的Python文件锁可以用来解决多进程的同步问题。 目录…

天荒地老修仙功-第六部第二篇:Spring Cloud Eureka自我保护机制

Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 会将这些实例保护起来,让这些实例不会过期,但是在保护期内如果服务刚好这个服务提供者非正常下线了,此时服务消…

[SCTF2019]babyre 题解

对未来的真正慷慨,是把一切献给现在。 ——加缪 目录 1.查壳 2.处理花指令,找到main函数 这一操作过程可以参考下面的视频: 3.静态分析第一部分,psword1 4.静态分析第二部分,psword2 5.静态分析第五部分,psword3 6.根据ps…

国产Linux操作系统读写RFID、NFC、IC卡示例源码

Windows系统应该是我们接触最多、最为熟悉的电脑端操作系统。Windows操作系统只能安装在x86指令集的CPU电脑中,x64是x86的升级版,Intel、Amd是x86指令集CPU最大的2个生产商。Windows系统下,外设接口驱动一般都封装成DLL动态库内,通…

基于springboot开发众筹平台前后台管理系统【完整源码+数据库+运行指导】

一、项目简介 本项目是一套基于springboot开发众筹平台前后台管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试&#…

2023csoj寒假训练10

csoj寒假训练10 A 并查集 两个黑球之间距离不够这个白球通过的话,视为一个集合 考虑怎样维护这样两两之间的关系,我们使用并查集 同时黑球与直线的关系也要做一次维护 最后可以直接判断是否上下两条直线是否在一个集合里面 如果在一个集合里面说明…

Spring容器演示——采用Spring配置文件管理Bean

一、创建Maven项目 创建Maven项目 - SpringDemo,设置项目位置以及组ID 修改项目的Maven配置 二、添加Spring依赖 在Maven仓库里查找Spring框架(https://mvnrepository.com) 查看Spring Core 选择版本 - 5.3.25 添加到pom.xml文件的元…

盘点程序员都不一定知道的小众网站!建议收藏,java编程必备!

俗话说的好,有一个趁手的工具解决了80%的疑虑。作为智慧物种的新新人类,手上掌握一两个不为人知的好用网站已经是件稀疏平常的事情。 今天我们就一起来看看,有哪些小众网站是程序员必备的! 业内人士都知道,一直劈里啪…

windows下面安装Python和pip终极教程

Python的语言风格很nice,但是这门语言对于windows并不算很友好,因为如果是初学者在windows环境下安装,简直是折磨人,会遇到各种蛋疼的情况。本文希望提供傻瓜式的教程,能够令读者成功安装Python和pip。 第一步&#xf…

什么是push通知栏消息?

我是3y,一年CRUD经验用十年的markdown程序员👨🏻‍💻常年被誉为职业八股文选手 今天继续更新Austin,给Austin新增一个发送渠道(PUSH通知栏推送) Push通知栏消息是非常常见的,几乎每…

【elementUI】自定义封装el-upload上传内容

文章目录为实现如图所示功能&#xff0c;点击第一步弹出模态框&#xff0c;第二部将所有文件导入&#xff0c;第三步点击确定的时候上传到后台接口&#xff0c;封装一个组件 1.搭建template <div style"display: inline-block; margin-left: 10px;"><el-bu…

leaflet 设置多个marker,导出为一个geojson文件(066)

第066个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用L.marker设置多个markers, 通过数据重组,导出为geojson文件。 这里面 ayer instanceof L.Marker 是一个很重要的判断条件,可以灵活地去运用。 直接复制下面的 vue+openlayers源代码,操作2分钟即可…

Ubuntu20.04LTS设置DNS解析(解决系统重启DNS不生效的问题)

文章目录背景介绍解决方案背景介绍 近期买了一台戴尔的工作站&#xff0c;搭建的是Ubuntu20.04系统&#xff0c;使用时发现Ubuntu20.04系统上网经常卡顿&#xff08;上网方式是有线网&#xff0c;使用的千兆网口和千兆网线&#xff09;。 使用网速测试工具speedtest-cli进行了…

redis五大数据结构

目录1.1 Redis数据结构-动态字符串1.2 Redis数据结构-intset1.3 Redis数据结构-Dict1.4 Redis数据结构-ZipList1.5 Redis数据结构-ZipList的连锁更新问题1.6 Redis数据结构-QuickList1.7 Redis数据结构-SkipList1.8 Redis数据结构-RedisObject2.0 Redis数据结构-String2.1 Redi…

前端性能优化的整理笔记

&#x1f6b4; 前言大厂面试题分享 面试题库后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库&#x1f3c4;利用碎片化的时间&#xff0c;系统的整理&#xff0c;性能优化的知识点。&#x1f3af; 前端性能优化&#xf…