支援的外掛
在 O’view MapServer 下,共有以下四種類型的外掛可供自訂:
- DoCommand 自訂操作供使用者呼叫,實作DoCmdBaseClass
- Account 實作帳號登入功能,實作AccountBaseClass
- FeatureInfo 提供查詢 WMTS 圖素屬性,實作FeatureInfoBaseClass
- Snap鎖點功能,實作SnapBaseClass
以上幾種外掛,僅有DoCommand可多個指令同時起作用;而 Account、FeatureInfo、Snap 同一時間內只能啟動一個。
當 MapServer 在啟動或 Plugin 目錄被重新設定時,會重新開始搜尋指定目錄下的 dll 檔,根據其實作的 BaseClass 建立實體並將其初始化。
然而,在載入dll的過程中如果拋出了例外,當下讀取中的class將會被捨棄。
各個外掛都是獨立的,即使其中的class名稱重複也不影響讀取。但如果設定的指令重複,後面讀取的會蓋過前面讀取的。
如果DoCommand執行過程中拋出了例外,呼叫者將會收到HTTP 500 Internal Server Error的回應,而MapServer會將此例外會寫入log。
若使用Web作為前端,為了在呼叫外掛相關功能時能使cookie正確被設定,請在client各個新增圖層處加上proxy引數。
[warning] 注意事項:
所有外掛在編譯時須注意輸出的dll檔與安裝的MapServer必須是同樣位元組(32位元或64位元)的版本,否則讀取外掛時會失敗。