PIE SDK地图图层控制

 

1. 功能简介

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

2. 功能实现说明

2.1. 实现思路及原理说明

第一步spa

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

第二步视频

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

第三步教程

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

2.2 . 核心接口与方法

接口/类接口

方法/属性ci

说明it

 

 

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             //一、获取数据路径
 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             //二、获取layer
13             ILayer layer = LayerFactory.CreateDefaultLayer(openFileDialog.FileName);
14             //三、添加图层并刷新
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. 示例截图

 

相关文章
相关标签/搜索