今天是我开通博客园的第一天,希望以后可以多在博客园上分享自己的学习心得,记录自己的学习历程。最近在学习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的更多相关文章

  1. ArcGIS Runtime SDK for Android 10.2.5新开发平台安装配置指南

    ArcGIS Runtime SDK for Android 10.2.5版本在年前发布,其中一个重大的变化是:新版本使用了新的开发环境,在10.2.5版本中Esri使用了官方提供的新的Android ...

  2. 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境

    1.前言 2015年1月15日,发布ArcGIS Runtime SDK for Android v10.2.5版本.从该版本开始默认支持android studio开发环境,示例代码的默认开发环境也 ...

  3. 安装 ArcGIS Runtime SDK for Android

    ArcGIS for Android 开发:Android 平台搭建 - liyong20080101的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/liyong ...

  4. 点聚合功能---基于ARCGIS RUNTIME SDK FOR ANDROID

    一直不更新博客的原因,如果一定要找一个,那就是忙,或者说懒癌犯了. 基于ArcGIS RunTime SDK for Android的点聚合功能,本来是我之前做过的一个系统里面的一个小部分,今天抽出一 ...

  5. ArcGIS Runtime SDK for Android 授权(arcgis android 去除水印)

    ArcGIS Runtime SDK for Android 授权 ESRI中国北京 要下载和安装 ArcGIS Runtime SDK for Android,您需要注册开发者账户,进而便拥有了访问 ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)(转)

    1.前言 在上一篇的内容里我们介绍了基于Android Studio构建ArcGIS Runtime SDK for Android开发环境的基本流程,流程中我们采用的是基于Gradle的构建方式,在 ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...

  8. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  9. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

随机推荐

  1. 微信中通过页面(H5)直接打开本地app的解决方案

    简述 微信中通过页面直接打开app分为安卓版和IOS版,两个的实现方式是完全不同的. 安卓版实现:使用腾讯的应用宝,只要配置了“微下载”之后,打开链接腾讯会帮你判断本地是否已经安装了app,如果本地安 ...

  2. HTML转义字符串

    HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,> ...

  3. JAVA HashMap的实现原理

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt359 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存 ...

  4. 第1阶段——uboot分析之启动函数bootm命令 (9)

    本节主要学习: 详细分析UBOOT中"bootcmd=nand read.jffs2 0x30007FC0 kernel;bootm 0x30007FC0"中怎么实现bootm命令 ...

  5. 【Socket编程】Java通信是这样炼成的

    简介 网络无处不在,移动互联时代也早已到来,单机版程序慢慢的已没有生命力,所有的程序都要能够访问网络,比如 QQ 网络聊天程序.迅雷下载程序等,这些程序都要同网络打交道,本次将与各位小伙伴们分享的就是 ...

  6. 【2017集美大学1412软工实践_助教博客】团队作业3——需求改进&系统设计 成绩公示

    第三次团队作业成绩公布 题目 团队作业3: 需求改进&系统设计 团队成绩 成绩公示如下: 缩写 TD BZ GJ CJ SI WBS GS JG DB SS SJ CS DC Total 分值 ...

  7. Swing-JComboBox用法-入门

    JComboBox是Swing中的下拉菜单控件.它永远只能选中一个项目,然而比单选按钮节省空间.如果使用setEditable设置为true则内部选项的文本可以编辑,因此这种组件被称为组合框.注意,对 ...

  8. 【Alpha】Daily Scrum Meeting——Day4

    站立式会议照片 1.本次会议为第四次Meeting会议: 2.本次会议在大课间09:40,在图书馆一楼楼道召开,本次会议为30分钟讨论昨天的任务完成情况以及接下来的任务安排. 燃尽图 每个人的工作分配 ...

  9. Java-高效地使用Exception-实践

    注:本文翻译自Exceptional practices,共分为3节.该文章从实践的角度非常透彻地解释了为什么要处理异常,以及如何处理异常.这些都是那些只会介绍trycatchfinally语法的教材 ...

  10. 201521123050 《Java程序设计》第12周学习总结

    1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1 ...