PIE SDK 鹰眼图

Posted piesat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PIE SDK 鹰眼图相关的知识,希望对你有一定的参考价值。

 

1. 功能简介

    鹰眼图,是GIS的一个基本功能,在鹰眼图上可以可以像从空中俯视一样查看地图框中所显示的地图在整个图中的位置。

    PIE SDK支持鹰眼图的功能实现;下面就具体介绍一下。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

在鹰眼图pannel内加载地图文档

第二步

当地图范围发生变化时MapHawkEyePmdControl_OnExtentUpdated(),鹰眼图发生变化事件

第三步

当点击鹰眼图是主地图发生相应操作事件MapHawkEyeControl_MouseDown()

2.2. 核心接口与方法

接口/类

方法/属性

说明

PIE.Carto.IPmdContents

 PanTo

 坐标平移

PIE.AxControls.MapControl

ToMapPoint

将屏幕坐标转换为地图坐标

TrackRectangle

鼠标绘制矩形

IPolygonElement

Geometry

设置或获取元素的空间信息

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/13.小工具集锦/鹰眼图

数据路径

百度云盘地址下/PIE示例数据/地图文档/world.pmd

视频路径

百度云盘地址下/PIE视频教程/13.小工具集锦/鹰眼图.avi

示例代码

技术分享图片
 1   //下面主要介绍的是鹰眼图和主地图相关事件的代码
 2 PIE.Carto.IPmdContents m_BuddyControl;
 3          /// <summary>
 4         /// 鹰眼图鼠标按下事件
 5         /// </summary>
 6         /// <param name="sender">触发器</param>
 7         /// <param name="e">触发器参数</param>
 8         private void MapHawkEyeControl_MouseDown(object sender, MouseEventArgs e)
 9         {
10             if (e.Button == MouseButtons.Left)
11             {
12                 IPoint point = m_MapHawkEyeControl.ToMapPoint(e.X, e.Y);
13                 m_BuddyControl.ActiveView.PanTo(point);//等价于MapControl.CenterAt(point);             
14             }
15             else if (e.Button == System.Windows.Forms.MouseButtons.Right)
16             {
17                 m_DrawElement.Geometry = null;
18                 IEnvelope envelope = m_MapHawkEyeControl.TrackRectangle();
19                 m_BuddyControl.ActiveView.Extent = envelope;
20             }
21             m_BuddyControl.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
22         }
23         /// <summary>
24         /// 主地图范围发生变化,鹰眼图显示框
25         /// </summary>
26         /// <param name="sender"></param>
27         /// <param name="sizeChanged"></param>
28         /// <param name="newEnvelope">底图范围</param>
29         private void MapHawkEyePmdControl_OnExtentUpdated(object sender, bool sizeChanged, IEnvelope newEnvelope)
30         {
31             if (!m_IsSyn) return;
32             if (m_BuddyControl.ActiveView.FullExtent == null) return;
33             if (m_MapHawkEyeControl.ActiveView.FullExtent == null) return;
34             m_DrawElement.Geometry = newEnvelope as IGeometry;            m_MapHawkEyeControl.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
35         }
View Code

2.4.示例截图

技术分享图片 

以上是关于PIE SDK 鹰眼图的主要内容,如果未能解决你的问题,请参考以下文章

Arcgis使用教程ARCGIS地图制图之添加鹰眼图及样式设计

cesium 入门开发系列地图鹰眼功能(附源码下载)

openlayers小案例(输入地名查询拖动图层切换图层透明度鹰眼图层显示与隐藏定位放大缩小)新手必备

Android 百度鹰眼轨迹SDK(v2.1.6)

Android 百度鹰眼轨迹SDK(v2.1.6)

PIE SDK应用掩膜中将二值图像的0和1值进行转换