因為以上的原因,當MapGuide的資料來源是上述的空間資料庫時,MapGuide studio會預設"你想要同時顯示三種型態"的資料,也就是像下圖這樣,擁有點、線、面的樣式設定。


恰巧今天又處理到這個問題,之前都是用筆記本來存放一些小技巧,今天剛好又要做一次,就順便截了圖。所以這篇主要就是要說明,我們要如何在使用Oracle Spatial跟SQL Spatial當空間資料來源時還是讓MapGuide保有正常的圖例顯示。
步驟:
1. 輸入http://localhost/mapguide2010/mapagent/index.html進到Web Tier Tests頁面。

2. 點選GetResourceContent功能。(輸入你要改變圖層的ResourceID,EX:Library://TPSW/Layers/LNLayerName.LayerDefinition)

3. 按下Submit,輸入MapGuide的帳密,就可以得到該圖層的XML檔案。(當然你也可以藉由程式來獲取XML檔)

4. 可以先嘗試把節點收起來,就可以發現一些很熟悉的設定。

5. 接下來你就可以依照你的需求,把不要的刪掉。比如說你只需要點型態,就把PointTypeStyle留下來,LineTypeStyle跟AreaTypeStyle刪掉。(我是建議不要在這邊對樣式做編輯,反正Studio有UI介面可以編輯。)

6. 接下來我們回到Web Tier Tests點選SetResource的功能。輸入剛剛匯出的ResourceID,並且選擇要匯回去的XML檔案。

7. 按下Submit,就可以回到Studio裡面看看結果。

通常我們使用Oracle Spatial跟SQL Spatial不太可能只有一個圖層需要做設定,難道要一個一個匯出來改完再匯回去嗎?你有兩個選擇:
1. 寫程式來批次,其實就是寫一個改變XML的程式。(可以參考改XML)
2. 第二個就是對匯出來的XML做一些小改變,就匯回去,節省匯出刪型態的時間。

沒有留言:
張貼留言