ArcGIS API for JavaScript 入门教程[1] 渊源

  • ->对于萌新,你可能须要了解一下这个东西是什么
  • ->对于已经知道要用这个东西的开发者,你可能须要了解一下它的底层机制
  • 不针对大牛。龟速更新ing.
  • 转载注明出处。博客园&CSDN&Bilibili:@秋意正寒
  • 目录:http://www.javashuo.com/article/p-tloynsnb-ks.html

1. 是什么【萌新别跳这一步】

若是非萌新,能够跳过这一段文字。html

想要知道ArcGIS API for JavaScript是什么,我大概用如下几条条目描述:前端

  • 是一个WebGIS二次开发(若是不知道什么是WebGIS请用搜索引擎···)的前端开发包,使用JavaScript语言
  • 出自美国Esri公司
  • 是Esri的ArcGIS Runtime SDK家族中的一员
  • 它不是纯Js写的库

能说明什么呢?webpack

  1. 它能制做在线地理信息系统平台,能作数据分析、空间分析、数据展现等;
  2. 歪果仁写的,英文资料多,虽然中文也有必定数量的资料(博客、书籍等),可是呢,因为Esri更新贼快,一年三四更的,中文资料不必定跟得上速度;
  3. 你可能须要学不少附属的东西,这个API很庞大、很笨重,入门门槛其实不高,可是深刻难,前端上,你得知道造这个API的基础——Dojo框架,而Dojo框架因为历史渊源,又来自从属AMD(异步模块定义)规范的RequireJs,要想了解AMD,又不得不去看一些前端和后端的发展史,甚至不可避免要学一些基础的后端。

若是你作好了这些准备,继续。web

哦对了,这个API当前有两个大支线,一个是3.x版本,一个是4.x版本;npm

3.x版本已经很成熟,用于2D的WebGIS二次开发很完美,若是你用的是ArcGIS整套产品;编程

我重点讲一下类和模块通过从新构造、较为简单的4.x版本,由于它最大的特征是数据视图分离、支持3D,旗帜鲜明对接ArcGIS Pro.后端

2. 我必须学它吗?

若是你的项目需求很大,大量用到空间分析、三维展现,频繁交互ArcGIS家族的产品(Server、ArcGIS Desktop等),请学;api

若是你的项目需求比较小,也能够学,固然也能够有别的选择:跨域

  • 开源解决方案:Openlayers/Leaflets替代JsAPI。

Openlayers和Leaflets一样是WebGIS二次开发工具包,排名很靠前,两者区别是ol本身提供了封装好的功能模块,而lf则支持插件式,它的插件不少。他们都支持npm方式引入。前端框架

  • 固然,为了实现简单的三维GIS,Cesium了解一下;
  • 若是只是3D数据展现,ThreeJs了解一下;
  • 若是数据源缺少,不想本身作数据服务,对WebGIS标准缺乏耐心,能够试试高德地图API、百度地图API等。
  • 若是想全开源,就目前而言3DGIS仍是ArcGIS最强外,传统二维WebGIS能够用QGIS代替ArcGIS Desktop、用PostgreSQL代替Geodatabase、用GeoServer代替ArcGIS for Server。

使用JsAPI最强大的特征就是真三维空间分析+无比强大的ArcTools工具箱了。

3. 学习此API须要些什么

熟练HTML 5的学习方式、熟练CSS 3的学习方式、能自我学习JavaScript,最好有必定的GIS基础知识、必定的数学知识。

咱们在这里约定

ArcGIS API for JavaScript = jsapi/JsAPI/jsAPI...

你可能还要学习的是:

  • NodeJs与npm(在4.7及3.24版本后可能要用npm下载)——做备选项,不学也无所谓
  • webpack——上面那俩若是你学了,这个确定要学了。
  • 英语

对了,你不须要学怎么配置本地环境(就是说用官方的在线API进行学习就行了),我以为那些东西网上太多了,查一下就行。有可能遇到跨域的问题,你也能够问搜索引擎,这里更关注的是“入门”而不是全面、细节,我须要把你快速带入门,以后看你的造化。

4. 它怎么来的

它基于一个更复杂的前端框架,Dojo.js。

除了当前两条支线3.x和4.x,其实早些年还有过ArcGIS API for Sliverlight和ArcGIS API for Flex,固然他们已经退休了。

JavaScript那么火热,天然而然选他啦。

因为GIS数据模型的复杂性,和普通的Web信息系统不一样,面向对象的机制更合适去描述GIS数据和GIS分析。当时,没有别的好选择,只能选Dojo,由于它支持许多符合WebGIS的特性,如异步操做、面向对象等。

现现在,基于Node的包管理模式的前端开发早已不是什么难事,甚至还冒出了MVVM框架的一大堆火热框架。老迈的Dojo框架不能很好地融入其中,这让人很无奈。

在JsAPI中,地图能够是一个模块,图层能够是一个模块,一个用于空间分析的“东西”也能够是一个模块。相似于桌面编程中的类、继承机制,AMD规范下的RequireJs就产生了。Dojo基于此,定制了一大批的有用模块,能作图表,能作页面,能读写DOM,能作动画,固然是你须要什么模块就调用什么模块,并不须要一次性所有加载。JsAPI基于Dojo,定制了各个方面的模块,从而向开发者提供了一套强大的WebGIS二次开发包。

——————————

好了,能够开始讲了。

哦对了,我学的也不深,请不要用教程二字绑架我,认为我什么都会,我也在学习,但愿一块儿交流,一块儿进步。

相关文章
相关标签/搜索