適用於arcgis api for silverlight/wpf
都知道ArcGis是個灰常不錯滴東東,最近做項目的也在用這個,不多說了,描述一下需求:
要求:根據數據標識在gis上以不同的圖標進行渲染,且組合方式很多。使用wpf實現
arcgis默認是以點的方式進行數據渲染的,下面是官方的截圖,喵的這個點與地圖太靠色,不太好看。

額,當然arcgis是"無所不能"滴,數據是可以以其它方式進行渲染,如下圖

但呈現的比較單一就是說只是根據一個標識進行呈現,如此地圖人口密度大於1萬使用A符號,大於10萬使用B符號諸如此類。但需求要求在一個符號上呈現多種形態,顯然使用arcgis提供的基礎功能是不能實現滴,只有自己想辦法了。
原來想是把所有的組合都定義成資源,然后在程序中判斷標識,滿足條件就加載相應的符號,但由於組合太多老紙不想這么寫,所以果斷放棄。
由於服務返回的數據是Graphic的集合,可以附加數據屬性,所在我在客戶端加載出Graphic時自定了幾個屬性,然后根據標識條件更改屬性的值,最后加載統一的符號模版即可實現。下圖是Graphic的渲染模版,紅框中是在客戶端自定義的屬性。
GisGraphicsLayer.Renderer = App.Current.TryFindResource("BtsIcoRenderer") as IRenderer;


最終在gis上呈現的渲染效果如下圖,這種方式類似於插件,可隨時更換或增加。

