博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(二十一)WebGIS中鹰眼的实现思路
阅读量:7258 次
发布时间:2019-06-29

本文共 906 字,大约阅读时间需要 3 分钟。

 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:

1.背景

鹰眼功能是WebGIS中的一种常见功能,利用一些开源的框架实现起来非常方便。当然,按照博主从底层谈WebGIS这套系列的风格,在这里还是跟大家一起探讨探讨不借助第三方框架开发鹰眼的简单实现思路。

2.鹰眼功能分析

                       

3.实现思路设计

3.1主图平移时与鹰眼图的联动

a.主图进行平移时,在平移完成后抛出地图平移事件,该事件中包含真实平移地理长度(GeoPanX,GeoPanY)参数。

b.鹰眼图监听到该平移事件,获取到平移地理长度后,换算出此时对应鹰眼地图的平移屏幕坐标(screenPanX,screenPanY),与鹰眼地图canvas的XY坐标进行相加,实现鹰眼地图的联动。

c.鹰眼地图平移超出缓存瓦片范围时,需要重新获取瓦片。

3.2主图缩放时鹰眼图范围重绘

a.主图缩放时会抛出地图缩放事件,该事件中会包含此时主图屏幕范围对应的真实地理范围参数(GeoScreenLeft,GeoScreenTop,GeoScreenRight,GeoScreenBottom)以及此时的地图级别(maplevel)。

b.鹰眼图监听该缩放事件,获取到此时主图的真实地理范围,以及主图地图级别。

c.判断此时主图级别是否满足绘制主图返回的参数设置,如果满足,则在鹰眼中绘制此时的主图范围。

d.将此时的主图地理范围坐标转换为鹰眼上的屏幕坐标,在鹰眼上进行绘制。

3.3鹰眼范围框拖拽是主图联动

a.鹰眼的范围框监听鼠标事件,响应拖拽操作。

b.范围框拖拽完毕后,会将拖拽的真实地理长度(eagleGeoPanX,eagleGeoPanY)以参数的形式随同鹰眼平移事件一起被触发。

c.主图监听鹰眼平移事件,获取到鹰眼真实平移地理长度后进行换算成与主图对应的屏幕平移坐标,对主图进行平移。

d.主图平移后,再次触发主图平移事件,如3.1中流程所描述,最后鹰眼也会进行平移联动。

3.4注意事项

a.鹰眼上地图不能相应鼠标事件(缩放、平移)。

b.鹰眼上的范围框颜色应该可以定制。

4.成果展示

 

 

                                                             -----欢迎转载,但保留版权,请于明显处标明出处:

 

你可能感兴趣的文章
atitit. java queue 队列体系and自定义基于数据库的队列总结o7t
查看>>
android Handler
查看>>
[转]MVC之 自定义过滤器(Filter)
查看>>
Android组件系列----Activity组件详解
查看>>
SqlDateTime overflow / SqlDateTime 溢出
查看>>
Mono 3.8发布:性能进一步改进,可伸缩性提升
查看>>
ECSHOP站内页面跳转,避免死链
查看>>
Java串口通信具体解释
查看>>
合适使用结构体
查看>>
profile bashrc bash_profile 之间的区别和联系
查看>>
java中接口的定义与实现
查看>>
转response.sendRedirect()与request.getRequestDispatcher().forward()区别
查看>>
黑客和敏捷开发
查看>>
servlet笔记
查看>>
iBATIS 3 试用手记 - The FUTURE - ITeye技术网站
查看>>
SQL Server Profiler使用教程,通俗易懂才是王道
查看>>
Source Insight基本使用和快捷键
查看>>
基于Flume的美团日志收集系统(一)架构和设计【转】
查看>>
15个专业版响应式WordPress主题
查看>>
33个与众不同的Web表单设计
查看>>