码迷,mamicode.com
首页 > 其他好文 > 详细

PIE SDK 鹰眼图

时间:2019-01-02 14:00:05      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:点击   open   pie   hid   onclick   技术分享   rac   type   ase   

 

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 鹰眼图

标签:点击   open   pie   hid   onclick   技术分享   rac   type   ase   

原文地址:https://www.cnblogs.com/PIESat/p/10208104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!