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二次開發包。

——————————

好了,能夠開始講了。

哦對了,我學的也不深,請不要用教程二字綁架我,認爲我什麼都會,我也在學習,但願一塊兒交流,一塊兒進步。

相關文章
相關標籤/搜索