ArcGIS RunTime SDK for Android之Features and graphics
今天是我开通博客园的第一天,希望以后可以多在博客园上分享自己的学习心得,记录自己的学习历程。最近在学习ArcGIS RunTime SDK for Android,所以第一篇随笔就从这里来吧。官网的教程都是英文的,为了方便以后学习,我来翻译一下吧。
https://developers.arcgis.com/android/guide/features-and-graphics.htm
以下翻译的原文来自上述网址。
Features and Graphics
主题(何时使用Features,何时使用Graphics)
在Arcgis Runtime SDK 中,Graphic 是Feature的一种实现类型。Feature接口被Graphic类和GeodatabaseFeature类所继承。所有的Features,包括graphics,都有几何图形和文字属性表,所以当他们被展示在地图上的时候是不容易被互相区分的。那么这两者之间的区别是什麽呢?
最大的区别是Features是存储在数据集当中,而Graphic被存储在内存当中。Features是以要素图层的方式展现的,这个图层中的的要素类数据可能来源于在线服务或者是本地缓存。不论是何种情况,这些要素类总是以物理的形式被存储在硬盘的某处。而从另一方面来说,graphics总是被存储在客户机的内存当中,他们依赖于graphics图层,在程序运行期间它们必须被实例化。
小贴士:
虽然说feature这个术语也能用来表示graphic,但是在大多数情况下,它表示诸如geodatabase or geopackage features之类的东西,意思就是说feature就是指存在数据库中的要素。虽然"graphic feature"的称呼似乎更加准确,但是我们习惯称Graphics为"graphics"。
以下是关于几个术语的一张图,主要就是几个类继承了一个接口。

Features
1.有几何实体
2.有属性表
3.存储在硬盘中
4.通过要素层来展现
5.根据渲染器来进行符号化,渲染器通常由要素服务或者包含这些要素的要素层所定义的。
6.可以通过要素层来被选择
Graphics
1.有几何实体
2.属性被存储在键值对类型的集合当中(比如泛型为MAP的集合)
3.存储在内存当中
4.通过graphic层来展现,这个graphic层可以展现不同几何类型的图形
5.可以被单独符号化也可以根据渲染器进行符号化
6.可以被选择
7.可以定义一些display的属性例如可见度和绘制顺序
何时使用features
因为features被存储在数据库当中,它们可以向你的APP的所有用户展现一个数据集,包括用户会话期间。另一方面,graphics在客户机的APP运行期间被创建,它们只能被单独的用户所使用(除非你自定义了一个逻辑允许它们在会话期间使用,例如序列化)。features可以自定义地理实体类型和属性表模式,当然属性表和你想呈现的数据是保持一致的。
脑海中想一下上述所讲,大概feature平常最多的使用便是不同的用户之间共享数据了。
你可以把要素发布为要素服务。要素服务中的图层可以在地图中被展现,它们可以使用不同的方式来进行符号化,可以使用属性查询、空间查询,以及使用临时标准进行查询。 Runtime SDK 中丰富的编辑工具使得用户可以在APP中尽情使用编辑功能。
何时使用graphics
graphics是在程序运行期间被创建的,不必存储与物理机的硬盘当中。它们是展现当前应用中对用户特殊部分、特别想展示部分的理想类,当然用它们也能展现一些临时需要展示的东西。
graphics通常用来展示一下一些东西:
空间分析的结果,例如输入要素的缓冲区
对地图中被选中的部分进行高亮显示
用户交替在地图上进行绘画
对那些变化特别快的数据进行显示(例如不断变化的GPS点或者移动的物体)
在地图上显示下一个物件
说了这么多,其实理解这二者挺简单的,feature,一般是不动的,不变化的,你的是你的,也是大家的,谁都可以用,地图初始化的时候就加载进来了,而graphics,一般是变化的,你自己在地图上画出来的,你的就是你的,不能给别人,你的程序一旦退出结束之后,下次再打开,就没有了,你就得重新绘制。各人拙见,有翻译不到位的地方,还请大家多多指教。
出处:http://www.cnblogs.com/cnugis/p/5262769.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
ArcGIS RunTime SDK for Android之Features and graphics的更多相关文章
- ArcGIS Runtime SDK for Android 10.2.5新开发平台安装配置指南
ArcGIS Runtime SDK for Android 10.2.5版本在年前发布,其中一个重大的变化是:新版本使用了新的开发环境,在10.2.5版本中Esri使用了官方提供的新的Android ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境
1.前言 2015年1月15日,发布ArcGIS Runtime SDK for Android v10.2.5版本.从该版本开始默认支持android studio开发环境,示例代码的默认开发环境也 ...
- 安装 ArcGIS Runtime SDK for Android
ArcGIS for Android 开发:Android 平台搭建 - liyong20080101的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/liyong ...
- 点聚合功能---基于ARCGIS RUNTIME SDK FOR ANDROID
一直不更新博客的原因,如果一定要找一个,那就是忙,或者说懒癌犯了. 基于ArcGIS RunTime SDK for Android的点聚合功能,本来是我之前做过的一个系统里面的一个小部分,今天抽出一 ...
- ArcGIS Runtime SDK for Android 授权(arcgis android 去除水印)
ArcGIS Runtime SDK for Android 授权 ESRI中国北京 要下载和安装 ArcGIS Runtime SDK for Android,您需要注册开发者账户,进而便拥有了访问 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)(转)
1.前言 在上一篇的内容里我们介绍了基于Android Studio构建ArcGIS Runtime SDK for Android开发环境的基本流程,流程中我们采用的是基于Gradle的构建方式,在 ...
- 《ArcGIS Runtime SDK for Android开发笔记》
开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述
1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步
1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...
随机推荐
- 微信H5支付:网络环境未能通过安全验证,请稍后再试。解决办法(PHP版)
前(tu)言(cao) (这段前言纯属吐槽,着急解决问题的小伙伴,赶紧看正文吧) 最近做了支付宝和微信支付,先做的是PC端网站的支付,就是出个二维码,然后手机扫描支付,当然支付宝在扫码页面支持登录支付 ...
- LVDS/RGB转EDP稳定方案----NCS8801S
目前山寨平板市场已经进入白热化,同质化的竞争.厂商的利润被压得非常的薄.一味的价格战肯定会带来行业洗牌.差异化是许多厂商的选择,而其中一条重要的路子,就是采用高分辨率的down-grade屏.如苹果的 ...
- JavaScript在应用中的技巧(二)
==,===运算符和强制转换 先看个表达式: "1.0e0" == { valueOf: function() { return true; } }; 是的,这个结果可能有点出乎意 ...
- Java 定时器 Timer 的使用.
一.概念 定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和多线程技术还是有非常大的关联的.在JDK中Timer类主要负责计划任务的功能, ...
- 201521123083《Java程序设计》第8周学习总结
1. 本周学习总结 这周因为一些事情耽搁了,几乎没什么打java代码,这几天尽量补过来 2. 书面作业 1.List中指定元素的删除 1.1 实验总结 不贴大段代码了,简要总结一下.切割成数组,主要用 ...
- 关于在git添加远程地址的过程中遇到的问题
问题产生的过程 我根据菜鸟教程的步骤,做了如下操作: 1.打开安装文件夹中的git-bash程序 2.设置username和email 3.添加远程地址 结果如下: 之后通过百度知道要先git ini ...
- 201521123005 《java程序设计》 第七周学习总结
1. 本周学习总结 参考资料: XMind 2. 书面作业 Q1ArrayList代码分析 1.1 解释ArrayList的contains源代码 ArrayList的contains源代码 /** ...
- java第一次作业0
lsl321 java第一次作业 #1. 本章学习总结 你对于本章知识的学习总结 本章我们学习了各种java相关文件的使用,以及码云,博客,pat等程序辅助软件,这些对于我们专业的学习有非常大的帮助, ...
- 控制结构(8) 线性化(linearization)
// 上一篇:管道(pipeline) // 下一篇:程序计数器(PC) "编程语言不过是一个工具,什么语言都一样","编程语言能改变人的思维,不同的语言会带给你不同的思 ...
- 201521123100《Java程序设计》 第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. A: 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结 ...