[发明专利]基于Sharpmap的通过鼠标滚轮控制地图缩放方法有效
申请号: | 201410072331.6 | 申请日: | 2014-02-28 |
公开(公告)号: | CN103824255B | 公开(公告)日: | 2017-02-22 |
发明(设计)人: | 张万顺;王永桂;彭虹 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06T3/40 | 分类号: | G06T3/40;G06F9/44 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙)42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及基于Sharpmap的通过鼠标滚轮控制地图缩放方法,其步骤为首先调用Sharpmap库函数加载地图,获得当前的视野范围Envelope;然后构建鼠标滚轮事件并获取当前鼠标光标所在的屏幕位置坐标,调用Sharpmap坐标转换函数将屏幕坐标转换为Sharpmap地图的地理坐标;其次确定每次鼠标滚动的缩放幅度并代入滚轮缩放公式,求得缩放后地图新的视野范围,最后调用Sharpmap库函数将地图缩放至新的视野中完成地图缩放。本发明方法简单,创新性地基于人眼视觉需要,填补了sharpmap缺乏滚轮缩放的空白,大幅度完善了sharpmap地图显示功能,提高了地图操作的方便性和流畅性。 | ||
搜索关键词: | 基于 sharpmap 通过 鼠标 滚轮 控制 地图 缩放 方法 | ||
【主权项】:
一种基于Sharpmap的通过鼠标滚轮控制地图缩放方法,其特征在于,基于下述两个预备步骤:预备步骤1:给定基于Sharpmap的变量,分别是:变量1:缩放前地图所在的视野范围M,定义M在SharpMap中为SharpMap地图控件MapView的Envelope;Envelope是SharpMap中的BoundingBox对象,BoundingBox是一个SharpMap定义缩放区域的类;变量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)基于以下的滚轮缩放算法公式:Lx表示视野M的下边界在横轴方向的长度,通过上式得到的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中,完成地图缩放。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410072331.6/,转载请声明来源钻瓜专利网。
- 上一篇:风机主轴校定装置
- 下一篇:电动增压风洞多级发电装置