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

    一.分布式获取不到结果需要改配置文件   在jmeter.properties文件找到mode=Standard去掉# 二.有一个请求要循环查询进度,当进度为100为,跳出循环.这个要怎么操作? ${ ...

  2. 银河麒麟操作系统U盘手动挂载,出现乱码

    使用银河麒麟操作系统,U盘手动挂载,U盘中中文字符显示为乱码??      对于银河麒麟操作系统的这一问题,可能是因为字符集的原因,需要在mount后加参数: sudo mount –o iochar ...

  3. 重写equals就必须重写hashCode的原理分析

    因为最近在整理Java集合的源码, 所以今天再来谈谈这个古老的话题,因为后面讲HashMap会用到这个知识点, 所以重新梳理下. 如果不被重写(原生Object)的hashCode和equals是什么 ...

  4. mysql:Linux系统下mysql5.6的安装卸载

    1.1. 下载rpm包 要使用yum 安装mysql,需要mysql的yum仓库,先从官网下载适合你系统的仓库 http://dev.mysql.com/downloads/repo/yum/ 我的是 ...

  5. 发布一个Python小程序:ManHourCalendar

    程序诞生的那些事儿 先聊聊背景资料档案.. 大约两年前,我只身前往岛国赚点外快.在那边的派遣制度工作中,存在一个大约叫每月的标准工作时间的概念,按照自家公司跟派遣目标公司(业界称为现场)的合同,规定了 ...

  6. 微信小程序scroll标签的测试

    一:testscroll.wxml的代码如下.testview.js自动生成示例代码 //testscroll.wxml <view class="section__title&quo ...

  7. 201521123023《java程序设计》第四周学习总结

    1. 本周学习总结 思维导图 常规: (1)抽象类:不能被直接实例化.只能作为其它类的父类,这一点与final类正好相反.用关键词abstract声明. (2)继承:只能有一个父类,即单继承,子类继承 ...

  8. 201521123067 《Java程序设计》第4周学习总结

    201521123067 <Java程序设计>第4周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. ●总结: (1)在 ...

  9. 201521123077 《Java程序设计》第1周学习总结

    1. 本章学习总结 java语言的历史 dos下运行 java文件 Math ,String ,Scanner,Interger等常用类的使用 jdk,jre,jvm等概念的了解 classpath, ...

  10. 201521123004 《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 注意: notify()/notifyAll()方法和wait()方法都只能在被声明为synchronized的方 ...