PIE SDK地图图层控制

 

1. 功能简介

    地图图层控制就是图层的相关操作,如地图图层数据的添加、删除、移动和拖拽等功能。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

图层添加是调用AddLayer方法将图层添加到地图中

第二步

图层删除是调用Delete方法将指定索引的图层删除

第三步

图层移动是调用MoveLayerTo方法将指定的图层移动到指定的索引位置

2.2 . 核心接口与方法

接口/类

方法/属性

说明

 

PIE.AxControls.MapControl

 

AddLayer

添加图层

DeleteLayer

删除图层

MoveLayer

移动图层到指定位置

PIE.Carto.LayerFactory

CreateDeFaultLayer

创建默认图层

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/02.地图操作/02.地图图层控制

数据路径

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

视频路径

百度云盘地址下/PIE视频教程/02.地图操作/02.地图图层控制.avi

示例代码

 1        /// 添加图层
 2         /// </summary>
 3         /// <param name="sender"></param>
 4         /// <param name="e"></param>
 5         private void btn_AddLayer_Click(object sender, EventArgs e)
 6         {
 7             //1、获取数据路径
 8             OpenFileDialog openFileDialog = new OpenFileDialog();
 9             openFileDialog.Title = "加载数据";
10             openFileDialog.Filter = "Shape(*.shp)|*.shp|RasterData(*.tiff)|*.tiff;*.tif";
11             if (openFileDialog.ShowDialog() != DialogResult.OK) return;
12             //2、获取layer
13             ILayer layer = LayerFactory.CreateDefaultLayer(openFileDialog.FileName);
14             //3、添加图层并刷新
15             mapControlMain.ActiveView.FocusMap.AddLayer(layer, 0);
16             mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
17         }
18         /// <summary>
19         /// 删除图层
20         /// </summary>
21         /// <param name="sender"></param>
22         /// <param name="e"></param>
23         private void btn_DeleteLayer_Click(object sender, EventArgs e)
24         {
25             if (mapControlMain.FocusMap.LayerCount < 1) return;
26             //删除索引为0图层
27             ILayer layer = mapControlMain.ActiveView.FocusMap.GetLayer(0);
28             mapControlMain.ActiveView.FocusMap.DeleteLayer(layer);
29         }
30 
31         /// <summary>
32         /// 移动图层
33         /// </summary>
34         /// <param name="sender"></param>
35         /// <param name="e"></param>
36         private void btn_MoveLayer_Click(object sender, EventArgs e)
37         {           
38             if (mapControlMain.FocusMap.LayerCount < 2) return;
39             ILayer layer = mapControlMain.ActiveView.FocusMap.GetLayer(0);
40             mapControlMain.ActiveView.FocusMap.MoveLayer(layer,1);          
41         }
View Code

2.4. 示例截图

 

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