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官網上有案例原始碼,一定要學習一下。
相關文章
- ArcGIS API for Silverlight 載入google地圖APIGo地圖
- ArcGIS API for Silverlight之ElementLayer使用注意點API
- Java API學習筆記(一)JavaAPI筆記
- ArcGIS API for Silverlight 繪製降雨路徑動畫API動畫
- ArcGIS API for Silverlight程式碼中使用Template模板API
- ArcGIS API for Silverlight開發入門準備API
- 建立第一個ArcGIS API for Silverlight應用API
- 《學習筆記》.NET Core API搭建筆記API
- TensorFlow Java API 學習筆記JavaAPI筆記
- Rest API 開發 學習筆記RESTAPI筆記
- ArcGIS API for Silverlight實現地圖測距功能API地圖
- ArcGIS API for Silverlight 查詢點閃爍顯示API
- ArcGIS API for Silverlight動態標繪的實現API
- canvas學習之API整理筆記(一)CanvasAPI筆記
- Silverlight學習筆記:XAML和控制元件模型筆記控制元件模型
- ArcGIS API for Silverlight 中根據座標點在地圖上打標記API地圖
- ArcGIS API for Silverlight 呼叫GP服務繪製等值面API
- ArcGIS API for Silverlight載入google地圖(後續篇)APIGo地圖
- ArcGIS API for Silverlight載入BingMap遙感地圖API地圖
- ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用APISymbol
- ArcGIS API for Silverlight開發中常用問題彙總API
- ArcGIS API for Silverlight 滑鼠移動顯示地理座標API
- ArcGIS API for Silverlight中載入Google地形圖(瓦片圖)APIGo
- ArcGIS API for Silverlight 查詢點聚焦的一個注意點API
- angular學習筆記(二十三)-$http(1)-apiAngular筆記HTTPAPI
- ArcGIS API for Silverlight 解決眾多密集點分層顯示API
- ArcGIS API for Silverlight 點選地圖彈出自定義窗體API地圖
- ArcGIS API for Silverlight 呼叫GP服務載入等值線圖層API
- ArcGIS API for Silverlight 實現修改地圖上的工程點位置API地圖
- numpy的學習筆記\pandas學習筆記筆記
- ArcGIS API for Silverlight 地圖載入進度條類之MapProgressBarAPI地圖APP
- Jdk8 新日期工具類 Api 學習筆記JDKAPI筆記
- Silverlight 2 學習筆記之事件的重複繫結問題筆記事件
- WPF and Silverlight 學習筆記(十三):依賴項屬性和路由事件筆記路由事件
- IT學習筆記筆記
- 學習筆記筆記
- ArcGIS API for Silverlight 動態圖層(ArcGISDynamicMapServiceLayer)的顯示與隱藏API
- 收集的一些關於ArcGIS API for Silverlight開發的連線API