程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Sharpmap表現層控件擴展分析

Sharpmap表現層控件擴展分析

編輯:關於.NET

本文使用Sharpmap 0.9。

Sharpmap 作為優秀的基於vs2005的GIS解決方案,大家也對其了解甚多,我就不多說了。在實際使用 中,特別是web控件,作者並沒有暴露很多編程方法,本文基於此進行討論。

在項目開發中,我們希望在鼠標拖拽時起碼要實現幾個功能:平移、拉框縮放、拉框選擇。通過更改 Sharpmap.UI.dll的方式修改,可以實現。

首先,增加鼠標拖拽選擇模式屬性MouseMode,並增加enum,代碼形如:

public enum eMouseMode

        {

            Pan,

            Zoom,

            Select

        }

        private eMouseMode _MouseMode;

        /**//// <summary>

        /// Set Mouse down,up, move event to pan or zoom mode

        /// </summary>

        [Category("Behavior")]

        [DefaultValue(0)]

        [Description("設置鼠標拖拽方式:即設置Mousedown,Mousemove,Mouseup事件的處理方

式。默認值為Pan。")]

        public eMouseMode MouseMode

        {

            get { return _MouseMode; }

            set { _MouseMode = value; }

        }

其次,將屬性暴露給JS,讓客戶端可以調用。

通過修改GenerateClientScripts函數,增加setvarsScript變量定義。

拉框需要有html控件,我這裡使用div。

首先,在GenerateMapBox函數中生成控件,使用Controls.add方法增加進來。

其次,在JS中注冊。

通過修改JS文件的SharpMap_Init函數和CS文件的GenerateClientScripts函數,將增加的控件暴露給 JS使用。

至此我們在前後台均可以使用新增加的控件和方法。

然後,就可以在SharpMap_MouseDown(Up, Over)函數裡面寫代碼了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved