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 整数 浮点数 特殊 ...
随机推荐
- 工作记录--使用FFmpeg将一个视频文件中音频合成到另一个视频中
由于工作需要,临时被老大吩咐去研究一个FFmpeg工具,通过linux命令行去将一个视频中的音频提取出来并合成到另一个视频中,最终的效果是要保证2个视频中的音频都在一个视频中播放. 但是本人对FFmp ...
- 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山
前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...
- Leetcode61. Rotate List旋转链表
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4-& ...
- 用 Python 写一个 NoSQL 数据库Python
NoSQL 这个词在近些年正变得随处可见. 但是到底 “NoSQL” 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Python (我比较喜欢叫它, “轻结构化的伪代码”) 写 ...
- h5滚动页面固定导航
1.需要效果 2.实现方法 (1)原生js实现 document.addEventListener('scroll', function (event) { var scrollDamo = wind ...
- cf round480D Perfect Groups
题意:给一个序列,对于每一个连续的区间,区间内的数至少分成几个组,使得每个组内的数任意2个相乘是一个完全平方数(包括0). 输出每个组数的个数. $n \leq 5000 , |a_i| \leq 1 ...
- 【JZOJ5088】【GDOI2017第四轮模拟day2】最小边权和 排序+动态规划
题面 有一张n个点m条边的有向图,每条边有一个互不相同的边权w,有q个询问,要求你从点a经过不超过c条边到点b,要求经过的边权递增并和尽量小,求出最小的边权和,如果没有合法方案则输出-1. 对于100 ...
- C++学习笔记----2.4 C++对象的内存模型
转载自:http://c.biancheng.NET/cpp/biancheng/view/2995.html点击打开链接 当对象被创建时,编译器会为每个对象分配内存空间,包括成员变量和成员函数. 直 ...
- 数据ETL是指什么
ETL是数据抽取(Extract).清洗(Cleaning).转换(Transform).装载(Load)的过程.是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义 ...
- BZOJ4241历史研究题解
题目连接 很显然可以想到分块,用f[i][j]表示块i到块j的ans,然后发现答案一定是f[i][j] 或者其他在边角出现的数字 我们在记下g[i][j]从开头到块i中的数字j出现的次数 这样就每一次 ...