ArcGISEngine基础开发教程.pdf

上传人:文*** 文档编号:92262540 上传时间:2023-06-02 格式:PDF 页数:187 大小:15.78MB
返回 下载 相关 举报
ArcGISEngine基础开发教程.pdf_第1页
第1页 / 共187页
ArcGISEngine基础开发教程.pdf_第2页
第2页 / 共187页
点击查看更多>>
资源描述

《ArcGISEngine基础开发教程.pdf》由会员分享,可在线阅读,更多相关《ArcGISEngine基础开发教程.pdf(187页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、ArcGIS Engine基 础 开 发 教 程(0)目 录 本 帖 最 后 由 fx lc o c o于 2009-7-7 11:08编 辑 1创 建 第 一 个 ArcGIS Engine桌 面 应 用 程 序.62 几 何 对 象 与 空 间 参 考.153 地 图 和 地 图 布 局.444 图 层 符 号 化.645 地 图 查 询.916.空 间 分 析.1107 地 图 输 出.121、下 周 讲 推 出 第 三 章 和 第 四 章 内 容。我 只 是 给 大 家 介 绍 了 入 门 的 知 识 以 及 经 验,最 重 要 的 还 是 自 己 敲 代 码 感 悟。很 多 人 是

2、不 熟 悉 ArcGISDesktop就 开 始 从 网 上 Down代 码 修 改 代 码 开 始 了 自 己 的 开 发 之 旅,包 括 我,我 大 学 时 代 是 Maplnf。的 粉 丝,一 直 没 学 过 ArcGIS。这 是 非 常 不 科 学 的,因 为 ArcGISDesktop就 是 从 A0开 发 起 来 的,你 只 有 掌 握 了 ArcGISDesktop的 使 用,才 能 很 容 易 理 解 A0接 口 提 供 的 功 能。实 际 上 ArcGIS Engine二 次 开 发 说 白 了 就 是 在 ArcGISDesktop所 提 供 的 功 能 和 业 务 相 结

3、 合 进 行 的 创 新 性 开 发。所 以 熟 悉 ArcGISDesktop以 及 ArcGIS数 据 模 型 对 学 习 ArcGIS Engine二 次 开 发 非 常 重:要!祝 大 家 学 习 愉 快!ArcGIS Engine基 础 开 发 教 程(1)创 建 第 一 个 ArcGIS Engine桌 面 应 用 程 序 本 帖 最 后 由 fx lc o c o于 2010-3-9 0 9:5 2编 辑 ESRI BBS GIS大 讲 堂 首 发,转 载 请 注 明 出 处 1创 建 第 一 个 ArcGIS Engine桌 面 应 用 程 序 ArcGIS Engine9.3

4、 提 供 了 丰 富 的 GIS组 件 方 便 用 户 快 速 的 定 制 开 发 一 个 GIS应 用 程 序,无 需 写 代 码 即 可 实 现 GIS数 据 加 载,地 图 操 作 等 功 能 甚 至 可 以 实 现 高 级 编 辑 以 及 空 间 分 析 功 能。接 下 来 使 用 ArcGIS Engine93 提 供 了 MapControl Application模 块 来 创 建 第 一 个 ArcGIS Engine桌 面 应 用 程 序,并 为 桌 面 应 用 应 用 程 序 提 供 编 辑 功 能。1.1目 标 1.创 建 第 一 个 ArcGIS Engine桌 面 应

5、 用 程 序 2.为 应 用 程 序 添 加 编 辑 功 能。1.2 准 备 工 作 1.IDE:Visual Studio 2005/20082.ArcGIS Engine Developer kit 9.33.制 作 ArcGIS实 验 数 据 地 图 文 档 MXD1.3 设 计 流 程 图创 建 第 一 个 ArcGIS Engine桌 面 应 用 程 序 1.4 制 作 地 图 文 档 在 ArcM ap中 加 载 数 据 后,点 击 保 存 生 成 个*.m xd地 图 文 档,如 图 1 所 示:图 11.5 创 建 第 一 个 ArcGIS Engine桌 面 应 用 程 序

6、在 Visual Studio2008 中 新 创 建 项&选 择 dArcGISREnginedMapControl Application,点 击 确 定,如 图 2 所 示:图 2可 以 看 到 在 Visual Studio中 看 到 在 新 创 建 的 项 目 中 自 动 加 载 了 ToolBarControlTocControl LicenseControl MapContro 四 个 ArcGIS Engine 控 件 以 及 一 个.NETToolStripMenuItem菜 单 控 件,如 图 3 所 示:家 AfcEngine Controls Application图

7、31.6加 载 MXD地 图 文 档 数 据 单 击 F5键 运 行 程 序,然 后 单 击 打 开 MXD地 图 文 档 按 钮 打 开 MXD地 图 文 档,如 图 4所 示:图 4可 以 看 到 应 用 程 序 把 MXD地 图 文 档 加 载 到 MapControl地 图 上,可 以 使 用 ToolbarControl提 供 的 常 用 GIS功 能 如:放 大,缩 小,信 息 查 询 等 功 能。如 图 5 所 示:图 51.7为 应 用 程 序 添 加 编 辑 功 能 在 应 用 程 序 设 计 模 式 卜 右 键 单 击 ToolbarControl,单 击 属 性 选 项

8、弹 出 ToolbarControl属 性 对 话 框,单 击 Items选 项 卡,单 击 Add按 钮 弹 出 Controls Commands对 话 框,单 击 Toolset选 项 卡,选 择 Feature Editors选 项,拖 动 到 属 性 对 话 框 工 具 栏 的 指 定 位 置。如 图 6 所 示“Arcfngine Controls AppikationFK(D 查 看 于 顶 层 8)%置 于 ys(s)arControlIContrc快 速 添 加 Editor功 能 示 意 图 ActiveX-关 于 i选*MainForm.M 物 切。“(Y)X*D)性 拖

