ArcGIS4Js重要概念3:编程模式2 接着上篇的ArcGIS4Js重要概念3:编程模式1,进行捋一捋异步(Async Data)和使用 fromJSON (Using fromJSON)。Async Data(异步)在ArcGIS API for JavaScript中常用的异步模式有两种:Promises和Loading。PromisesPromises 是API中非常重要的一个概念,使用它可以很简洁的写出异步操作代码,同时...
ArcGIS4Js重要概念3:编程模式1 在ArcGIS for JavaScript 的架构体系中,有挺多我们需要了解的编程模式( Programming patterns ),其中有些是撸代码过程必须要使用,有些是可以简化我们工作量的。 了解和熟悉这些模式,我们将能更加愉快的撸代码。涉及概念有: 类加载 (Loading Classes)、构造方法(Constructors)、属性(Properties)、自动构造(Autocast...
ArcGIS4Js重要概念2:图层 图层作为地图中最基本的要素,我们撸代码过程肯定会使用到。ArcGIS for Js 中定义很多的图层类,有的可以展示矢量数据(例如:FeatureLayer 和 GraphicsLayer), 有的可以展示栅格数据(如: ImageryLayer)。 这些图层类都有一个共同的基类Layer , 我们先看看 Layer 中常用的属性和方法。Layer 常用属性和方法Layer 常用属性fu...
ArcGIS4Js重要概念1:Layer和View 在使用ArcGIS for JS 4.x中,View 和 Map 这两货是一对好基友,都是成双成对出现使用的,在开发地图应用中肯定会使用它们两的。 Map 负责管理地图中的各种图层数据(包括底图),View 负责Map中图层、微件、弹出框等展示以及处理地图点击等用户交互。总的来说View负责和用户打交道,Map负责提供数据给View。Map 的使用Map 用来管理地图中的所有图层,可以进行添...
9.绘制点、线、面 概述本节您将学到: 如何通过已知坐标串生成点、线、面 并添加到地图中。在应用中,我们可以使用 Graphic 在地图上显示图形。 每个 Graphic 可以由一个 geometry(图形) 、一个 symbol(符号) 、一系列属性组成和一个 pop-up 组成。 Graphic 通常由用户直接在地图上交互点击绘制生成或者通过已知坐标串等数据生成。 Graphic 可以通过添加一个 graph...
8.过滤 feature layer 概述本节您将学到: 对feature layer进行客户端或服务端的过滤显示。在展示feature layer时,如果我们只需要展示其中符合某些条件的要素,就可以使用 feature laye r的过滤功能。 我们可以通过客户端方式或服务端方式结合SQL表示和空间表达式进行 feature layer 的过滤显示。被过滤的feature layer 可以托管在 ArcGIS Online 或...
7.查询feature layer 概述本节您将学到: 对feature layer进行客户端或服务端的属性查询或空间查询。应该可以使用客户端方式或服务端方式对feature layer 进行属性、空间或者统计查询。被查询的feature layer 可以托管在ArcGIS Online或ArcGIS Enterprise上,或者也可以通过客户端进行创建。服务端查询:feature layer 不并加载在地图上就可进行查询,...
6.配置使用pop-ups(弹出框) 概述本节您将学到: 为feature layer 配置pop-ups的样式和内容。我们可以给feature layer 和graphic 配置pop-ups,使点击它们使能够弹出pop-ups以展示被点击要素的属性信息。我们可以通过PopupTemplate对象来设置pop-ups的样式、内容和格式。通过PopupTemplate我们可以定义pop-ups的标题、内容以及多媒体信息的展示。可以...
5.feature layer 配置样式 概述本节您将学到: 怎么根据属性值配置feature layer的样式和符号。应用能够使用不同的样式展示feature layer 以增加数据的可视化。第一步是选择合适的renderer。SimpleRenderer提供相同的符号渲染所有的要素,UniqueValueRenderer能根据属性不同值提供不同的符号渲染要素(唯一值渲染),ClassBreaksRenderer能根据属性不同范围值...
4.加载FeatureLayer 概述本节您将学到: 怎么加载FeatureLayer(要素图层)。应用可以可以接受和显示托管在 ArcGIS Online 和 ArcGIS Enterprise上的要素图层。一个要素图层包含一系列的要素图形和属性。每个feature layers都有一个唯一的REST风格的URL地址,要素图层可以通过这个URL在地图上绘制要素图层中的点、线、面要素。如果要素图层的没有预先配置renderer...
3.选择底图 概述本节您将学到: 怎么创建一个可以交互选择和显示 ArcGIS Online上底图的应用。应用可以使用和展示托管在ArcGIS Online和ArcGIS Enterprise栅格切片底图和矢量切片底图,同样可使用您通过ArcGIS Vector Tile Style Editor设计的自定义底图(注:当然也可以是自己发布的栅格底图和矢量底图)。使用BasemapToggle和Basemap...
2.建立简单的地图应用 概述本节您将学到: 怎么样创建一个二维地图和三维地图您可以通过Map类和View类创建一个简单的二维或三维地图应用。其中Map是一个包含您要展示的所有图层layers(包含地图basemap)的容器。您可以选择托管在ArcGIS Online一系列的矢量或栅格底图,也可以选择您自己定义的底图your own styled basemap。View类负责绘制在Map包含的所有的图层。您可以通过M...
1.ArcGIS for JavaScript 4.X离线部署 下载去ArcGIS for Developer ( https://developers.arcgis.com/sign-in) 注册一个帐号,如果提示所属区域无法注册,请准备梯子,再进入注册。进入https://developers.arcgis.com/downloads/apis-and-sdks?product=javascript,会看下如下界面,下载自己想要的版本就可以了,其中A...
自定义旋转卫星菜单 经常在应用中看到卫星菜单,自己也学着写了一个继承自ViewGroup的CustomMenu的卫星菜单,不同之处是带了旋转,由于使用了属性动画,所以只支持3.0以上,还有就是界面变的难看了,囧~,上图(gif录制不流畅,见谅啊): 1. 自定义属性:为了偷懒,只定义两了两个属性,分别表示子菜单的大小和中心那个显示和隐藏按钮的大小。<declare-styleable name="CustomMenu
AsyncTask解析 在UI线程中要执行耗时操作时,我们可以使用AsyncTask进行异步操作,使耗时的异步操作可以在子线程中进行,最后将执行结果返回给UI线程,下面来看下AsyncTask的源码。首先来看下,AsyncTask的变量和常量:private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors(); p
Handler,MessageQueue,Looper解析 在子线程要更新UI时,通常是通过Handler来发送消息到UI线程来更新的,一般有两种方法,一种为sendMessage,另一种为post,这两种方法都可以通过XXXAtTime方法来指定时间发送或者post,也可以用个XXXDelayed来指定延迟时间。首先先看下Handler定义了几个重要的变量:final MessageQueue mQueue;final Looper m
Android Loader 技术的简单实用 从Android3.0开始,Android SDK提供了Loader技术,使用Loader技术可以很容易进行数据的异步加载。Loader技术为我们提供的核心类有:LoaderManager:可以通过Activity或者的Fragment的getLoaderManager()方法得到LoaderManager,用来对Loader进行管理,一个Activity或者Fragment只能有
Fragment的生命周期 Fragment的生命周期有11个,比Activity的生命周期会复杂不少,而且Fragment的生命周期同Activity的生命周期的穿插的执行的,看图:其中背景为蓝色的为Activity的生命周期,其他的为Fragment周期,由图可以看出,在Fragment初始化完成前,相同的生命周期都是Activity先执行的,而进入销毁的周期时,就变成了Fragment的先执行。
Activity回退栈使用 当一个APP启动时,系统会为这个APP创建一个回退栈(任务),用于保存APP所有已经创建的额Activity。当应用启动时,主窗口将第一个被压入回退栈,当显示本应用的其他窗口时,也会按显示顺序创建窗口压入回退栈。回退栈的顶层窗口将会获得焦点,可以与用户交互。当执行Activity的finish方法或者按Back键时,顶层窗口将出栈被销毁,下一个窗户获得焦点同用户交互。例如一个APP有3个窗口,分别