[发明专利]一种基于WPF和GDI+分层绘制地图的方法有效
申请号: | 201410423803.8 | 申请日: | 2014-08-26 |
公开(公告)号: | CN104156480B | 公开(公告)日: | 2017-10-13 |
发明(设计)人: | 胡晓楠;李欣荣;李宽荣;高勇 | 申请(专利权)人: | 天津市普迅电力信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 天津盛理知识产权代理有限公司12209 | 代理人: | 韩奎勇 |
地址: | 300384 天津市西*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于WPF和GDI+分层绘制地图的方法,包括步骤有(1)当地图启动刷新的时候,首先组件加锁,提醒调用组件不可用;(2)将绘制地图分为最上面的WPF绘制层、第二层的GDI+矢量图层绘制层、第三层的实时栅格服务层及最下面的瓦片地理背景服务层,分别绘制(3)在第二层GDI+矢量图层的绘制及第三层实时栅格服务层的绘制刷新完毕之后解锁,即将地图MapLocked的属性设置为False,分层绘制的地图刷新完毕。本发明采用WPF和GDI+混合的渲染技术和多线程技术实现地图展示,可以展现动画操作,利用WPF自带的特效效果提高用户体验,性能明显提高。 | ||
搜索关键词: | 一种 基于 wpf gdi 分层 绘制 地图 方法 | ||
【主权项】:
一种基于WPF和GDI+分层绘制地图的方法,其特征在于包括步骤如下:(1)当地图启动刷新的时候,首先组件加锁,提醒调用组件不可用,添加MapLocked的属性,开始刷新的时候设置MapLoaded为True;(2)将绘制地图分为最上面的WPF绘制层、第二层的GDI+矢量图层绘制层、第三层的实时栅格服务层及最下面的瓦片地理背景服务层,分别绘制;①最上面WPF绘制层的绘制,通过主线程绘制WPF绘制层上面的二维矢量图形,使用WPF自带的System.Windows.Shapes.Path对象对绘制痕迹反馈和地图元素进行绘制,其具体操作过程为:将地图中的绘制痕迹对象集合和地图中地图元素对象集合进行地理坐标到屏幕坐标的转换,再根据已经坐标转换后的对象集合生成实体的System.Windows.Shapes.Path对象集合放到图层Canvas容器中,最终完成该次绘制操作;②第二层GDI+矢量图层的绘制,该图层的绘制采用多线程,及GDI+绘制图片加载到该层中的方式,绘制过程分成两个步骤进行,第一步是对矢量数据的形状进行绘制,第二步是对于标注的绘制,最终绘制在一个图片上,放到Canvas图层上;③第三层实时栅格服务层的绘制,该图层的绘制采用多线程,及异步获取,且能支持多个栅格地图服务的方式,当地图完成视野变化的时候,异步从网络下载属于该视野的矢量栅格图片,放到Canvas图层上;④最下面瓦片地理背景服务层的绘制,该层在从网络获取地图的时候,采用线程池异步下载获取当前可见范围内所需的瓦片图片,在地图可见范围变化时,利用WPF帧动画实时异步刷新该图层获取瓦片,同时缓存下载获取的瓦片图片;(3)在第二层GDI+矢量图层的绘制及第三层实时栅格服务层的绘制刷新完毕之后解锁,即将地图MapLocked的属性设置为False,分层绘制的地图刷新完毕;(4)获得目标视图范围,以该范围作为每个图层的参数,各层在自己的线程中独立渲染,互相不干扰,每个层渲染完毕,即时结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津市普迅电力信息技术有限公司,未经天津市普迅电力信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410423803.8/,转载请声明来源钻瓜专利网。
- 上一篇:网页变化检测方法及装置
- 下一篇:一种网页文本摘要生成方法和装置