ArcGIS API for Silverlight學習筆記

ArcGIS API for Silverlight學習筆記(一):爲何要用Silverlight API(轉)

你用上3G手機了嗎?你可能會說,我就是喜歡用nokia1100,ABCDEFG跟我都不要緊。但你不可否認3G是一種趨勢,最終咱們每一個人都會 被包裹在3G網絡中。1100也不是一成不變,沒準哪天爲了打擊犯罪,會在你的1100上強制裝上GPS。GIS工做既然創建在計算機的基礎上,固然也得 隨着IT行業與時俱進。
       看看如今計算機應用的趨勢吧。雲(計算),這個東西可講不清楚,由於雲嘛,飄忽不定的。不過能夠這樣來看它,之後計算機網絡上就有一坨(或者幾坨)萬能的 雲,有什麼需求雲均可以知足咱們,包括各類資源或者計算工做,就不須要在本身的機器上安裝任何軟件了(甚至操做系統均可以由天邊那朵雲來提供給你)。更具 體點,SaaS(Software as a Service),各類的網頁郵件系統,google docs(一 個在線的office)都是SaaS。收發郵件登錄一個網頁就行,而不須要在本身機器上安裝一個軟件。這就是計算機應用的一個趨勢,把全部東西都作到網 上。再來看看網上的趨勢:RIA(Rich InternetApplication)。RIA簡單來說就是一個網頁(網絡應用),在完成基本功能的同時,會讓你以爲很漂亮,操做起來很舒服,效果很 炫,而不是打開後馬上就想關掉它。其實大受歡迎的開心網(各類插件)和twitter,甚至QQ空間等,都有RIA的身影。
       好了,ArcGIS之因此在行業領先,特色之一就是它能緊跟計算機發展的趨勢。ArcGIS Online就是那朵天邊的浮雲;JavaScript API,Flex API,Siverlight API就是ArcGIS本身RIA的三駕馬車。
       這裏還得插一句,我以爲ArcGIS Server的主角原本是ADF,經過它咱們能夠完成一個無所不能的ServerGIS。但在大多數狀況下,GIS都是做爲特定的業務嵌入在一些MIS中 的,相比購買ADF這輛悍馬來講,仍是直接駕馭三套車跑的更輕快一些。
       如今看看咱們的主角。實際上是ArcGIS API forSilverlight/WPF(如下專一Siverlight部分),那麼Silverlight和WPF的關係如何呢?Silverlight 原來叫WPF/E,E就是Everywhere,從命名能夠看出它們的關係:Silverlight是WPF的一個子集。WPF 是.NETFramework 3.0的組成部分之一,微軟視其爲下一代用戶界面,總之很高檔就是了(在Vista和Windows7中看到的大量與XP不一樣的界面,就是WPF的身 影);Silverlight能夠看作是WPF在瀏覽器裏的一個外掛,用於向網絡用戶展現本身的強大能力,因爲受限於網絡環境,因此是WPF的一部分核心 功能。Siverlight的設計初衷是跨平臺,跨瀏覽器的。
       若是這些仍是比較抽象,那麼能夠造一個排比句來進一步說明。以前先確定一點,Flash如今在網絡中的的主導地位。開始造句。Adobe有Flash,微 軟有Silverlight;Adobe有AIR,微軟有WPF;Flex有mxml,Silverlight有xaml;Adobe有 ActionScript,微軟有Code-Behind(C#/VB.NET)或者JavaScript;Adobe有CS(包括 Dreamweaver,Flash,Fireworks,Photoshop,Illustrator),微軟有ExpressionStudio(包 括Blend,Web,Design,Media,Encoder)。如今,可以看來Siverlight究竟是何方神聖了吧?
       最後再來講說ArcGIS這三駕馬車(JavaScript API,Flex API,SiverlightAPI)。國外有人說,隨着Siverlight API的推出,與Flex API一塊兒,將會使JavaScriptAPI慢慢退出歷史舞臺,由於前二者就是爲RIA而生的。但其實也否則,隨着Google和Mozilla工程師 的推動,他們可以使JavaScript的執行速度提升很是多,Chrome就是例子。在這種背景下,一些很是cool的程序員會讓古老的JavaScript得到重生。到底哪匹馬跑得更快?別回答這種問題,趕忙挑一匹本身的馬兒,快馬揚鞭吧~~
       在今年的ESRI開發用戶大會上,一陣鼓聲事後,ESRI隆重推出了ArcGIS API for Silverlight/WPF(beta)。接下來我將把本身在學習Silverlight API中的一些經歷和你們分享,與大夥共同進步。php

轉自溫景良html

連接程序員

原做者:diligentpigweb

原文地址:http://bbs.esrichina-bj.cn/ESRI/thread-43923-1-1.htmlexpress

 

ArcGIS API for Silverlight學習筆記(二):ArcGIS API for Silverlight環境搭建

            我這裏不講解Silverlight開發環境的搭建(我用的是VS2010,Silverlight4,Blend4做爲開發環境 的),Silverlight API的開發不須要在本身的機器上安裝ArcGIS Server,可直接使用ArcGIS Online上的數據;但若是要添加本身的數據,固然仍是須要ArcGIS Server了。api

(一)下載安裝ArcGIS API for Microsoft Silverlight/WPF ,瀏覽器

進入以下頁面http://resources.esri.com/arcgisserver/apis/silverlight網絡

(1)須要註冊一個ESRI Gloab 帳戶。
(2)註冊帳戶後,進入下載頁面,就能夠下載ArcGIS API for Microsoft Silverlight/WPFpost

下載完成後點擊安裝學習

 

安裝完成後會在C:\Program Files\ESRI SDKs\Silverlight\v1.2下出現幾個dll,若是是WPF會在C:\Program Files\ESRI SDKs\WPF\v1.2中出現幾個相同的dll.我這裏主要講解silverlight部分。

(1)ESRI.ArcGIS.Client.dll  

 核心類庫,包括地圖,ArcGIS Service Layer(圖層),圖形,幾何、符號組件也包含工做流任務支持查詢,查找,識別,地理空間信息(geospatial),地理科學數據(geoprocessing)處理操做
(2)ESRI.ArcGIS.Client.Behaviors.dll
包含一系列的行爲和動做能讓元素和地圖及地圖的內容交互
(3)ESRI.ArcGIS.Client.Bing.dll
支持Bing圖層和服務
(4)ESRI.ArcGIS.Client.Toolkit.dll
包含一系列的普通控件和導航,和地圖的交互。例如Toolbar,Navigation控件,MapTips控件,在CodePlex開源控件地址http://esrisilverlight.codeplex.com

 參考http://help.arcgis.com/en/webapi/silverlight/1.2/help/index.html

(二)安裝ArcGIS Server

 

ArcGIS API for Silverlight學習筆記(三):讓地圖Show出來

(1)新建一個Silverlight項目ArcGisSilerlight項目

(2)在Client段項目中添加ESRI.ArcGIS.Client.dll  

(3)在MainPage.xmal文件中添加以下的代碼

Map是控件,而ArcGISTiledMapServiceLayer是一個地圖的瓦片圖層,ID是本身區的一個名字,Url是地圖服務,這裏是ArcGIS的在線服務,你也發佈本身的瓦片圖層

複製代碼
<UserControl x:Class="ArcGisSilverlight.MainPage"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable
="d"
xmlns:esri
="clr-namespace:ESRI.ArcGIS.Client;assembly=ESRI.ArcGIS.Client"
d:DesignHeight
="300" d:DesignWidth="400">


<Grid x:Name="LayoutRoot">
<esri:Map x:Name="MyMap">
<esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/>
</esri:Map>
</Grid>
</UserControl>
複製代碼

就這樣地圖就顯示出來了

源代碼下載

 

ArcGIS API for Silverlight學習筆記(四):Map.Extent標籤指定地圖圖層初始化

     繼續上一節,咱們有時候要程序運行後,就顯示特定區域的地圖,這時咱們須要要 ArcGIS API for Silverlight中的Map控件的Extent標籤,下面以地圖加載時顯示中國地圖爲例

複製代碼
<UserControl x:Class="ArcGisSilverlight.MainPage"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable
="d"
xmlns:esri
="clr-namespace:ESRI.ArcGIS.Client;assembly=ESRI.ArcGIS.Client"
xmlns:esriGeometry
="clr-namespace:ESRI.ArcGIS.Client.Geometry;assembly=ESRI.ArcGIS.Client"
d:DesignHeight
="300" d:DesignWidth="400">

<!--Extent標籤
用來初始地圖的範圍,經過設置4格數值指定min x,min y,max x,max y
至關於於BingMap for Silverlight中的2個Location點Location(60,60) 和另外一點Location(13,140)來初始化地圖爲中國地圖
-->
<Grid x:Name="LayoutRoot">
<esri:Map x:Name="MyMap" Extent="60,60,140,13">
<esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/>
<!--<esri:Map.Extent>
<esriGeometry:Envelope XMin="661140" YMin="-1420246" XMax="3015668" YMax="1594451" >
<esriGeometry:Envelope.SpatialReference>
<esriGeometry:SpatialReference WKID="26777"/>
</esriGeometry:Envelope.SpatialReference>
</esriGeometry:Envelope>
</esri:Map.Extent>
-->
</esri:Map>
</Grid>
</UserControl>
複製代碼
相關文章
相關標籤/搜索