欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap FreeTalk
   您现在位于: 首页技术专栏开源GIS → 正文
Sharpmap 表现层控件 扩展分析
07-11-20 08:52:47 作者:老老狼 出处:anrerbo.cnblogs.com

本文使用 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; }
        }

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) 函数里面写代码了。

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  

    关于我们友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
     
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.
     

                   滇ICP备05006901号