2010年10月29日 星期五

MapGuide_如何以程式碼開關圖層

第二個問題是:「能不能透過外部給MapGuide傳值,來控制MapGuide的圖層開關?」,我想這個問題分為兩個部份,一個是如何利用程式碼來開關圖層,另一個問題是如何從外部下指令操作MapGuide框架。

為了讓自己找文章也方便,所以分開寫兩篇,首先是怎麼樣以程式碼開關圖層,方法很簡單,直接利用MapGuide於Layer所提供的方法SetVisible(bool)就可以做到。
關閉圖層:
Map.GetLayers().GetItem("city").SetVisible(false);

開啟圖層:
Map.GetLayers().GetItem("city").SetVisible(true);

但如果你只是依照上面的方式執行,會發現並不會產生效果,原因是你必須要儲存地圖,也就是執行Map.Save();

Map.GetLayers().GetItem("city").SetVisible(false);
Map.Save();

所以利用程式碼開關圖層要執行三件事情:
1. 設定是否顯示(Map.GetLayers().GetItem("city").SetVisible(false);)
2. 儲存地圖(Map.Save();)
3. 重整地圖(mapFrame.Refresh();)

沒有留言:

張貼留言