当前位置: 首页 > news >正文

ArcObjects学习教程

一、ArcObjects概述

1、AO的定义

ArcObjects简称AO,是指基于Microsoft COM技术所构建的一系列COM组件集,是Esri公司ARCGIS家族中应用程序Desk Top、ArcGIS Server、ArcGIS Pro等软件开发的基础组件模型库。

AO是基于微软的COM技术来构建的,因此,它具有很强的开放性和扩展性。开放性是指开发环境上的选择可以有VBA·、VB、C#、VC++、DELPHI、JAVA等多种支持COM标准的开发工具;扩展性是指AO组件没有提供的功能,如需要定义一种新的数据格式或者实现新的功能,可以利用COM技术来写自己的COM组件,对AO组件库进行扩展补充。

2、AO的开发模式和方法

  • 基于Desk Top的开发模式

        VBA\Python\Addin

  • 基于ArcGIS Mobile的开发模式

        Windows  Mobile

  • 基于ArcGIS Engine的开发模式

        c#\JAVA\VB\VC

  • 基于ArcGIS API的移动端开发模式

        Android\iOS

  • 基于ArcGIS Server的开发模式

        Javascript\Flex

3、AO支持的文件和数据类型

  • Document File

        MXT File、 MXD File

  • Data File

        Vector Data、Raster Data、Tin

        Prj

        Relationship

  • Layer File

        Lyr File

4、AO的特点

  • Class

        Abstract

        Inheritance

        Encapsulation

        Polymorphism

  • Object

        Properties

        Methods

        Events

  • Interface

5、AO的三种类

  • 抽象类(Abstract class)
  • 组件类(Co class)
  • 类(Class)

6、AO三种类之间的关系

  • 继承关系(Inheritance)(子类与父类之间的关系)
  • 关联关系(Assosiation)(类的对象之间的关系)
  • 实例化关系(Initialization)(类的对象应用自己内部的方法来创建另外一种类的对象)
  • 组合关系(Composition)(一个或多个类的对象是另外一种类的对象的组成部分)

二、Geometry类库

1、Geometry类库概述

Geometry库处理存储再要素类或其他图形元素中的要素的几何体或形状,绝大部分与用户交互的基本几何对象为点、多点、折线和多边形,除了那些顶层的实体作为建筑物群的折线和多边形的集合体外,还有一些构成这些几何体的基本元素,他们为线段、路线和圆环。

GIS中的实体指的是现实世界中的要素;现实世界中要素的位置由一个带有空间参考的几何图形来定义。空间参考对象,包括投影坐标和地理坐标系统,都包括在Geometry类库中,开发者可以通过添加新的空间参考和投影来扩展空间参考系统。

2、Geometry及其相关的类

  • Geometry类

        Geometry类是抽象类,它是其他几何图形类的父类,它实现了IGeometry接口

  • Envelope类

        Envelope是组件类,通过其最小和最大的x,y坐标定义一个矩形。因此,Envelope类总是与其空间参考正交的。Envelope类还可以定义最小和最大z值和m值,这取决于所实现的zaware和Izaware接口。

IEnvelope接口

  • Point类

        point类是二维的,可以选择度量值,高度和ID属性。

IPoint接口

  • Segment类

        Segment是抽象类,它表示从起点到终点之间能用函数表达的段,主要包括四种类型的段

        ①BezierCurve(贝塞尔曲线)

        ②CircularArc(圆弧段)

        ③ElipticArc(椭圆弧段)

        ④Line(直线段)

  • Path类

        Path是组件类,它表示一系列连接的段(Segment)。

  • Ring类

        Ring是组件类,它表示一个闭合的连接段序列所限定的区域;可以选择每个顶点处的测量、高度和ID属性。

  • Polyline类

        polyline是组件类,它表示一个路径的有序集合;可以选择度量值、高度和ID属性。

  • Polygon类

        Polygon是组件类,它表示按包含关系排序的环的集合;可以选择度量值、高度和ID属性。Polygon包含内环(Interior Ring)和外环(Exterior Ring)。

  • SpatiaIReferenceEnvironment及其相关的类

        SpatiaIReferenceEnvironment是组件类,它用于创建各种空间参照对象。

ISpatiaIReferenceFactory接口

  • GeographicCoordinateSystem类

        GeographicCoordinateSystem是组件类,它用于创建地理坐标系统。

IGeographicCoordinateSystem接口

  • ProjectedCoordinateSystemClass类

        ProjectedCoordinateSystemClass是组件类,它用于创建一个投影坐标系统。

IProjectedCoordinateSystem接口

  • Datum类

        Datum是组件类,它用于创建水平参照基准对象。

IDatum接口

  • Spheroid类

        Spheroid是组件类,它用于创建球体。

ISpheroid接口

  • Projection类

        Projection是组件类,它用于创建地图投影。

IProjection接口

相关文章:

  • CouchDB 可观测最佳实践
  • Centos上搭建 OpenResty
  • 什么是 AI 人工智能?什么是机器学习?什么是深度学习?三者啥关系
  • 企业级 Go 多版本环境部署指南-Ubuntu CentOS Rocky全兼容实践20250520
  • 利用朴素贝叶斯对UCI 的 mushroom 数据集进行分类
  • CentOS 7上部署BIND9 DNS服务器指南
  • RustDesk CentOS自建中继节点
  • CentOS 7上搭建高可用BIND9集群指南
  • 将 /dev/vdb1 的空间全部合并到 /dev/mapper/centos-root(即扩展 CentOS 的根分区)
  • MyBatis 动态 SQL 标签详解教程:_set_、_trim_、_sql_、_choose_、_when_
  • 数据库外键
  • 测试W5500的第3步_使用ioLibrary库创建TCPServer
  • Flink并行数据源:ClickSource实现详解
  • RISC-V 开发板 MUSE Pi Pro USB 测试(3.0 U盘,2.0 UVC摄像头)
  • 边缘智能与量子计算双轮驱动:IVX 开启实时 AI 开发新维度
  • Runtipi - 开源个人家庭服务器管理工具
  • 通义灵码助力JavaScript开发:快速获取API与智能编码技巧
  • 【信息系统项目管理师】第12章:项目质量管理 - 26个经典题目及详解
  • 绿盟防火墙6.0.5版本—接入网监平台
  • 对冲策略加仓止损盈思路
  • 《远山淡影》改编电影入围戛纳关注单元,张怡微谈石黑一雄
  • 区域、学校、课堂联动,上海浦东让AI素养培育贯穿基础教育全学段
  • 权威访谈丨国家疾控局就《世界卫生组织大流行协定》答记者问
  • 海口警方通报“司机驾车拖行虐猫”:系意外,未发现故意虐猫行为
  • 昆明一小区火灾调查报告:七旬夫妇身亡,生前拾荒存放大量可燃物
  • 英伟达回应在上海设立新办公空间:正租用一个新办公空间,这是在中国持续深耕的努力