• 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. 示例截图

     

  • 相关阅读:
    ASP.NET 篇
    .NET Core 篇
    JS-CSS篇
    IIS使用篇
    WebService篇
    电脑使用篇
    数据库使用篇
    正则表达式篇
    Linux学习篇
    Leetcode 198. 打家劫舍 dp
  • 原文地址:https://www.cnblogs.com/PIESat/p/10242644.html
Copyright © 2020-2023  润新知