PIE-SDK V5.2 For .NET(2)

PIE-SDK V5.2 For .NET(2)

1、PIE SDK框架

PIE SDK采用分层架构的设计方式,各层之间相互独立且向下依赖。在这里插入图片描述
基础层:操作系统和依赖的三方库。目前PIE SDK For .Net只支持Windows操作系统下Visual Studio 2010及更高版本IDE进行二次开发。
通用层:Utility库是PIE框架中最底层的一个库,提供了可以被其他组件库应用的对象和方法。如PIE基础对象类PIEObject、通用数学运算类、数值单位转换等。
数据层:包括Geometry库和DataSource库。。Geometry库包含了核心几何形体对象的定义,如点、线、面等。除此之外,该库还包含了空间参考对象的定义。DataSource库包含的对象是用于读取和操作地理数据库的。这个库中包含了核心的地理数据对象,如FeatureDataset、Feature、Field、RasterDataset、RasterBand、ColorTable等。
显示层:显示层包含Display库和Carto库。Display库包含了显示图形所需要的对象。包括Symbol对象和DisplayTransformation对象。Carto库包含了为数据表达而服务的各种组件对象,如MapDocument、PageLayout、Map、Layer、Render、Element等。
组件层:包括SystemUI和AxControls库,他们是用PIE SDK做二次开发最常用的两个库。SystemUI库定义了被PIE用户界面组件所使用的对象,如ICommand、ICommandControl、ITool、 ITrackerCancel等接口。AxControls库包含了在程序开发中可以使用的可视化组件对象,MapControl(地图控件)、PageLayoutControl(制图控件)、TOCControl(图层树控件)等,这些是用户操作地图的主要入口。
算法层:包括SystemAlgo和CommonAlgo库。SystemAlgo库主要服务于图像处理功能的开发,定义了ISystemAlgo接口和AlgoFactory类。ISystemAlgo接口是算法的基础接口,它定义了算法实现的规则,AlgoFactory对象实现了对各种算法的同步或异步调用的管理和监视。CommonAlgo库其包含了PIE桌面版中几乎所有的图像处理的算法。
插件层:主要包括Controls库。Controls库主要定义了一些PIE已经实现的Command、Tool和Control,如地图缩放、元素绘制、量算等。
界面层:包括Framework库和主应用程序PIEApplication,是PIE的最顶层的设计,其主要为PIE的桌面版软件服务,开发者在开发的过程中很少使用到。

2、常用控件与接口

2.1 地图控件MapControl

MapControl实现了IMapControl接口,其定义了MapControl常用的属性和方法。IMapControl是在PIE.AxControls 命名空间下。
1、常用属性
在这里插入图片描述
期中最常用到的属性就是IMapControl.FocusMap 属性。可以设置或者获取当前地图控件显示的地图,是一个IMap类型。

IMap map = mapControlMain.FocusMap;//mapControlMain是地图控件

2、常用方法
在这里插入图片描述
(1)刷新地图
// 摘要: 地图刷新
// 参数:
// dpType: 刷新类型
public virtual void PartialRefresh(ViewDrawPhaseType dpType);

mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);//刷新地图

(2)加载图层
① AddLayerFromFile()
// 摘要: 通过文件添加图层
// 参数:
// filePath:文件路径
// toIndex: 添加到的Index
// 返回结果: 是否成功
public virtual bool AddLayerFromFile(string filePath, int toIndex);

mapControlMain.AddLayerFromFile(@"E:\PIE二次开发\2020 PIE-SDK二次开发组件包\PIE SDK NET 201906\02.样例数据\World\World.tif", 0);//栅格图层
mapControlMain.AddLayerFromFile(@"E:\PIE二次开发\2020 PIE-SDK二次开发组件包\PIE SDK NET 201906\02.样例数据\China\国界线.shp", 1);//矢量图层
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);//刷新地图

②AddLayer()
// 摘要: 添加图层
// 参数:
// layer:图层对象
// toIndex: 添加到的Index
public virtual void AddLayer(ILayer layer, int toIndex);

ILayer rasterLayer = LayerFactory.CreateDefaultLayer(@"E:\PIE二次开发\2020 PIE-SDK二次开发组件包\PIE SDK NET 201906\02.样例数据\World\World.tif");//创建图层
ILayer shpLayer = LayerFactory.CreateDefaultLayer(@"E:\PIE二次开发\2020 PIE-SDK二次开发组件包\PIE SDK NET 201906\02.样例数据\China\国界线.shp");
mapControlMain.AddLayer(rasterLayer , 0);//添加图层
mapControlMain.AddLayer(shpLayer , 0);
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);//刷新地图

(3)删除图层
①删除指定索引的图层:DeleteLayer()
// 摘要: 删除图层
// 参数:
// index: 图层编号
public virtual void DeleteLayer(int index);

 mapControlMain.DeleteLayer(0);//删除索引为0的图层
 mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);//刷新地图

②删除地图控件上的所有图层:ClearLayers()
// 摘要: 清除所有图层
public virtual void ClearLayers();

mapControlMain.ClearLayers();//清楚所有图层
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);//刷新地图

2.2 图层树控件TOCControl

TOCControl(图层树控件)以树状列表的形式展示地图的图层结构,并且允许用户来调整地图的显示样式、查看地图和图层的基本信息、控制地图的图层顺序、调整地图的显示范围等。
图层树控件一般会和一个地图控件关联起来使用,这样对地图控件进行的操作都会同步更新到图层树控件中。

public MainForm()
        {
            InitializeComponent();
            tocControlMain.SetBuddyControl(mapControlMain);//绑定地图控件
        }

2.3 制图控件PageLayoutControl

PageLayoutControl(制图控件)封装了一个PageLayout对象,并提供了一些属性、方法和事件,用来控制制图的外观、管理制图元素(比例尺、指北针、图例)、输出或打印制图成果等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值