rcGIS API for JavaScript之基础篇(一)
ArcGIS API for JavaScript之基础篇(一)
上一篇文章介绍了ArcGIS 10.4的安装指南也包含了所需要资源,需要的同学可以去公众号中查找。最近几天学习了2D地图、3D地图以及图层的基础知识,我纯碎记录一下自己学习过程中的一些心得体会,个人理解。不对之处,还请各位见谅以及多多指教。
Demo展示2D
3D
Layer
基础术语解释
Map
Map类包含储存、管理和覆盖2D3D视图共有图层的属性和方法。使用new Map()方法创建的地图只有通过MapView(2D视图)或者SceneView(3D视图)才能被渲染到界面上,而且一个地图可以被多个视图引用。Map实例是2D视图和3D视图的必要成分,因此Map对像应该在View之前创建。
三个Demon中用到的属性
basemap: 地图指定的底图。它的值为streets/satellite/hybrid/topo/gray/dark-gray/oceans/national-geographic/terrain/osm/dark-gray-vector/gray-vector/streets-vector/topo-vector/streets-night-vector/streets-relief-vector/streets-navigation-vector
ground:地图指定的表面特性。只有在把地图添加到3D视图上的时候,这个特性才是有用的。它的值可以是Ground类的一个实例或者是使用世界海拔服务的默认ground实例的world-elevation字符串。
layers: 可操作的图层的集合。它的值为FeatureLayers/WebTileLayers/GraphicsLayers
View
View(视图)提供查看及与地图组件交互的方法。地图仅仅是一个容器,存储了包含在基础层和操作层中的地理信息。视图渲染了地图和该地图的各个图层,以便用户能够看到他们。view是基类,它包含两个子类MapView和SceneView。创建视图时必须使用MapView类和SceneView类。
MapView
MapView是显示一个地图的2D视图。为了使用户能看到文档中的地图,必须创建一个MapView,并且要设置它的两个属性,container和map(SceneView同理)。
三个Demon中用到的属性
center:视图的中心点。
container:装载这个视图的容器。
map:视图渲染的Map对象的实例。
scale: 视图中的地图比例尺。
zoom:视图中缩放比例。
三个Demon中用到的方法
goTo(target, options)将视图设置为给定的目标。
on(type,modifiersOrHandler,handler)在实例上注册一个事件处理程序。调用这个方法来作为监听器监听事件。type:要监听的事件或者事件的名称。modifiersOrHandler:附加的修饰键用于过滤事件。如果不需要修饰符,则在触发事件时调用该函数。handler:修饰符被触发时调用的函数。
SceneView
SceneView类采用WebGL显示Map或者MapScene实例的3D视图。
三个Demon中用到的属性
center:视图的中心点。
container:装载这个视图的容器。
map:视图渲染的Map或者WebScene对象的实例。
scale: 视图中的地图比例尺。
zoom:视图中地图的缩放比例。
BaseMap
Basemap用于创建自定义底图。这些底图可以从自己服务器发布瓦片服务或者由第三方发布的瓦片服务中创建。
Ground
Ground类包含特定地表如何在SceneView中显示的属性。它包含一个图层属性,是一个ElevationLayer集合,用于定义地图表面的高程或地形。
TileLayer
TileLayer允许您使用ArcGIS Server REST API公开的缓存地图服务,并将其作为图块层添加到Map中。缓存的服务从缓存中访问切片,而不是动态地渲染图像。由于它们被缓存,平铺图层渲染比MapImageLayers更快。要创建TileLayer的实例,必须引用缓存地图服务的URL。
三个Demon中用到的属性
Id:图层独一无二的ID。
opacity:图层的透明度。
URL:图层的REST端点的URL。URL可以指向 ArcGIS for Server, Portal for ArcGIS或者 ArcGIS Online上的资源。
visible:这个图层在视图中是否可见,默认值是true。
Layer
图层是Map最基本的组成部分。它是以矢量图形或光栅图像的形式表示真实世界现象的空间数据的集合。图层可能包含存储矢量数据的离散特征或存储栅格数据的连续像元/像素。要创建图层,您必须使用Layer的其中一个子类或调用Layer.fromPortalItem()方法。为了可视化和分析的目的,可以将多个图层添加到相同的地图上并且彼此重叠
三个Demon中用到的方法
when(callback, errback, progback)
一旦创建了类的实例,就可以利用when()。这个方法有两个输入参数:一个callback函数和一个errback函数。allback在承诺解决时执行,如果承诺失败,执行errback
代码分析
2D与3D
(1)加载所需要的模块
2D
3d
(2)创建地图和视图。
2D
3d
3)把视图显示到界面上
Layer
(1)加载模块同上。
(2)创建图层
(3)创建地图和视图同上,不过图层一定要地图之前创建,地图也要在视图之前创建。
(4)在承诺执行之后,动画视图到housingLyr图层的全部范围。
5)点击事件,当选中右上角的 Transportation时,触发事件:transportationLyr图层可见。
原文:https://blog.csdn.net/weixin_41665391/article/details/79216919
版权声明:本文为博主原创文章,转载请附上博文链接!
rcGIS API for JavaScript之基础篇(一)的更多相关文章
- JavaScript笔记基础篇(二)
基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt ...
- JavaScript的基础篇
一.JavaScript的引入方式 1)js的引用方式 <body> <!--引入方式一,直接编写--> <script> alert("hello wo ...
- 小白神器 - 两篇博客读懂JavaScript (一基础篇)
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一. 编写格式 1, ...
- JavaScript学习基础篇【第1篇】: JavaScript 入门
JavaScript 快速入门 JavaScript代码可以直接嵌在网页的任何地方,不过通常我们都把JavaScript代码放到<head>中,由<script>...< ...
- JavaScript笔记基础篇(三)
针对前段JS获取当前时间或者对时间数据处理方法汇总: javascript 字符串转化为日期 Java代码 var s="2010-5-18 12:30:20"; var t= ...
- javascript弹窗基础篇
confirm()意既确认框 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- API - 使用Default对象 - 基础篇
在编写Spider Studio脚本时, Default对象是最常用最重要的一个, 其类型定义如下: Webus3.Spider.Controls.JQueryBrowser Default; 下面介 ...
- laravel JWTAuth实现api接口鉴权(基础篇)
官网:https://jwt-auth.readthedocs.io 参考:https://learnku.com/articles/10885/full-use-of-jwt#99529f 1.to ...
- JavaScript之基础篇
标识符 命名要求 以字母.下划线或者$开头: 由字母.下划线.$和数字组成. 关键字和保留字 关键字.保留字不可以作为标识符. 大小写敏感 区分大小写. 基本数据类型 Number 整数 浮点数 特殊 ...
随机推荐
- java-继承进阶_抽象类_接口
概要图 一, 继承的进阶 1.1,成员变量 重点明确原理. 特殊情况: 子父类中定义了一模一样的成员变量. 都存在于子类对象中. 如何在子类中直接访问同名的父类中的变量呢? 通过关键字 super来完 ...
- 通过inputSplit分片size控制map数目
前言:在具体执行Hadoop程序的时候,我们要根据不同的情况来设置Map的个数.除了设置固定的每个节点上可运行的最大map个数外,我们还需要控制真正执行Map操作的任务个数. 1.如何控制实际运行的m ...
- Go开发 之 Go如何引用github包
- 荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly
WebAssembly 是一种新的W3C规范,无需插件可以在所有现代浏览器中实现近乎原生代码的性能.同时由于 WebAssembly 运行在轻量级的沙箱虚拟机上,在安全.可移植性上比原生进程更加具备优 ...
- c++中merge的操作
merge:将两个有序序列合并成一个新的序列,并对新的序列排序 所在库:<algorithm> 注意:排序规则必须和原序列规则相同.存储时下标从0开始. 函数参数:merge(first1 ...
- Session学习小结
前言: 1.我们在学习一项技术的时候,首先应该是什么时候会用到这项技术.这次学习session也是如此,一般的web项目中都有用户的存在,有用户那么就有了用户的管理,而用户往往是存在于session中 ...
- WPF Popup实现拖动
问题一.popup总是置顶,遮挡其他窗口 最近发现popup设置打开后,总是会遮挡其他窗口,而我们只想让它仅仅在应用程序的上一层即可,并不像让它在最上面 解决方案是继承Popup重新定义控件Popup ...
- java 日期合法
try { String date_str = "5555-22-33"; SimpleDateFormat format=new SimpleDateFormat("y ...
- 【水滴石穿】mobx-todos
我觉得代码在有些程序员手里,就好像是画笔,可以创造很多东西 不要觉得创意少就叫没有创意,每天进步一点点,世界更美好 首先源码地址为:https://github.com/byk04712/mobx-t ...
- redis是当前流行的nosql数据库
redis是当前流行的nosql数据库,很多网站都用它来做缓存,今天我们来安装并配置下redis 二.安装并配置redis 1.安装redis sudo apt-get install redis-s ...