PIE SDK地图范围设置

 

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         /// <summary>
  2         /// 地图放大事件
  3         /// </summary>
  4         /// <param name="sender">事件触发器</param>
  5         /// <param name="e">事件参数</param>
  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         /// <summary>
 13         /// 地图缩小事件
 14         /// </summary>
 15         /// <param name="sender">事件触发器</param>
 16         /// <param name="e">事件参数</param>
 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         /// <summary>
 25         /// 地图平移事件
 26         /// </summary>
 27         /// <param name="sender">事件触发器</param>
 28         /// <param name="e">事件参数</param>
 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         /// <summary>
 37         /// 全图显示事件
 38         /// </summary>
 39         /// <param name="sender">事件触发器</param>
 40         /// <param name="e">事件参数</param>
 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        /// <summary>
 49        /// 中心缩小
 50        /// </summary>
 51        /// <param name="sender"></param>
 52        /// <param name="e"></param>
 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         /// <summary>
 61         /// 中心放大
 62         /// </summary>
 63         /// <param name="sender"></param>
 64         /// <param name="e"></param>
 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         /// <summary>
 73         /// 中心缩小
 74         /// </summary>
 75         /// <param name="sender"></param>
 76         /// <param name="e"></param>
 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         /// <summary>
 84         /// 地图1:1显示
 85         /// </summary>
 86         /// <param name="sender"></param>
 87         /// <param name="e"></param>
 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         /// <summary>
 95         /// 地图比例尺 
 96         /// </summary>
 97         /// <param name="sender"></param>
 98         /// <param name="e"></param>
 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};
修改后比例尺为:1:{1}", beforeMapScale, lastMapScale), "提示");         
105             mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);                
106         }  
View Code

2.4. 示例截图

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

  

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