ArcGIS API for Silverlight 學習筆記
ArcGIS Silverlight API:是構建在微軟Silverlight平臺之上,通過ArcGIS Server Rest API消費ArcGIS
Server 服務,同時支援直接消費Bing地圖服務的應用程式程式設計介面。
ArcGIS Server服務:
1、MapService --地圖展示、要素查詢
2、GeometryService - -實現基於Geometry的功能模組
3、Geoprocessing Service --在Web端消費GP工具
4、GeoCodeService --實現地理編碼和解碼
Bing服務:
1、Map Services --訪問Bing線上快取地圖資料
2、GeoCode Service --提供世界範圍的地理編碼服務
3、Routin Service --駕駛/導航路線服務
學習Silverlight官網:
1、http://silverlight.net/
2、http://www.codeplex.com/Silverlght
3、http://msdn.microsoft.com/zh-cn/library/cc838158(VS.95).aspx
API Library概述:
ESRI.ArcGIS.Client.dll 核心類庫,包括Map、Layer、Graphics、Geometry、Symbol、Task
ESRI.ArcGIS.Client.Behaviors.dll 包含一套行為和動作,用來與Map及其內容互動
ESRI.ArcGIS.Client.Bing.dll 專門針對Bing(Virtual Earth)服務的類庫,支援新增Bing的MapService、GeoCode Service和Routin Services。
ESRI.ArcGIS.Client.ToolKit.dll 包含Bookmark、Magnifier、MapTip、Toolbar、Navigation、OverviewMap等控制元件。
Silverlight API開發---------Map&Layer
支援的圖層型別:
ArcGISDynamicMapServiceLayer
ArcGISTiledMapServiceLayer
ArcGISImageServiceLayer
GraphicsLayer
FeatureLayer --指定型別的GraphicsLayer
url --必須指定MapService圖層的地址
where --定義的查詢條件
FeatureSymbol --用於所有的Graphics
Clusterer --要素點按簇顯示
OutFields --指定返回的欄位
TileLayer --Bing Layer
ElementLayer --Silverlight UI/Media
圖層拓撲關係圖:
Layer
DynamicLayer ElementLayer TiledMapServiceLayer GraphicLayer
DynamicMapServiceLayer FeatureLayer
GPResultImageLayer Bing.TileLayer
ArcGISImageServiceLayer ArcGISTiledMapServiceLayer
ArcGISDynamicMapServiceLayer
注意事項:
1、 地圖顯示的順序依照載入的先後順序
2、 Map初始化空間參考和比例尺級別
3、 ArcGISDynamicMapServiceLayer的背景色總是透明
4、 Multi-Layer Cache不支援
5、 地圖服務安全策略
6、 SnapToLevels屬性
7、 控制地圖動畫時間->ZoomDuration(1.5)&PanDuration(0.75)
API支援的Task類(ESRI.ArcGIS.Client.Tasks)
QueryTask --針對單個圖層
IdentifyTask --與位置相交的要素
FindTask --指定要素的模糊查詢
Locator --獲取地址的地理座標(GeoCode)
Address --獲取地理座標的地址(Reverse GeoCode)
GeometryService --執行Geometry操作
GeoProcessor --做複雜的GIS分析
GeometryService
功能 描述
面積和周長工具 計算輸入的polygons的面積和周長
AreasAndLengths
測距 計算輸入polylines的長度
Lengths
緩衝區工具
Buffer 計算緩衝距離,計算輸入點的緩衝區
計算標註點 計算輸入polygons的標註點
LabelPoints
簡化 對輸入的geometries進行拓撲校正
Simplify
投影 對輸入的geometries進行投影轉換
Project
空間關係 計算geometries之間的空間關係
Relation
使用Task三步走原則:
1、 例項化Task物件,註冊Task完成、失敗的監聽事件。
QueryTaskqueryTask;
queryTask= new QueryTask(“http://localhost/ArcGIS/rest/services/USA/MapServer/5”);
queryTask.ExecuteCompleted+=QueryTask_ExecuteCompleted;
queryTask.Failed+=QueryTask_Failed;
2、 例項化Task引數物件,為必要的屬性賦值,傳送請求。
Queryquery = new Query();
query.ReturnGeometry= true;
query.OutFields.AddRange(newstring[] {“STATE_NAME”});
query.Where= QueryTextBox.Text;
queryTask.ExecuteAsync(query);
3、 在Completed事件中處理返回結果/處理失敗的結果。
privatevoid QueryTask_ExecuteCompleted(object sender,QueryEventArgs args)
{
GraphicsLayer graphicsLayer = myMap.Layers[“MyGLayer”]as GraphicsLayer;
graphicsLayer.ClearGraphics();
…
}
private voidQueryTask_Failed(object sender,TaskFailedEventArgs args)
{
MessageBox.Show(“Query Failed:”+args.Error);
}
GPService
執行GP服務的2套成員
同步GP服務 -----短處理事件ExecuteAsync
只要執行一完成,就返回每個操作的結果給客戶端,在伺服器端不儲存結果。
非同步GP服務 ---長處理時間 SubmitJobAsync
儲存結果在伺服器上,返回一個job ID給客戶端,客戶端然後使用這個ID返回結果。
Behavior->被設計為操作基於map的預定義事件,並且生成結果
--ConstrainExtentBehavior
--MaintainExtentBehavior
--ShowCoordinatesBehavior
Action->被設計為操作map及其內容,並生成結果
--PanToAction
--ZoomToAction
--ZoomToFullExtentAction
--MeasureAction
需要新增System.Windows.Interactivity.dll引用。
Silverlight API開發---ToolKit工具欄
Bookmarks 書籤
FeatureDataGrid 要素表格
Magnifier 放大鏡
MagnifyingGlass 放大鏡
MapProgressBar 地圖進度條
MapTips 地圖提示
Navigation 導航工具
OverviewMap 鷹眼
客戶化控制元件外觀
目的:
改變現實樣式、改變狀態、改變與使用者互動方式,但不改變功能。
實現思路:
1、 分析控制元件結構和控制元件狀態
2、 在資源字典中根據控制元件協議自定義新的控制元件模板
3、 在xaml中為控制元件的Template屬性賦值
Silverlight API實現專題圖繪製:
目的:
在地圖上展現專題業務資訊,為使用者實現控制元件維分析
實現思路:
1、 專題要素需要在GraphicLayer中顯示,構建GraphicLayer
2、 自定義專題要素符號,並繫結專題要素屬性
3、 queryTask返回查詢要素
4、 在GraphicLayer中新增Graphic,完成專題圖繪製
Silverlight API可擴充套件性–--自定義圖層
目的:
在地圖控制元件中載入Silverlight API未原生支援的圖層。
實現思路:
1、 瞭解自定義圖層的訪問原理(訪問協議)
2、 根據服務特點選擇繼承物件
3、 初始化資源(過載Initiallize方法)
4、 構造請求服務的URL
經典案例:
SilverlightShowCase官網上有案例原始碼,一定要學習一下。
相關文章
- Silverlight 2 學習筆記之事件的重複繫結問題筆記事件
- TensorFlow Java API 學習筆記JavaAPI筆記
- 《學習筆記》.NET Core API搭建筆記API
- numpy的學習筆記\pandas學習筆記筆記
- Jdk8 新日期工具類 Api 學習筆記JDKAPI筆記
- 學習筆記筆記
- Redis學習筆記 – 資料型別與API(1)KeyRedis筆記資料型別API
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- 機器學習學習筆記機器學習筆記
- 實戰架構 API 伺服器 學習筆記 (1)序言架構API伺服器筆記
- SSM框架實現高併發秒殺API學習筆記SSM框架API筆記
- 學習筆記-粉筆980筆記
- 學習筆記(3.29)筆記
- 學習筆記(4.1)筆記
- 學習筆記(3.25)筆記
- 學習筆記(3.26)筆記
- JavaWeb 學習筆記JavaWeb筆記
- golang 學習筆記Golang筆記
- Nginx 學習筆記Nginx筆記
- spring學習筆記Spring筆記
- gPRC學習筆記筆記
- GDB學習筆記筆記
- 學習筆記(4.2)筆記
- 學習筆記(4.3)筆記
- 學習筆記(4.4)筆記
- Servlet學習筆記Servlet筆記
- 學習筆記(3.27)筆記
- jest 學習筆記筆記
- NodeJS學習筆記NodeJS筆記
- WebSocket 學習筆記Web筆記
- mount 學習筆記筆記
- mapGetters學習筆記筆記
- jQuery學習筆記jQuery筆記
- 學習筆記:DDPG筆記
- flex學習筆記Flex筆記
- react 學習筆記React筆記
- Promise學習筆記Promise筆記
- vim學習筆記筆記