码迷,mamicode.com
首页 > 数据库 > 详细

PIE SDK打开GDB、Dwg数据

时间:2018-12-19 12:59:05      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:layer   添加   教程   文件   文本   span   pie   focus   order   

 

1.      功能简介

目前不同的GIS软件平台具有自己独特支持的数据格式,如ESRI的File GeoDataBase和Personal GeoDataBase、MapInfo的mif数据、AutoCAD的DWG数据、Google的Kml和Kmz数据等,PIE对这些常用软件的数据格式都进行了支持,能够顺利的进行浏览查看。

2.      功能实现说明

2.1              数据格式介绍

File GeoDataBase和Personal GeoDataBase是ESRI的本地数据存储格式,其中File GDB以文件方式存储,Personal GDB则为一个MS-Access 的mdb数据库, FGDB较PGDB具有更高的效率、更大的数据支持空间、更广的运行平台。

 

DWG是AutoCAD的数据格式,它采用点、线、面、文本组合存储的方式存储。

2.2              实现思路及原理说明

第一步

通过文件路径打开数据集

第二步

进行多数据集接口转换

第三步

通过多数据集创建多图层

2.3              核心接口与方法

接口/类

方法

说明

DataSource.DatasetFactory

OpenDataset

打开数据集

Carto.LayerFactory

CreateDefaultMultiLayer

创建多图层

 

CreateDefaultLayer

创建图层

2.4              示例代码

项目路径

百度云盘地址下/PIE示例程序/04.打开GDB数据[X1] 

数据路径

百度云盘地址下/PIE示例数据/矢量数据/FGDB/China.gdb

百度云盘地址下/PIE示例数据/矢量数据/PGDB/China.mdb

百度云盘地址下/PIE示例数据/矢量数据/DWG/China.dwg

视频路径

百度云盘地址下/PIE视频教程/04.打开GDB数据.avi

示例代码

(方法一)打开File GeoDatabase

FolderBrowserDialog fb = new FolderBrowserDialog();

    fb.Description = "File GDB(*.gdb) | *.gdb";

    if (fb.ShowDialog() != DialogResult.OK)

        return;

    //打开数据集,当GDB中只有一个图层或无图层时,均返回空值

    IMultiDataset multiDataset = DatasetFactory.OpenDataset(fb.SelectedPath, OpenMode.ReadOnly) as IMultiDataset;

 

    if (multiDataset == null)

{

    //创建图层

        ILayer player = PIE.Carto.LayerFactory.CreateDefaultLayer(fb.SelectedPath);

        if(player == null)

            return;

// 添加图层到地图并刷新

        mapControlMain.FocusMap.AddLayer(player);

        mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);

    }

    else

    {

        //创建图层

        IMultiLayer multiLayer = LayerFactory.CreateDefaultMultiLayer(multiDataset);

        if (multiLayer == null)

            return;

        // 添加图层到地图并刷新

        mapControlMain.FocusMap.AddLayer(multiLayer as ILayer);

        mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);

}

(方法二)打开Personal GDB和Dwg

OpenFileDialog openFileDialog = new OpenFileDialog();

    openFileDialog.Filter = "Personal GDB数据|*.mdb|Dwg数据|*.dwg";

    if (openFileDialog.ShowDialog() != DialogResult.OK)

        return;

    //创建数据集

    IMultiDataset multiDataset = PIE.DataSource.DatasetFactory.OpenDataset(openFileDialog.FileName,OpenMode.ReadOnly) as IMultiDataset;

    if (multiDataset == null)

        return;

 

    //创建图层

    IMultiLayer multiLayer = PIE.Carto.LayerFactory.CreateDefaultMultiLayer(multiDataset);

    if (multiLayer == null)

        return;

    // 添加图层到地图并刷新

    mapControlMain.FocusMap.AddLayer(multiLayer as ILayer);

    mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);

2.5              示例截图

 

 


 [X1]

1、根据PIEMapApplicaiton,补充好案例示例教程,项目命名为PIEDemo_OpenGDBFile

PIE SDK打开GDB、Dwg数据

标签:layer   添加   教程   文件   文本   span   pie   focus   order   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!