ArcGIS API for JavaScript介紹

       ArcGIS API for JavaScript中的類是按照模塊組織的,主要包含esri、esri/geometry、esri/renderers、esri/symbols、esri/symbols、esri/dijit、esri/dijit/editing、esri/layers、esri/tasks、esri/toolbars、esri/virtualearth模塊,在開發過程中,使用dojo.require("類名")便可將類引入,除了esri/arcgis/Portal模塊,類和模塊之間是一對一的關係。按照功能模塊分類,ArcGIS API for JavaScript組成如圖

       實現地圖圖層功能的主要是Map類、Layer類,Map類是最核心的類,其它控件或多或少的都將Map對象作爲其參數,它主要用於呈現地圖服務、影像服務等。一個地圖對象需要通過一個DIV元素纔可以添加到頁面中,通常地圖控件的寬度和高度是通過DIV容器初始化的。Map對象不僅僅用來承載地圖服務和GraphicsLayer同時還可以監聽用戶在地圖上的各種操作事件,並做出響應,Map對象提供了非常豐富的事件,使用這些事件,就可以讓地圖跟用戶隨心所欲的去交互。Layer類是圖層類,用來添加相關圖層,比如WMS服務、熱點圖(HeatMap)、Bing地圖、OpenStreetMap、GeoRSS、KML數據等,其類繼承結構如圖:

       其中,ESRI.ArcGIS.Client.GraphicsLayer是一種客戶端圖層,用於繪製基於矢量數據的圖形,並指定符號進行渲染。DynamicMapServiceLayer爲抽象基類,表示動態圖層類型。如果想創建自定義的動態圖層類型,通過指向在線服務的URL訪問動態生成的圖片,那麼就得實現DynamicMapServiceLayer。ESRI.ArcGIS.Client.Toolkit.DataSources.KmlLayer也是一種GraphicsLayer,其圖形幾何體由基於XML語法的數據源返回,可以是KML、KMZ或服務。TiledMapServiceLayer爲抽象基類,表示切片/緩存地圖服務圖層。當需要自定義一個切片圖層類型,並且緩存圖片可以通過簡單的URL直接引用時,應考慮實現TiledMapServiceLayer。

  實現圖形繪製功能主要是Graphic類、Geometry類,Graphic對象表示可以在GraphicsLayer上繪製的圖形要素,同時FeatureLayer中的要素、幾何服務操作的參數等大多以Graphic對象來表示。Geometry類用於表示要素的圖形,如點、多點、多義線、多邊形等幾何體及幾何對象範圍等。

  實現圖形渲染功能的主要是Symbol、Renderer,Symbol用於渲染要素的圖形,如點符號、線符號、填充符號等。Renderer渲染器定義了一種或多種符號以應用於一個GraphicsLayer。每個Graphic的符號所使用的符號取決於該Graphic的屬性值。Renderer指定了屬性值與符號之間的對應關係,主要方法有三種:SimpleRenderer,它是最簡單的符號化渲染,對所有要素使用同樣的符號;UniqueValueRenderer,使用唯一值符號化渲染,可以爲具有特定屬性值的Graphic定義符號;以及ClassBreaksRenderer,分級符號化渲染允許爲特定屬性值範圍內的一組圖形指定符號。

  查詢檢索功能是通過Task的方式實現的。使用Task需要首先實例化Task對象,註冊Task完成、失敗的監聽事件;然後實例化Task參數對象,爲必要屬性賦值,發送請求;最後在Task完成事件處理函數中處理返回結果或在Task失敗事件處理函數中處理錯誤信息。查詢檢索空間數據的方式主要有針對多個圖層屬性查詢查詢的FindTask、針對多個圖層空間查詢IdentifyTask、只針對一個圖層QueryTask。

  幾何操作功能是通過GeometryService對圖形幾何體的各種操作,如生成緩衝區、圖形合併、圖形相交、測距、多邊形面積和周長測量、投影、空間關係等。調用esri.tasks.GeometryService方法便能夠實現操作各種幾何體。

  在線編輯功能是通過Feature Service客戶端可訪問要素的圖形、屬性、附件、關係,實現web編輯的能力。實現在線編輯數據必須存儲在ArcSDE然後發佈成Feature Service的服務。通過使用Edit接口的.applyEdits方法實現在線編輯便可對數據進行圖形編輯、屬性編輯、附件編輯。

  網絡分析功能的實現要求地圖服務中包含網絡數據集(Network Dataset)並且啓用了網絡分析能力。通過網絡分析可以實現最優路徑分析、服務區域分析、臨近設施分析。最優路徑分析通過路徑分析參數RouteParameters(如stop),調用RouteTask.solve()方法實現。服務區域分析通過ServiceAreaParameters,調用serviceAreaTask.solve(params,function(solveResult)方法。臨近設施分析通過ClosestFacilityParameters方法,使用closestFacilityTask.solve(params,function(solveResult)分析最鄰居設施。

  時態展示中主要有TimeSlider控件,用來播放歷史變化、查看某個時間點、時間範圍的數據狀態,同時可使用tasks.Query支持將時間作爲輸入參數從而實現查詢支持,使用renderer.attributeField用於展現數據在不同時間的空間位置變化進行符符號渲染。

  地理處理提供數據管理、數據轉換和各種數據分析的工具和模型。GP可以實現REST API無法實現的功能,如數據轉換/管理、空間分析等。在ArcGIS Server中,通過將GP工具、模型發佈爲GP服務,客戶端API即可以Task方式調用。其有兩種執行方式:execute,同步執行,等待結果;submitJob異步執行,通過onJobComplete事件獲取執行結果。

  Dijit下的Widgets提供多種使用控件,比如Bookmarks、Attribute Inspector、InfoWindow等。

  ArcGIS API for JavaScript爲用戶快速地、簡潔地創建交互式WebGIS應用提供了輕量級的解決方案。通過ArcGIS API for Javascript調用相關的方法便能夠訪問ArcGIS for Server中發佈的地圖服務其它資源(ArcGIS Online)嵌入到Web應用中進行相關的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章