Skip to content
/ WLib Public

Personally compiled C#.NET + ArcObject/ArcEngine common code base, most of which are packaged as static methods or extension methods, including detailed comments

Notifications You must be signed in to change notification settings

Windr07/WLib

Repository files navigation

WLib

简介

  • WLib是一组对C#.NET和ArcGIS Engine开发常用代码进行封装的基础库和控件库;

主要内容

  1. Excel读写 2. Word读写 3. pdf操作
  • WinForm控件库
    • GIS控件
      1. 地图展示组合控件(MapViewer)
      2. 属性表控件
      3. 按属性查询控件
      4. 地图导航工具栏
      5. 工作空间选择控件
      6. 样式选择控件
      7. 数据选择控件(AddData)
    • 非GIS控件
      1. 环境检测控件
      2. 简化版的Windows资源管理器
      3. 目录树控件、文件/目录选择等对话框扩展
      4. 文件查看器(程序嵌入器)
      5. ListBox控件扩展
      6. 消息框
      7. 路径选择框
      8. 插件管理控件
      9. 窗体查询
      10. WinForm的全局异常处理
      11. 实体数据编辑控件
      12. 注册机

项目说明

解决方案包含若干个项目(代码库),核心库为WLibWLib.ArcGis

代码库 说明 内容
WLib 通用基础库 DbHelper、Windows API、硬件信息获取、压缩与解压缩、反射、DataTable转对象(简单ORM)、插件功能等
WLib.ArcGis ArcGIS基础库 封装的ArcObject代码集,内容包含GP调用、拓扑、空间查询、地图查询、标注、注记、元素增删改查、制图出图、样式、专题渲染、坐标系判读转换、点线面几何创建、控件组合联动、许可初始化、shp/gdb/mdb/sde/sql/oledb连接和表格/矢量/栅格数据增删改查、数据统计、数据转换、类型转换等
WLib.Envir 环境检测库 检测.NET版本、ArcGIS版本、Windows操作系统版本的代码
WLib.Files excel、Word、pdf读写库 包含NPOIAppLibrary.dllMicrosoft.Office.Interop.Excel操作xls或xlsx;使用Microsoft.Office.Interop.Word读写doc和docx;使用itextsharp操作pdf文档
WLib.Gdal GDAL帮助库 开源GIS库GDAL(Geospatial Data Abstraction Library)的Helper代码
WLib.WinCtrls WinForm控件库 一些自定义的WinForm控件库
WLib.WinCtrls.ArcGisCtrl WinForm+ArcGIS控件库 一些自定义的基于ArcEngine的WinForm控件库
WLib.WinCtrls.Dev DevExpress WinForm控件库 一些自定义的DevExpressWinForm
WLib.WinCtrls.Dev.ArcGisCtrl DevExpress WinForm +ArcGIS控件库 一些自定义的基于ArcEngine的DevExpress WinForm控件

使用

下载源码,或通过nuget引用:

Install-Package WLib
Install-Package WLib.ArcGis
Install-Package WLib.Envir

环境

开发环境

  • Visual Studio 2019

  • .NET Framework 4.0(以WLib.WinCtrls开头的4各项目库为.NET Framework 4.6)

  • ArcGIS Engine 10.2(包含"ArcGis"关键字的项目,下载源码修改项目引用可切换为其他ArcGIS 版本)

调用组件

部分项目引用了若干第三方开源代码库,包括但不限于:

简单示例

以下为简单使用示例,更多说明请参阅[WIKI](WLib/Doc/ ../../wikis)

    //使用以下对象需引用:
    //using WLib.ArcGis.Data;
    //using WLib.ArcGis.GeoDatabase.FeatClass;
    //using WLib.ArcGis.GeoDatabase.WorkSpace;
    //using WLib.Database;
    //using WLib.Database.DbBase;

    //---------示例1:获得区域内的河流的总长度----------
    //1、直接根据图层的路径获得 IFeatureClass 对象
    IFeatureClass featureClass = FeatureClassEx.FromPath(@"c:\World.mdb\River");//获取河流图层
    //2、通过QueryFeatures扩展方法,查询图层中的数据
    double sumRiverLength = 0.0;//计算河流的总长度
    featureClass.QueryFeatures(@"XZQDM = '440000'", feature => sumRiverLength += feature.ToDouble("RiverLength"));


    //---------示例2:复制图层----------
    IWorkspace workspace = WorkspaceEx.GetWorkSpace(@"c:\World.mdb");
    workspace.GetFeatureClassByName("River").CopyStruct(workspace, "NewRiver", "河流");

    //---------示例3:数据查询----------
    //数据库连接和SQL查询的方式获取shp、mdb、gdb、dbf数据
    DbHelper dbHelper1 = DbHelper.GetShpMdbGdbHelper(@"c:\River.dbf");
    System.Data.DataTable dataTable = dbHelper1.GetDataTable(@"select * from River where RiverName =  'Pearl River'");

About

Personally compiled C#.NET + ArcObject/ArcEngine common code base, most of which are packaged as static methods or extension methods, including detailed comments

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages