今天是我开通博客园的第一天,希望以后可以多在博客园上分享自己的学习心得,记录自己的学习历程。最近在学习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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。