地圖範圍設置主要就是對圖層的地圖瀏覽控制,例如地圖的放大、縮小、漫遊、全圖顯示、1:1視圖、比例尺等功能,能更好的與地圖有一個互動的地圖瀏覽體驗。PIE SDK對地圖範圍設置主要利用ICommand命令或者ITool對對應功能命令的調用,調用簡單易於實現。ide
第一步函數 |
建立對應的命令實例化對象spa |
第二步插件 |
建立插件對象3d |
第三步code |
調用OnClick方法觸發事件orm |
接口/類視頻 |
方法/屬性對象 |
說明blog |
PIE.SystemUI.ICommand |
OnClick |
點擊事件 |
OnCreate |
建立插件對象 |
|
PIE.Controls |
MapZoomInTool |
拉框放大構造函數 |
MapZoomOutTool |
拉框縮小構造函數 |
|
PanTool |
平移漫遊構造函數 |
|
FullExtentCommand |
全圖顯示構造函數 |
|
ZoomToNativeCommand |
1:1顯示構造函數 |
|
CenterZoomInCommand |
中心放大構造函數 |
|
CenterZoomOutCommand |
中心縮小構造函數 |
項目路徑 |
百度雲盤地址下/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 } |
以地圖放大和地圖比例尺爲例截圖顯示: