Sharpmap表现层控件扩展分析

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索鼠标
, 控件
, 函数
, c++ 函数平移缩放问题
, 方法
, html js cs...
SharpMap
表现层分析、winform 扩展控件、wpf 扩展控件、c 扩展控件、ajax扩展控件,以便于您获取更多的相关知识。

时间: 2024-11-15 20:22:14

Sharpmap表现层控件扩展分析的相关文章

js中SweetAlert.js 弹出层控件使用示例

今天给大家分享一个非常漂亮的弹出层控件:SweetAlert.js 首先看效果图: 成功提示:     失败提示:     确认框提示:     在线演示地址: 使用方法 swal("Here's a message!")   参数详解 参数 默认值 描述 title null(required) 窗口的名称.可以通过对象的"title"属性或第一个参数进行传递. text null 窗口的描述.可以通过对象的"text"属性或第二个参数进行传递

Android视图控件架构分析之View、ViewGroup_Android

在Android中,视图控件大致被分为两类,即ViewGroup和View,ViewGroup控件作为父控件,包含并管理着子View,通过ViewGroup和View便形成了控件树,各个ViewGoup对象和View对象就是控件树中的节点.在控件树中,以树的深度来遍历查找对应的控件元素,同时,上层控件负责子控件的测量与绘制,并传递交互事件. Android控件树: AndroidUI界面架构图: 一.测量View的工具类:MeasureSpec 1.MeasureSpec包含了测量的模式和测量的

Android视图控件架构分析之View、ViewGroup

在Android中,视图控件大致被分为两类,即ViewGroup和View,ViewGroup控件作为父控件,包含并管理着子View,通过ViewGroup和View便形成了控件树,各个ViewGoup对象和View对象就是控件树中的节点.在控件树中,以树的深度来遍历查找对应的控件元素,同时,上层控件负责子控件的测量与绘制,并传递交互事件. Android控件树: AndroidUI界面架构图: 一.测量View的工具类:MeasureSpec 1.MeasureSpec包含了测量的模式和测量的

ASP.NET MVC如何显示UserControl控件(扩展篇)

昨晚Insus.NET有怀旧一下<念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件>http://www.cnblogs.com/insus/p/3641610.html 那仅是小小尝试,还有很多不明的地方. 那一篇其中有Render用户控件ascx的.如今Insus.NET想重构它一下,让步其能在Action或是Razor语法中使用. 创建一个AscxUtility.cs,这们我们可以在应用程序中多个地方使用. 这样我们就可以重构一下昨晚那个public A

Android开发中include控件用法分析_Android

本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面设计,不是用一个xml布局就可以搞定的.当一个activity中的控件非常多的时候,所有的布局文件都放在一个xml文件中,很容易想象那是多么糟糕的事情!笔者通过自身的经历,用include控件来解决这个问题,下面是一个小例子,仅仅实现的是布局,没有响应代码的设计. user.xml文件内容如下: <

Android编程之Button控件配合Toast控件用法分析_Android

本文实例讲述了Android编程之Button控件配合Toast控件用法.分享给大家供大家参考,具体如下: 在本章教程中,我们将会学习Button控件的使用,同时顺便说一下Toast提示控件. 在Android程序开发中,我们使用最多的用户交互控件可能就是Button的了,而我们使用最多的事件估计也就是onclick事件了. 这些事件也是最简单的事件,我们一般通过google自带的API接口就可以调用了,我们具体看看怎么做吧. 第一步.新建一个工程Ep.Toast,活动和主视图名称我都使用默认的

Android基于CountDownView的时间控件扩展

首先,新年的一年里祝大家,心想事成,鸡年大吉.去年的时候,我们做时间控件的时候一直遗留一个问题那就是正计时控件一直没有好的解决方案,我们很想把CountDownView既支持正计时又能支持倒计时.基于这个想法,便有了今天这篇文章,原理不在介绍,其实很简单,主要是我们知道怎么用,此控件的优点有: * 实现了正计时倒计时的统一 * 优化了Adapter,不再绑定控件Id * 一个属性实现正倒计时 * 不在为具体的时间属性设置别名 具体用法 1.xml文件 属性 app:isCountUp="fals

Android开发中include控件用法分析

本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面设计,不是用一个xml布局就可以搞定的.当一个activity中的控件非常多的时候,所有的布局文件都放在一个xml文件中,很容易想象那是多么糟糕的事情!笔者通过自身的经历,用include控件来解决这个问题,下面是一个小例子,仅仅实现的是布局,没有响应代码的设计. user.xml文件内容如下: <

符合oo惯例的表现层控制 [曹晓钢]

控制 Hibernate的reference的副标题叫做:符合java惯例的O/R 持久化,这揭示了目前三层结构的重大问题,就是三层的不统一.到目前为止,仍然难于在web界面上实现C/S模式中"master-detail","lookup"的快捷的用户交互. 目前常见的web application的结构,包含web browser/application server/database.database占据主流的仍然是经典的E/R模型,这个模型是基于行集的,因此在