PIE SDK地圖範圍設置

 

1.功能簡介

    地圖範圍設置主要就是對圖層的地圖瀏覽控制,例如地圖的放大、縮小、漫遊、全圖顯示、1:1視圖、比例尺等功能,能更好的與地圖有一個互動的地圖瀏覽體驗。PIE SDK對地圖範圍設置主要利用ICommand命令或者ITool對對應功能命令的調用,調用簡單易於實現。ide

2.功能實現說明

2.1. 實現思路及原理說明

第一步函數

建立對應的命令實例化對象spa

第二步插件

建立插件對象3d

第三步code

調用OnClick方法觸發事件orm

2.2. 核心接口與方法

接口/類視頻

方法/屬性對象

說明blog

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};\r\n修改後比例尺爲:1:{1}", beforeMapScale, lastMapScale), "提示");         
105             mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);                
106         }  
View Code

2.4. 示例截圖

以地圖放大和地圖比例尺爲例截圖顯示:

 

  

相關文章
相關標籤/搜索