[发明专利]基于Sharpmap的通过鼠标滚轮控制地图缩放方法有效
申请号: | 201410072331.6 | 申请日: | 2014-02-28 |
公开(公告)号: | CN103824255B | 公开(公告)日: | 2017-02-22 |
发明(设计)人: | 张万顺;王永桂;彭虹 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06T3/40 | 分类号: | G06T3/40;G06F9/44 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙)42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sharpmap 通过 鼠标 滚轮 控制 地图 缩放 方法 | ||
1.一种基于Sharpmap的通过鼠标滚轮控制地图缩放方法,其特征在于,基于下述两个预备步骤:
预备步骤1:给定基于Sharpmap的变量,分别是:
变量1:缩放前地图所在的视野范围M,定义M在SharpMap中为SharpMap地图控件MapView的Envelope;
变量2:定义M的左下角顶点坐标O(xo,yo)与右上角顶点T(xt,yt);
变量3:定义缩放时鼠标光标所在地图的位置为H(xh,yh);
变量4:定义H距M上下左右边界的绝对距离dx1,dx2,dy1,dy2;
变量5:定义缩放后的视野范围W及其左下角和右上角顶点A(xa,ya)和D(xd,yd);
预备步骤2,基于上述变量,构建缩放模型,具体方法是:根据缩放前后所涉及的地图变量,得到视野范围的上下左右坐标点(xa,ya,xd,yd);所述(xa,ya,xd,yd)基于以下公式:
通过上式得到的xa,ya,xd,yd坐标值,代入BoundingBox,即可构建缩放后的视野区域W,即:
BoundingBox W=BoundingBox(xa,ya,xd,yd);
基于上述两个预备步骤,基于Sharpmap的通过鼠标滚轮控制地图缩放方法具体步骤如下:
步骤1,调用Sharpmap库函数加载地图,构建Mapview视图区,并引用地图加载函数Mapview.addlayer在视图区加载地图,确定地图的最大边界视野范围Envelope,即视野范围M;
步骤2,构建鼠标滚轮事件并获取当前鼠标光标所在的屏幕位置坐标,该过程传入的鼠标事件参数e,确定鼠标滚轮向前滚动时为放大,向后滚动时为缩小;然后调用Sharpmap坐标转换函数将屏幕坐标转换为Sharpmap地图的地理坐标,传入当前鼠标位置的屏幕坐标,并获得当前鼠标位置的地理坐标H(xh,yh);
步骤3,依据控制点到缩放前后视野范围上下左右距离之间比例不变的原理,构建地图缩放算法模型wheelZoom;
步骤4,确定每次鼠标滚动的缩放幅度并代入滚轮缩放算法公式,求得缩放后地图新的视野范围,具体是将H(xh,yh),O(xo,yo),T(xt,yt),缩小幅度extent和判断鼠标滚轮滚动方向参数e.Delta传入wheelZoom函数,求得缩放后的视野范围W的左下角顶点坐标A(xa,ya)和右上角顶点坐标D(xd,yd);
步骤5,调用Sharpmap库函数将地图缩放至新的视野范围W中,完成地图缩放。
2.根据权利要求1所述的基于Sharpmap的通过鼠标滚轮控制地图缩放方法,其特征在于,所述步骤3的具体方法是:
步骤3.1,根据调用SharpMap的库函数获取的最外边界视野M,通过M的上下左右属性计算出M的控制左下角顶点O(xo,yo)与右上角顶点T(xt,yt)以及M的宽度Lw,并确定缩小幅度为extent=Lw/n,n>0以及H到M边界的距离;
步骤3.2,构建自定义缩放算法模型wheelZoom;该模型即预备步骤2所述模型,函数的系数依次是当前鼠标位置点的x,y值,缩放前视野M的左、下、右、上边界值,缩放的幅度和缩小与放大的判断变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410072331.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:风机主轴校定装置
- 下一篇:电动增压风洞多级发电装置