博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK地图范围设置
阅读量:6689 次
发布时间:2019-06-25

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

 

1.功能简介

    地图范围设置主要就是对图层的地图浏览控制,例如地图的放大、缩小、漫游、全图显示、1:1视图、比例尺等功能,能更好的与地图有一个互动的地图浏览体验。PIE SDK对地图范围设置主要利用ICommand命令或者ITool对对应功能命令的调用,调用简单易于实现。

2.功能实现说明

2.1. 实现思路及原理说明

第一步

创建对应的命令实例化对象

第二步

创建插件对象

第三步

调用OnClick方法触发事件

2.2. 核心接口与方法

接口/类

方法/属性

说明

PIE.SystemUI.ICommand

OnClick

点击事件

OnCreate

创建插件对象

 

 

 

PIE.Controls

MapZoomInTool

拉框放大构造函数

MapZoomOutTool

拉框缩小构造函数

PanTool

平移漫游构造函数

FullExtentCommand

全图显示构造函数

ZoomToNativeCommand

1:1显示构造函数

CenterZoomInCommand

中心放大构造函数

CenterZoomOutCommand

中心缩小构造函数

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/02.地图操作/01.地图范围设置

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif

视频路径

百度云盘地址下/PIE视频教程/02.地图操作/01.地图范围设置.avi

示例代码

1         ///   2         /// 地图放大事件  3         ///   4         /// 事件触发器  5         /// 事件参数  6         private void toolStripButton_ZoomIn_Click(object sender, EventArgs e)  7         {  8             ITool tool = new PIE.Controls.MapZoomInTool();  9             (tool as ICommand).OnCreate(mapControlMain); 10             mapControlMain.CurrentTool = tool; 11         } 12         ///  13         /// 地图缩小事件 14         ///  15         /// 事件触发器 16         /// 事件参数 17         private void toolStripButton_ZoomOut_Click(object sender, EventArgs e) 18         { 19             ITool tool = new PIE.Controls.MapZoomOutTool(); 20             (tool as ICommand).OnCreate(mapControlMain); 21             mapControlMain.CurrentTool = tool; 22         } 23  24         ///  25         /// 地图平移事件 26         ///  27         /// 事件触发器 28         /// 事件参数 29         private void toolStripButton_ZoomPan_Click(object sender, EventArgs e) 30         { 31             ITool tool = new PIE.Controls.PanTool(); 32             (tool as ICommand).OnCreate(mapControlMain); 33             mapControlMain.CurrentTool = tool; 34         } 35  36         ///  37         /// 全图显示事件 38         ///  39         /// 事件触发器 40         /// 事件参数 41         private void toolStripButton_FullExtent_Click(object sender, EventArgs e) 42         { 43             ICommand command = new PIE.Controls.FullExtentCommand(); 44             command.OnCreate(mapControlMain); 45             command.OnClick(); 46         } 47  48        ///  49        /// 中心缩小 50        ///  51        ///  52        ///  53         private void toolStripButton1_Click(object sender, EventArgs e) 54         { 55             ICommand cmd = new PIE.Controls.ZoomToNativeCommand(); 56 cmd.OnCreate(mapControlMain); 57             cmd.OnClick(); 58         } 59  60         ///  61         /// 中心放大 62         ///  63         ///  64         ///  65         private void toolStripButton_CenterZoomIn_Click(object sender, EventArgs e) 66         { 67             ICommand cmd = new PIE.Controls.CenterZoomInCommand(); 68             cmd.OnCreate(mapControlMain); 69             cmd.OnClick(); 70         } 71  72         ///  73         /// 中心缩小 74         ///  75         ///  76         ///  77         private void toolStripButton_CenterZoomOut_Click(object sender, EventArgs e) 78         { 79             ICommand cmd = new PIE.Controls.CenterZoomOutCommand(); 80             cmd.OnCreate(mapControlMain); 81             cmd.OnClick(); 82         } 83         ///  84         /// 地图1:1显示 85         ///  86         ///  87         ///  88         private void toolStripButton1_ZoonToNativeCmd_Click(object sender, EventArgs e) 89         { 90             ICommand cmd = new PIE.Controls.ZoomToNativeCommand(); 91             cmd.OnCreate(mapControlMain); 92             cmd.OnClick(); 93         } 94         ///  95         /// 地图比例尺  96         ///  97         ///  98         ///  99         private void tbn_MapScale_Click(object sender, EventArgs e)100         {101         double beforeMapScale = mapControlMain.ActiveView.DisplayTransformation.MapScale;          102          mapControlMain.ActiveView.DisplayTransformation.MapScale =50000;103          double lastMapScale= mapControlMain.ActiveView.DisplayTransformation.MapScale;104          MessageBox.Show(string.Format("修改前地图比例尺为:1:{0};\r\n修改后比例尺为:1:{1}", beforeMapScale, lastMapScale), "提示");         105             mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);                106         }
View Code

2.4. 示例截图

以地图放大和地图比例尺为例截图显示:

 

  

转载于:https://www.cnblogs.com/PIESat/p/10243167.html

你可能感兴趣的文章
线上处理Waiting for table metadata lock
查看>>
授之以渔-运维平台应用模块二(Vmware控制台篇)
查看>>
三对角矩阵
查看>>
判断是否是微信中打开网页
查看>>
单例模式的有缺点
查看>>
perl基础1
查看>>
chrome浏览器如何通过js判断是否安装了某扩展?
查看>>
奔驰的罪恶
查看>>
redhat 6.5 mysql主从同步
查看>>
js 变量、作用域和内存问题
查看>>
Android actionBar 修改背景色
查看>>
项目质量管理,人力资源管理作业
查看>>
Android中HttpClient网络请求
查看>>
我的友情链接
查看>>
Backbone
查看>>
asterisk架构
查看>>
python sys模块
查看>>
PHP基础(三)函数
查看>>
我的友情链接
查看>>
linux shell脚本的使用
查看>>