天天看點

ArcGIS API for JavaScript 入門教程[1] 淵源

是什麼?需要準備些什麼?它怎麼來的?我必須學它嗎?

  • ->對于萌新,你可能需要了解一下這個東西是什麼
  • ->對于已經知道要用這個東西的開發者,你可能需要了解一下它的底層機制
  • 不針對大牛。龜速更新ing.
  • 轉載注明出處。部落格園&CSDN&Bilibili:@秋意正寒
  • 目錄:https://www.cnblogs.com/onsummer/p/9080204.html

1. 是什麼【萌新别跳這一步】

如果非萌新,可以跳過這一段文字。

想要知道ArcGIS API for JavaScript是什麼,我大概用以下幾條條目描述:

  • 是一個WebGIS二次開發(如果不知道什麼是WebGIS請用搜尋引擎···)的前端開發包,使用JavaScript語言
  • 出自美國Esri公司
  • 是Esri的ArcGIS Runtime SDK家族中的一員
  • 它不是純Js寫的庫

能說明什麼呢?

  1. 它能制作線上地理資訊系統平台,能做資料分析、空間分析、資料展示等;
  2. 歪果仁寫的,英文資料多,雖然中文也有一定數量的資料(部落格、書籍等),但是呢,由于Esri更新賊快,一年三四更的,中文資料不一定跟得上速度;
  3. 你可能需要學很多附屬的東西,這個API很龐大、很笨重,入門門檻其實不高,但是深入難,前端上,你得知道造這個API的基礎——Dojo架構,而Dojo架構由于曆史淵源,又來自從屬AMD(異步子產品定義)規範的RequireJs,要想了解AMD,又不得不去看一些前端和後端的發展史,甚至不可避免要學一些基礎的後端。

如果你做好了這些準備,繼續。

哦對了,這個API目前有兩個大支線,一個是3.x版本,一個是4.x版本;

3.x版本已經很成熟,用于2D的WebGIS二次開發很完美,如果你用的是ArcGIS整套産品;

我重點講一下類和子產品經過重新構造、較為簡單的4.x版本,因為它最大的特征是資料視圖分離、支援3D,旗幟鮮明對接ArcGIS Pro.

2. 我必須學它嗎?

如果你的項目需求很大,大量用到空間分析、三維展示,頻繁互動ArcGIS家族的産品(Server、ArcGIS Desktop等),請學;

如果你的項目需求比較小,也可以學,當然也可以有别的選擇:

  • 開源解決方案: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二次開發包。

——————————

好了,可以開始講了。

哦對了,我學的也不深,請不要用教程二字綁架我,認為我什麼都會,我也在學習,希望一起交流,一起進步。

繼續閱讀