从底层开发谈WebGIS中实现地理长度固定的可视窗口的思路和方法

文章版权由做者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/缓存

1.具体问题

在公司某边界城市的项目中,对方提出由于本身的地图安全度要求比较高,须要实现如下两个需求:安全

a.地图的可视范围永远控制在6平方千米之内。blog

b.系统退出时自动删掉全部缓存到本地的瓦片。get

第二个问题比较简单,不作讨论,这里主要谈谈第一个问题解决的思路。博客

2.问题分析

a.不能经过单纯的固定地图大小。由于是地理长度固定,而不是屏幕可视长度固定,换句话说是指,在不一样的地图级别下,可视屏幕长度是变化的,由于此时固定的地理长度对应的可视长度是变化的。因此,单纯的经过调整地图可视屏幕大小是行不通的。原理

b.在可视窗体内,能够进行地图平移。甲方的要求不是仅仅指在地图每一个级别显示固定可见的6平方千米,而是指在能够拖动地图的条件下,只显示可见的6平方千米。扩展

3.解决思路

解决这个问题我考虑了两种方案:请求

a.每次控制地图的瓦片请求范围,即只请求以屏幕中心地理坐标为中心点扩展出来的6平方千米地理范围的瓦片。而后将该瓦片请求出来后,换算出各瓦片应该在地图上的屏幕坐标,而后进行添加便可。方法

b.利用遮罩原理,一样以屏幕中心地理坐标为中心点扩展出一个6平方千米的地理范围矩形,而后再将此矩形的四角转换成此时的屏幕坐标,用屏幕四角坐标绘制出此时的遮罩,添加到地图上。im

4.具体实现

这里我采用了第二种方法,有兴趣的朋友能够对第一种方法也进行下实验。如下我给出第二种实现方法中具体实现流程:

                       

5.例子图

 

 

                                                                                     ——欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

相关文章
相关标签/搜索