zoukankan      html  css  js  c++  java
  • 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. 示例截图

     

  • 相关阅读:
    DB2 v8.2,v9.1,v9.5,v9.7下载地址及详细安装图解
    Windows Server 2008 R2遗忘管理员密码后的解决方案
    weblogic的域模式(生产模式、开发模式)
    Linux shell编程 字符串拼接
    Linux rsync命令详解
    oracle 日志组管理
    T-SQL编程规范
    数据库编程起别名的3中方式
    windows server下安装SSHD服务
    网线中的5类线、超5类线、6类线有什么区别?
  • 原文地址:https://www.cnblogs.com/PIESat/p/10242644.html
Copyright © 2011-2022 走看看