使用c#開發mapserver之三mapObj

 說到 mapObj ,首先要了解的就是 mapfile mapfile mapserver 的核心,所有的數據,符號等配製信息均在這裏記錄,它其實就是一個工程文件。要做好 mapserver 開發,首要的步驟就是熟悉 mapfile ,熟練地掌握了 Mapfile 才能配出美觀大方的地圖。在 MapServer 的官方網站上有最新的 Mapfile 介紹: http://mapserver.org/mapfile/index.html#mapfile 。國內也有一些好心人翻譯的中文版,但大部分版本比較老,開源的東西變化的比較快,要掌握第一手的資料,最好還是去官網了 ~


對於剛起步學習得人來說,可以使用 gmap 中的 mapfile 文件和數據,具體的下載地址在: http://www.maptools.org/dl/gmap-ms46.zip ,該 mapfile 對應的 mapserver 版本是 4.6 有點老,但對學習來說夠用了。在新版本的 mapserver 中打開可能會有些錯誤,按照錯誤提示修改一下就可以使用。


mapscript 中操作 mapfile 是通過 mapObj 對象來實現的。 mapObj 對象是 mapscript 的核心對象,它就像一個容器,包含了 mapfile 中的所有配置信息, mapfile 中的每一項都可以在 mapObj 對象中找到對應方法或者屬性。簡單介紹幾個 mapObj 中常用的方法,這裏用到的 mapfile 都是以 gmap 中的爲例。


Ø         打開新建 mapfile

mapscript 打開 Mapfile 也就是打開工程文件的意思,方法很簡單,只需要在定義 mapObj 對象時傳入 mapfile 文件的路徑即可。


       mapObj pMap = new mapObj (@"D:/Work/gmap/htdocs/gmap75.map" );

    如此便可以打開一個mapfile, 將其內容填充到mapObj 對象之中。如果mapfile 文件的路徑爲空,系統就會默認創建一個新的空mapObj 對象,使用默認的參數來對其進行初始化。


    mapObj pMap = new mapObj ("" );

    最好將打開mapfile 的代碼放到try-catch 結構中,這樣的話,如果打開mapfile 文件打開失敗,就可以通過Exception 變量來捕獲錯誤信息。通過Exception 可以捕獲到非常詳細的mapfile 錯誤信息,這是一個查找mapfile 錯誤的好方法。


Ø         保存 mapfile

    通過mapObjsave 方法可以將mapObj 對象保存爲一個mapfile 文件,無論是我們從文件中打開的Mapfile 還是新創建的mapfile 文件,都可以使用該方法保存。通過以下方法,可以將mapObj 對象中的內容保存到c:/mapfile.map 文件裏。

    int i = pMap .save (@"c:/mapfile.map" );


Ø         生成地圖

    打開或者新建Mapfile 之後,可以通過mapObj 對象來輸出地圖,將mapfile 中的配置信息轉化爲一張圖片。具體方法也很簡單。

    imageObj pImage = pMap .draw ();

    pImage .save (@"c:/testpic.jpg" , pMap );


    通過draw 方法返回一個imageObj 對象。可以將該對象保存爲一個圖片。 輸出地圖的尺寸、圖片格式、圖片質量、地圖背景色等等,均可以在mapObj 對象中進行設置,例如要輸出一個800*600 的地圖,可以在執行輸出draw 函數之前如下設置:

    pMap .width = 800;

pMap .height = 600;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章