地圖客戶端地圖客戶端是用來(lái)顯示地圖和實(shí)現(xiàn)交互的,采用的技術(shù)和實(shí)現(xiàn)的方式多種多樣,有Flash,Silverlight,Javascript等等,此外,別忘了桌面客戶端也屬于其范疇。 而具體基于這些技術(shù)的第三方插件有很多,開(kāi)源的有如DeepEarth、SharpMap、Gmap.net、Greatmap、OpenLayer,如果細(xì)心的話,會(huì)發(fā)現(xiàn)提及的大多基于.net技術(shù)的,沒(méi)錯(cuò),個(gè)人偏向所致吧,對(duì)比過(guò)基于Deepzoom實(shí)現(xiàn)及Javascript實(shí)現(xiàn)的地圖效果后,我傾向于Deepzoom(Silverlight版地圖基本采用),當(dāng)然,如果說(shuō)考慮到用戶體驗(yàn)(要安裝瀏覽器插件),用Javascript或許會(huì)是更好的選擇。若了解原理,展現(xiàn)方式不同,內(nèi)在其實(shí)也大同小異的。簡(jiǎn)單描述下,僅作為參考:SharpMap對(duì)于桌面應(yīng)用更有名些,我對(duì)它最后一次了解也是很久之前了,現(xiàn)在不知道變成怎樣了,它集成了很多開(kāi)源項(xiàng)目,包括GDAL、.net版的JTS(NJTS)等,但是個(gè)人對(duì)其渲染效果和性能不怎么滿意。DeepEarth是比較有名的webClient,渲染效果不錯(cuò),但功能不足,需要自己開(kāi)發(fā)定制很多GIS常用功能。Gmap.net貌似比較強(qiáng)大,就是參考資料太少。OpenLayers是基于Javascript的……有興趣的可以了解一下……最后來(lái)個(gè)筆鋒一轉(zhuǎn),會(huì)不會(huì)覺(jué)得很坑?——我用的是arccgis api for silverlight,原因很簡(jiǎn)單,功能強(qiáng)大,足夠我使用…… 搭建DEMO
先來(lái)看看搭建Demo的效果圖:
silverlight實(shí)現(xiàn)
wpf實(shí)現(xiàn)
怎么實(shí)現(xiàn)的呢,步驟如下:
1、免費(fèi)注冊(cè)arcgis開(kāi)發(fā)者,下載Arcgis api for silverlight的SDK(我順便下載了Arcgis api for WPF的SDK),其實(shí)所謂的SDK,只要得到幾個(gè)DLL就行了,只要?jiǎng)e人有了,直接拷貝過(guò)來(lái)引用就可以了。注:若不喜歡,完全可以用DeepEarth來(lái)代替
2、建一個(gè)silverlight的項(xiàng)目,把DLL引用進(jìn)去,然后創(chuàng)建一個(gè)類GoogleMapLayer.cs,內(nèi)容如下,代碼比較好理解,也不寫(xiě)注釋了。特別留意一下GetTileUrl方法,采用的url是網(wǎng)上google瓦片服務(wù)地址,注釋掉的第一行url是本地緩存離線瓦片地圖,第二行url是第三節(jié)提到過(guò)的geoserver提供的wms服務(wù),也就是說(shuō)可以根據(jù)需求定制自己的地圖層。
[csharp] view
plaincopy
3、在MainPage.xaml(可以新建一個(gè)頁(yè)面)的Grid標(biāo)簽,加入以下內(nèi)容,至此一個(gè)擁有放大縮小、平移、滾輪支持的基本地圖瀏覽程序就完成了
|
|