9、 动 FeatureEditing匚 具 集 到 8 版 m)。-M1TH IMMCS:7 T T T tR右 键 单 击 Toolbarcontrol点 击 属 性 Thc4 trw lm选 择 Toolset选 项 卡 单 击 Add按 钮,弹 出 ControlsCommands 对 话 框 Test 123图 6L 8 体 验 使 用 编 辑 功 能 运 行 应 用 程 序,可 见 工 具 条 多 了 一 个 和 ArcMap中 功 能 类 似 的 编 辑 工 具 集,开 始 对 面 图 层 进 行 编 辑 创 建 一 个 新 的 面 图 元,如 图 7 所 示。图 7综 上 GIS应

10、 用 开 发 人 员 通 过 使 用 ArcGIS Engine可 以 快 速 创 建 自 定 义 GIS应 用 程 序。3.jpg(38.28 KB)新 建 项 目 项 目 典(P):模 板(T):fN iTFram ew ork3,E 叵 Visual C#WindowsWebOffice敢 据 库 ArcGlSEngineReportingWCFWorkflow测 试 共 他 语 百 其 他 项 目 类 型 测 试 项 目 Visual S tu d io已 安 装 的 模 板 三 Windows Application 索 Console Application3 Class libr

11、ary J GiobeControl ApplicationMapControl Application 二 搜 索 联 矶 模 板-ArcGIS Engine 基 础 开 发 教 程(2)学 习 几 何 对 象 与 空 间 参 考 本 帖 最 后 由 fx lc o c o于 2009-5-24 16:27 编 辑 2.1目 标 1.熟 悉 ArcGIS EngineGeometry模 型,通 过 程 序 构 建 常 用 几 何 对 象 2.熟 悉 空 间 参 考 3.通 过 野 外 测 量 点 构 建 一 个 polygonshapefile功 能 开 发 2.2 准 备 工 作 1.ID

12、E:Visual Studio2005/20082.ArcGIS EngineDeveloper kit 9.33.自 造 一 份 包 含 X,Y坐 标 的*.txt文 本 文 档 数 据(即 野 外 测 量 点)12评 分 次 数 lucika.china炜 仔 278835491yishuiyaoyaowsjunfang收 藏 分 享 评 分 努 力 不 一 定 成 功,放 弃 就 一 定 失 败。学 习 是 一 种 信 仰(Inlearning wetrust)!回 复 引 用 订 阅 报 告 道 具 TOP2,口 发 表 于 2 0 0 9-5T 3 22:19 只 看 该 作 者 2

13、.3Geometry主 要 几 何 对 象 模 型 图 fx lc o c o版 主 帖 子 1546精 华 14o 6 y 0图 1G eom etry是 ArcGIS Engine中 使 用 最 为 广 泛 的 对 象 集 之 一,用 户 在 创 建、删 除、编 辑 和 进 行 地 理 分 析 的 时 候,就 是 处 理 一 个 包 含 几 何 形 体 的 矢 量 对 象;除 了 显 示 要 素 意 外,控 件 对 象 选 择,要 素 符 号 化,标 注 要 素,编 辑 要 素 都 需 要 Geometry参 与。图 1 是 G eom etry的 主 要 几 何 对 象 模 型 图,接

14、下 来 将 一 一 介 绍 这 些 几 何 对 象。1评 分 次 数 daniel_wind努 力 不 一 定 成 功,放 弃 就 一 定 失 败。学 习 是 一 种 信 仰(In learning we trust)!影 音 更 酷!马 上 访 问 GISALL视 频 分 享 中 心 回 复 引 用 报 告 道 具 TOP3日 发 表 于 2009-5-13 22:21 只 看 该 作 者 2.4 几 何 对 象 2.4.IPoint 和 MultiPoint 几 何 对 象 2.4.1.IPoint几 何 对 象 是 一 个 0 维 的 几 何 图 形,具 有 X,Y坐 标 值,以 及 一

15、 些 可 选 的 属 性:如 高 程 值(Z 值),度 量 值(M 值)和 ID号,点 对 象 用 于 描 述 精 确 定 位 的 对 象,版 主 例 如 一 个 电 话 亭 在 一 个 城 市 的 精 确 位 置 以 下 代 码 演 示 如 何 创 建 一 个 Point对 象:帖 子 1546精 华 141.I Poi nt pPoi nt=new Poi nt C l ass();2.pPoi n t.X=100;3.pPoi n t.Y=100;复 制 代 码 努 力 不 一 定 成 功,放 弃 就 一 定 失 败。学 习 是 一 种 信 仰(In learning we trust)

16、!没 有 个 人 空 间?GISALL全 新 上 线,点 击 申 请 开 通 回 复 引 用 报 告 道 具 TOP4日 发 表 于 2009-5-13 22:23|只 看 该 作 者 本 帖 最 后 由 f x lc o c a于 2009-9-1 1 4:2 9编 辑 2.4.1.2MultiPoint 几 何 对 象 MultiPoint:点 集 对 象 是 一 系 列 无 序 的 点 的 群 集,这 些 点 具 有 相 同 的 属 性 信 息。例 如 可 以 用 一 个 点 集 来 表 示 整 个 城 市 天 然 气 调 压 站。如 下 图 所 示:一 个 Multipoint对 象

17、由 6 个 Point对 象 组 成。fxlcoco版 主 帖 子 1546精 华 14i Multipoint with-1six points图 2以 下 代 码 片 段 演 示 如 何 构 建 Multipoint对 象:定 义 第 一 个 点 IPoint pPointl=new PointC lass();pPointl.X=100;pPointl.Y=100;/定 义 第 二 个 点 I Poi nt pPoint2=new loi ntClass();pPoint2.X=200;pPoint2.Y=200;构 建 其 他 点 IPointCollection pMultipoin

18、t=new MuitipointClassO;object o=Type.Missing;添 加 第 一 个 点,不 需 要 设 置 点 的 顺 序,参 数 设 置 为 Type.MissingpMultipoint.AddPoint(pPointl,ref o,ref o);添 加 第 二 个 点,不 需 要 设 置 点 的 顺 序,参 数 设 置 为 Type.MissingpMultipoint.AddPoint(pPoint2,ref o,ref o);添 加 其 他 点 2.4.2 se g m e n t几 何 对 象 Segment有 起 点,终 点 和 参 数 定 义 三 个

19、方 面 定 义。.J。FromFrom f To它 有 四 个 子 类 分 别 是 中再 有 四 个 子 类 分 别 是“Segment子 类 名 称 措 述,全 年,Line.i 二 线 续 毁 Line 二 始 点 A n o l-.CircularArc,圆 瓠.,Circylor_Arc/始 角.中 心 4 一 一 _h/却 小/强.I 林/EllipticArc,椭 圆 弧,J T D*0/Elliptic Arcf V/T/了 MW M AI MV#.A*a*BezierCurve i见 塞 尔 曲 线 Bezier Curves Y*O tM V O f ACXtMM VV 9/

20、:*N H V 9/.1餐 32.4.3Path和 Ring几 何 对 象 2.4.3.IPath几 何 对 象 Path是 连 续 的 Segment的 集 合,除 了 路 径 的 第 一 个 Segment和 最 后 一 个 Segment外 其 余 的 Segment的 起 始 点 都 是 前 一 个 Segment的 终 止 点,即 Path对 象 的 中 的 Segment不 能 出 现 分 离,Path可 以 是 任 意 数 的 Line,CircularArc,EllipticArc 和 BezierCurve 的 组 合。个 P a th由 四 个 Segm ent 组 成 图

21、 4一 个 或 多 个 Path组 成,个 Polyline对 象。2.4.3.2Ring几 何 对 象 Ring是 一 个 封 闭 的 Path即 起 始 和 终 止 点 有 相 同 的 坐 标 值。它 有 内 部 和 外 部 属 性。图 5一 个 或 多 个 Ring对 象 组 成 一 个 Polygon对 象。2.4.4Polyline 和 Polygon 几 何 对 象 2.4.4.IPolyline 几 何 对 象 Polyline对 象 是 由 一 个 或 多 个 相 连 或 者 不 相 连 的 path对 象 的 有 序 集 合,它 可 以 是 单 个 Path对 象 组 成,也

22、 可 以 是 多 个 相 连 的 Path对 象 组 成,或 者 是 多 个 分 离 的 Path组 成,如 下 图 所 示。Polyline通 常 用 来 代 表 线 状 地 物 如 道 图 6一 个 Polyline对 象 必 须 满 足 以 下 准 则:1.组 成 Polyline对 象 的 所 有 Path对 象 必 须 是 有 效 的。2.组 成 Polyline对 象 的 所 有 Path对 象 不 能 重 合,相 交 或 自 相 交。3.组 成 Polyline对 象 的 多 个 Path对 象 可 以 连 接 与 某 一 点,也 可 以 分 离。4.Path对 象 的 长 度

23、不 能 为 0.IPolyline是 Polyline类 的 主 要 接 口,IPolyline的 Reshape方 法 可 以 使 用 一 个 Path 对 象 为 一 个 Polyline 对 象 整 形,IPolyline 的 SimplifyNetwork方 法 用 于 简 化 网 络。Polyline对 象 可 以 使 用 IGeometryCollection接 口 添 加 Path对 象 的 方 法 来 创 建,使 用 该 接 口 需 注 意 以 下 情 况:1.每 一 个 Path对 象 必 须 是 有 效 的,或 使 用 IPath:Simplify方 法 后 有 效。2.由

24、 于 Polyl ine是 Path对 象 的 有 序 集 合,所 以 添 加 Path对 象 时 必 须 注 意 顺 序 和 方 向。3.为 了 保 证 Polyline是 有 效 的,可 以 创 建 完 Polyline对 象 后 使 用 ITopologicalOperator 接 口 的 Simplify 方 法。以 下 代 码 片 段 为 使 用 IGeometryCollection接 口 创 建 一 个 Polyline对 象:定 义 第 一 个 点 IPoint pPointl=new PointClass();pPointl.X=100;pPointl.Y=100;定 义 第

25、 二 个 点 IPoint pPoint2=new PointClass();pPoint2.X=200;pPoint2.Y=200;创 建 一 个 Line对 象 ILine pLine=new LineClass();设 置 Line对 象 的 起 始 终 止 点 pLine.PutCoords(pPointl,pPoint2);/QI 到 ISegmentSegment pSegment=pLine as ISegment;/创 建 一 个 Path对 象 Segment Col lect ion pPath=new IVithClass();object o=Type.Missing;

26、/通 过 ISegmentCollection 接 口 为 Path 对 象 添 加 Segment 对 象 pPath.AddSegment(pSegment,ref o,ref o);创 建 一 个 Polyline对 象 IGeometryCollection pPolyline=new PolylineClass();通 过 IGeometryCollection 为 Polyl ine 对 象 添 加 Path 对 象 pPolyline.AddGeometry(pPath as 1Geometry,ref o,ref o);2.4.4.2Polylgon 几 何 对 象 2Poly

27、lgon对 象 是 由 一 个 或 多 个 Ring对 象 的 有 序 集 合,它 可 以 是 由 单 个 Ring对 象 构 成,也 可 以 使 用 多 个 Ring组 成 如 下 图 所 示。其 中 Ring可 以 分 为 Outer Ring(外 环)和 Inner Ring(内 环)之 分。外 环 和 内 环 都 是 有 方 向 的,它 们 的 区 别 是 外 环 的 方 向 是 顺 时 针 的,内 环 的 方 向 是 逆 时 针。Polygon通 常 用 来 代 表 有 面 积 的 多 边 形 矢 量 对 象,如 行 政 区,建 筑 物 等。多 个 内 环 多 个 内 环 图 7以

28、下 代 码 片 段 演 示 如 何 构 建 一 个 Polygon:创 建,个 Ring对 象,通 过 ISegmentCol lection接 口 向 其 中 添 加 Segment对 象 ISegmentCo11ect ion pSegCollection=new RingClass();object o=Type.Missing;pSegCollection.AddSegment(pSegmentl,ref o,ref o);pSegCollection.AddSegment(pSegment2,ref o,ref o);/QI至 iJIRing接 口 封 闭 Ring对 象,使 其 有

29、 效 IRing pRing=pSegCollection as IRing;pRing.Close();使 用 Ring对 象 构 建 Polygon对 象 IGeomeIryColleclion pGeometryColl=new PolygonClass();pGeometryColl.AddGeometry(pRing,ref o,ref o);2.4.5Envelope 几 何 对 象 Envelope是 所 有 几 何 对 象 的 外 接 矩 形,用 于 表 示 几 何 对 象 的 最 小 边 框,所 有 的 几 何 对 象 都 有 个 Envelope对 象,Envelope是

30、Envelope对 象 的 主 要 接 口,通 过 它 可 以 获 取 几 何 对 象 的 XMax,XMin,YMax,YMin,Height,Width属 性。通 过 1 Envelope的 Expand方 法 还 可 以 按 比 例 缩 放 Envelope对 象 的 范 围,如 下 图 所 示:U p p e rL e ftY M a xU pperR lghcY M lnL o w e rL e ft L o w e r Right2.4.6Curve对 象 几 何 对 象除 去 Point,MultiPoint和 Envelope外,其 他 所 有 的 几 何 体 都 可 以 看

31、做 是 Curve(曲 线)。Line,Polyline,Polygon,CircularArc,BezierCurve,EllipticArc 和 CircularArc都 是 曲 线 的 一 种,它 们 都 实 现 了 ICurve接 口。I Curve接 口 的 Length属 性 用 于 返 回 一 个 Curve对 象 的 长 度。ICurve接 口 的 FromPoint和 ToPoint属 性 可 以 获 得 Curve对 象 的 起 止 点。ICurve接 口 的 Reverseorientation方 法 可 以 改 变 一 个 Curve对 象 的 节 点 次 序 即 调

32、动 Curve对 象 的 起 始 点 和 终 止 点 互 相 调 换。ICurve接 口 的 IsClosed属 性 则 可 以 判 断 一 个 Curve对 象 起 始 点 和 终 止 点 是 否 在 一 个 位 置 上。ICurve接 口 的 GetSubcurve方 法 可 以 复 制 一 条 Curve对 象 的 特 定 部 分,例 如 一 条 10千 米 公 路 的 Curve对 象,获 取 2-5千 米 处 的 公 路 的 曲 线 代 码 片 段 如 下 所 示:/QI 到 ICurve 接 口 ICurve pCurve=pPolyline as ICurve;创 建 个 Pol

33、yline对 象 ICurve pNewCurve=new Poly1ineClass();bool btrue=true;获 取-5千 米 间 的 曲 线 对 象 pCurve.GetSubcurve(2,5,btrue,out pNewCurve);此 外 ICurve的 QueryTangent和 QueryNormal方 法 分 别 用 于 获 取 Curve对 象 上 某 一 点 的 曲 线 的 切 线 利 法 线。2.4.7 Triangle Strip 和 Trangle Fan,Trangle,Ring 几 何 对 象 Triangle Strip 和 Trangle Fan,

34、Trangle,Ring 是 构 成 MultiPatch 几 何 对 象 的 构 建 对 象。2.4.7.ITriangle Strip 几 何 对 象 TriangelStrip对 象 是 由 一 系 列 点 定 义 的 曲 面 片 组 成,而 曲 面 片 是 有 若 干 个 三 角 形 所 组 成,所 以 这 个 曲 面 可 以 定 义 为:(0,1,2),(2,1,3),(2,3,4),(4,3,5)。图 92.4.7.2Trangle Fan 几 何 对 象 一 个 Trangle Fan对 象 由 一 系 列 点 定 义 的 曲 面 片 组 成,所 不 同 的 是 所 有 的 三

35、角 形 共 享 一 个 顶 点。如 下 图 所 示,所 以 这 个 曲 面 可 以 定 义 为:(0,1,2),(0,2,3),(0,3,4),(0,4,5)。0图 102.4.7.3Triangle 几 何 对 象 Triangle由 三 个 点 所 确 定 如 下 图,一 个 Triangle可 定 义 为(0,1,2)等。图 112.4.7.4Ring几 何 对 象 Ring和 前 边 介 绍 的 组 成 Polygon的 Ring 样,例 如 下 边 一 个 房 屋 组 成 它 的 墙 是 个 OutRing对 象,而 窗 户 和 门 是 InnerRing对 象。in n e rR

36、in g图 122.4.8Multipatch 儿 何 对 象 Multipatch几 何 对 象 用 于 描 述 3D图 形,可 以 由 TriangleStrip,TriangleFan,Triangle和 ring对 象 组 合 构 成 组 成。Multipatch可 以 通 过 多 种 方 式 创 建,,种 是 通 过 导 入 外 部 3D格 式 数 据 文 件(3D Studio Max.3dsfiles,OpenFlight.fit files,COLLADA.dae files,Sketchup.skp files,VRML.wrl files),另 夕 卜 ArcGIS Eng

37、ine 提 供 了 多 种 创 建 Multipatch 几 何 对 象 的 方 法:如 果 创 建 没 有 贴 图 纹 理,没 有 法 向,没 有 组 成 部 分 信 息 的 Multipatch时,只 需 创 建 好 组 成 的 Multipatch的 各 个 部 分 即 可,然 后 通 过 Multi Patch的 IGeometryCollection接 口 添 加 各 个 组 成 部 分 即 可。如 果 要 为 Multipatch每 个 组 成 部 分 添 加 纹 理 信 息,法 向 信 息,属 性 信 息 就 必 须 使 用 GeneralMultiPatchCreator对 象

38、 来 创 建,通 过 其 IGeneralMultiPatchlnfo接 口 来 为 MultiPatch各 个 组 成 部 分 定 义 法 向,材 质,属 性 信 息。通 过 IGeneralMul tiPatchlnfo接 口 可 以 获 取 这 些 MultiPatch的 各 个 组 成 部 分 的 信 息。通 过 IConstructMultiPatch 接 口 和 lExtrude 接 口 操 作 GeometryEnvironment对 象 可 以 通 过 拉 伸 Polyline对 象(拉 伸 为 堵)和 Polygon对 象(拉 伸 为 多 面 体)来 创 建 MultiPat

39、ch.通 过 访 问 3D符 号 库,获 取 3DSymbol来 渲 染 点,把 三 维 符 号 放 置 在 点 的 位 置 从 而 生 成 Multi patch.下 图 为 MultiPatch对 象 的 贴 图 原 理:3.2Mulitipatch贴 图、渲 染 原 理 图 13接 下 来 给 大 家 介 绍 通 过 General Mu 11 i PatchCreator创 建 一 个 有 纹 理 MultiPatch的 方 法:需 要 使 用 以 下 三 个 对 象:GeometryMaterial:用 于 构 建 材 质,通 过 IGeometryMaterial创 建 的 材 质

40、 可 以 作 为 TextureLineSymbol或 者 TextureFillSymbol属 性 用 来 创 建 这 些 符 号,也 可 以 把 它 添 加 到 GeometryMaterialList对 象 中,用 于 GeneralMultipatchCreator 对 象 构 建 Multipatch 对 象。GeometryMaterialList:材 质 对 象 的 容 器 用 于 GeneralMultiPatchCreator 对 象 调 用 Init方 法 时 使 用。GeneralMultipatchCreator:用 于 创 建 有 纹 理 的 贴 图 的 Multip

41、atch,o以 下 代 码 片 段 演 示 如 何 创 建 一 个 MultiPatch对 象/构 建 M ultipatch几 何 对 象 III/ret urns)返 回 Multipatch 几 何 对 象 public IMul t iPcitch CreateM ultipatch()try 创 建 图 形 材 质 对 象 IGeometryMaterial texture=new GeonietryMaterialCI.1 0;te x tu re.Textureimage=Z/C:TcmpMy I mage,jpg;创 建 材 质 列 表 对 象 IGeomelryMater i

42、 cil Li st m a te ria lL ist=newGeome t.r y M a t.e r ia lL is t Cl a ssO;/向 材 质 列 表 添 加 材 质 m a te ria lL ist.A dd M aterial(tex tu re);/创 建 G eneralM ultiPatchC reator 对 象 IGeneicilM ultiPatchCreator m ultiPatchC reator=newGeneral M ui t iPatchC reatorC kiss();m ultiPatchC reator.I n i t(4,1,fa ls

43、e,f a l se,fa lse,4,m a te r ia lL is t);设 置 P a r t:可 以 使 三 角 扇 或 环multiPatchCreator.SetPatchType(0,esriPitchTypc.esriPatchTypeTriangleStrip);multiPatchCreator.SetMaterialIndex(0,0);mu11iPatchCreator.SetPatchPointIndex(0,0);multiPatchCreator.SetPatchTexturePointlndex(0,0);创 建 真 实 points.WKSPointZ u

44、pperLeft=new WKSPointZO;WKSPointZ lowerLeft=new WKSPointZ();WKSPointZ upperRight=new WKSPointZ0;WKSPointZ lowerRight=new WKSPointZ。;upperLeft.X=0;upperLeft.Y=0;upperLeft.Z=0;upperRight.X=300;upperRight.Y=0;upperRight.Z=0;lowerLeft.X=0;lowerLeft.Y=0;lowerLeft.Z=-100;lowerRight.X=300;lowerRight.Y=1;lo

45、werRight.Z=-100;multiPatchCreator.SetWKSPointZ(0,re f upperRi g h t);multiPatchCreator.SetWKSPointZ(l,re f lowerRight);multiPatchCreator.SetWKSPointZ(2,re f upperLeft);multiPatchCreator.SetWKSPointZ(3,re f lowerLeft);设 置 贴 图 的 点 WKSPoint textureUpperLeft=new WKSPoint();WKSPoint textureLowerLeft=new

46、WKSPoint();WKSPoint textureUpperRight=new WKSPoint();WKSPoint textureLowcrRight-new WKSPoint();textureUpperLeft.X=0;textureUpperLeft.Y=0;texturellpperRight.X=1;textureUpperRight.Y=0;textureLowerLeft.X=0;textureLowerLeft.Y=1;textureLowerRight.X=1;textureLowerRight.YmultiPatchCreator.SetTextureWKSPoin

47、t(0,ref textureUpperRight);multiPatchCreator.SetTextureWKSPoint(1,ref texturel.owerRi ght);multiPatchCreator.SetTextureWKSPoint ref textureUpperLeft);multiPatchCreator.SetTextureWKSPoint(3,ref textureLowerLeft);创 建 MultiPatch对 象 IMultiPatch multiPatch=multiPatchCreator.CreateMu11iPatch()as IMul t iP

48、it eh;return multiPatch;catch(Except i on Err)McssageBox.Show(Err.Message,“提 示“,MesscigeBoxBut tons.OK,MessageBoxIcon.Information);)2.4.9Geometry 集 合 接 口 通 过 前 边 对 于 具 体 的 Geometry对 象 的 介 绍 可 知,除 了 Point对 象 之 外,其 他 几 何 对 象 都 是 通 过 其 他 几 何 对 象 集 合 构 建 而 成。如 Multi Point对 象 是 点 的 集 合,Path对 象 是 Segment对

49、 象 的 集 合,Polyline对 象 是 Path对 象 的 集 合,Polygon对 象 是 Ring对 象 的 集 合,Multipatch对 象 是 Triangle Strip和 Trangle Fan,Trangle,Ring 对 象 的 集 合。ArcGIS Engine提 供 了 三 个 主 要 的 几 何 图 形 集 合 接 口 用 于 对 几 何 对 象 的 操 作,分 别 是 IPointCollection,ISegmentCollection 和 IGeometryCollection,这 些 接 口 揭 示 出 ArcGIS Engine的 几 何 模 型 的 实

50、 质 它 们 是 一 种 组 合 构 成 的 模 式,这 种 组 合 并 不 一 定 按 照 严 格 的 层 次 结 构 组 织。在 前 面 介 绍 一 些 几 何 对 象 的 时 候,也 给 大 家 演 示 了 部 分 使 用 功 能,这 三 个 接 口 在 程 序 开 发 中 经 常 使 用 到,接 下 来 简 单 阐 述 以 下 这 三 个 接 口 的 使 用 方 法。2.4.9.1 IGeometryCollection 接 口 IGeometryCollection 接 口 被 Polygon,Polyline,Multipoint,Multipatch,Trangle,T rang

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com