(二十一)WebGIS中鹰眼的实现思路

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

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.成果展示

 

 

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

 

时间: 2024-07-28 17:03:39

(二十一)WebGIS中鹰眼的实现思路的相关文章

(二十)WebGIS中图层树功能的设计和实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在GIS的桌面工具中,比如arcgis desktop或者Supermap desktop等工具,均会有图层控制栏工具,即LayerController.通过勾选图层控制栏中的图层选择框,可以实现图层是否展示等,并且还可以设置该图层的相关属性.                         详细需求如下: a.图层列表展示 b.通过图层列表控制图层要素的展

(十二) WebGIS中矢量图层的设计

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在前几章中我们已经了解了什么是矢量查询.屏幕坐标与地理坐标之前的转换以及要素的设计,有了这些知识,这一章里我们终于可以进行矢量图层的设计了. 在Catalog里创建一个FeatureClass时,我们能够选择是创建点图层或者线图层或者面图层等.所谓点图层,即该图层中的要素只能是点,其他几个图层顾名思义,也是如此.那么在WebGIS中,我们同样也可以按照Arc

(十一)WebGIS中要素(Feature)的设计

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在GIS中元素一般分为点元素,线元素,面元素以及symbol元素(特殊的点元素)等.与此对应,图层可以分为点图层,线图层,面图层以及标注图层等.从第9章到第10章,我给大家讲解了什么是矢量数据.矢量数据的来源.矢量数据的构造.以及矢量数据中的地理坐标与屏幕坐标之间的转换.在了解了这些概念和算法以及流程后,这一章我们将开始讲解设计出一个矢量图层前的最后一步,设

JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML_javascript技巧

一.IE中的XML DOM支持 IE对XML的支持是基于ActiveX的MSXML库. 1.DOM创建 对每个新版本的MSXML,都会创建出不同的XML DOM对象,所以尽量选择新的XML DOM版本. 2.载入XML 载入XML分两种,即: 载入XML字符串:loadXML(xml字符串) 载入xml文件:load(xml文件路径).默认情况下文件载入是异步的,如果要改为同步把asynce特性改为true即可.异步载入文件时要用到readyState和onreadystatechange事件处

二十一世纪的计算 | 康奈尔大学教授Fred B. Schneider开讲计算机安全

雷锋网(公众号:雷锋网)按:本文根据Fred B. Schneider教授在韩国"Computing in the 21st Century 2016"大会上所做报告<A Science of Cyber – Security?>以及微软亚洲研究院首席研究员刘铁岩博士的解说编辑整理而来,在未改变原意的基础上略有删减. Fred B. Schneider是康奈尔大学计算机科学系系主任及Samuel B. Eckert讲席教授.他是美国科学进步协会(1992年),美国计算机协会

[剑指Offer]5.二维数组中的查找

题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路 [算法系列之三十三]杨氏矩阵 代码 /*--------------------------------------- * 日期:2015-07-19 * 作者:SJF0115 * 题目: 5.二维数组中的查找 * 网址:http://www.nowcoder.com/books/coding-interviews/a

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十一)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十一)主位式地图移动模式 是否期待了很久?本节就来个重量级的做为开场白吧:主位式地图移动模式.何谓主位式地图移动模式,即以主角为中心,它的移动带动着所有对象包括地图.物体对象.其他玩家.怪物等等的相对移动,这些对象的移动都是以主角为参照物的.最典型例子莫过于当前流行的MMORPG了,你控制的角色在地图中永远是处于窗口正中心的位置(除了8个角落外),这就是主位式地图移动模式(如下图). 有朋友开始焦躁了:我的妈

二维数组中的查找

题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 解题思路 从右上角元素开始遍历,若小于目标,则删除整行:若大于目标,则删除整列.每次执行都会删除一行或一列,最多执行2n次. 实现代码 class Solution { public: bool Find(vector<vector<int> > array,int target) { int rend =

剑指offer系列之三:在二维数组中查找元素

题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 由于题目条件的成立,所以使得这道题可以使用对角线的方法完成,可以从右上角的元素考虑,如果目标查找元素小于右上角的元素,那么不可能在右上角元素所在的列,如果目标大于剩余列的右上角的元素,那么不可能在该右上角元素所在的行.依照这个规律,就可以完成目标元素的查找(参考剑指offer书中的思路).基于此,我写出如下的代码(已被