GIS拓扑关系编程报告

合集下载

ArcGIS_某地区地块的拓扑关系建立_实验报告

ArcGIS_某地区地块的拓扑关系建立_实验报告

《Arcgis 某地区地块的拓扑关系建立》实验报告学期专业班级学号姓名任课教师环境科学与工程学院空间信息与测绘工程系1.实验背景拓扑关系对于数据处理和空间分析具有重要意义,拓扑关系经常应用于地块查询、土地利用类型更新等。

2.实验目的通过练习,掌握创建拓扑关系的具体操作流程,包括拓扑创建、拓扑错误检测、拓扑错误修改、拓扑编辑等基本操作。

3.实验要求在Topology数据集中导入两个Shapefile,建立该要素数据集拓扑关系、进行拓扑检验、修改拓扑错误,并进行拓扑编辑。

4.实验数据Blocks.shp、Parcels.shp,分别为某地区的总体规划和细节规划的地块矢量数据。

5.实验操作(1)建立个人地理数据库(2)新建要素数据集(3)向要素数据集导入数据(4)添加子类型(5)新建拓扑(6)添加规则(7)在ArcMap中显示拓扑错误的地方(8)修改拓扑错误修改后:(9)拓扑编辑共享结点的移动共享边的变形6.实验体会本次实验主要是练习某地区地块的拓扑关系建立的过程,在练习过程中,有几点体会。

一,要修改地理数据库的名称,可以直接在建好的地理数据库上双击原名称,当名称变成可编辑状态时,即可输入要命名的名字;二,通过import 选择要与之具有相同坐标系统的数据集时要注意,有投影坐标一定有地理坐标,有地理坐标一定没有投影坐标,先有地理坐标,再有投影坐标;三,拓扑编辑时,单击画一条草图线与选边两次相交,共享边就会发生变形,此处画的草线一定要和所选边相交,若不相交,则编辑失败。

在实验过程中,由于软件版本的不同,还遇到的其它问题,通过思考也都一一解决,学习就应该在思考中解决问题,提高自己的能力。

ArcGis在拓扑关系的修改、编辑等应用上非常方便。

MapGIS拓扑区生成及处理实验报告

MapGIS拓扑区生成及处理实验报告

MapGIS拓扑区生成及处理实验报告
一.实验目的
1.基本了解MapGis6.7软件的简单操作步骤;
2.学会矢量化过程中的线的画法;
3.基本描绘出“某地区街道与建筑图”这幅光栅数据图中的线性数据
二.实验过程
1.首先打开点文件, 再在“G工作区”选择“A添加文件”, 再选择“添加线文件L”。

2.生产图如下:
3.在“T其它”中选择“清除坐标及自相交”的“清除重叠坐标及自相交”。

并对错误类型进行修改。

4.在“T其它”中选择“清除微短线”。

对错误类型进行逐一处理。

5.在“T其它”中选择“拓扑错误检查”的“线拓扑错误检查”。

然后逐一根据实际情况进行“线上移点”或“删除线”等操作进行修改。

6.在“T其它”中选择“自动剪断线”。

7.对点文件, 线文件进行保存。

8.在“T其它”中选择“线转弧段”
9.打开“区文件”, 在“T其它”中选择“拓扑重建”。

10.在“G工作区”中选择“A添加文件”的“添加点文件”。

三. 实验结果
1.处理了矢量化实验遗留的矢量化数据;
2.通过线转弧段造区得到了相应的拓扑区数据, 如下图:
以上即完成操作。

arcgis的拓扑关系运算功能介绍 (1)

arcgis的拓扑关系运算功能介绍 (1)

ArcGis的拓扑关系运算功能介绍ArcGISEngine将拓扑关系运算功能函数方法封装在ITopologicalOperator接口,以便进行拓扑关系运算。

属性:BoundaryBoundary:几何图形的边界属性。

面的边界是多条折线;线的边界是与起始终止点相一致的多点;多点边界是空对象。

属性:IsKnownSimpleIsKnownSimple:如当前几何图形是简单对象返回true,否则返回false;它反映了图形是否进行了拓扑纠正。

下面情况返回Falseu 新创建的非空对象u 图形经过投影、一般化处理下面情况返回Trueu 空几何对象u 直接从要素类中获得的u 执行过ITopologicalOperator接口方法后得到的几何图形属性:IsSimpleIsSimple:当图形还没被认定为简单对象,返回是否已经进行拓扑纠正。

可调用Simply方法强制修正。

方法:BufferBuffer:根据指定的几何图形生成缓冲区,返回Polygon对象。

缓冲区的距离Distance可以为“正”,也可以为“负”;为负数时,只适用于Polygon对象生成缓冲区。

缓冲区的距离单位与生成缓冲区源几何图形坐标单位一致。

方法:ClipClip:裁剪指定区域内的图形。

方法:ClipDenseClipDense:裁剪指定区域内的图形方法:ConstructUnionConstructUnion:合并一组几何图形同时创建一个新的对象方法:ConvexHullConvexHull:创建一个能够包含一组图形的最小边界多边形方法:CutCut:分割一个几何图形(线、面)为左右两部分(相对于分割线来说)。

ITopologicalOperator.Cut(splitLine, sleftGeom, srightGeom);分割线绘制的方向决定了被分割后的对象属于左边还是右边。

如下图所示,分割线至上而下将图形分割为左、右两部分,所以原图形的左半部分是作为结果的右边对象返回的。

ArcGIS实验操作(十)---拓扑关系建立及检查

ArcGIS实验操作(十)---拓扑关系建立及检查

ArcGIS实验操作(十)拓扑关系建立及检查数据:在data/Ex10/文件下Clip1.shp为等高线数据,但是无投影信息要求:在Topology数据集汇总导入clip1,进行投影变换,建立该要素数据集的拓扑关系,进行拓扑拓扑检验,修改拓扑错误,并进行拓扑编辑。

操作步骤:1.在ArcMap打开地图数据:2.选择投影系统参数(Beijing_1954_3_Degree_GK_CM_117E):3.导出数据:4.重新打开ARCMAP窗口,导入clip数据:5.打开ArcCatalog,创建Geodatabase:可根据需要对新建的Geodatabase重新命名:框,创建要素数据集:新建Feature Dataset,命名为gaocheng:点击edit,并点击import,选择clip数据,进行投影转换:6.右击已新建的gaocheng,向数据集中导入数据:7.右击新建的要素数据集gaocheng,创建拓扑:点击“add rule”设置拓扑规则:根据自己实际需要,添加拓扑检查规则:本操作由于演示需要仅添加两个常用规则:选择“是”,进行拓扑检验;拓扑检查完毕,创建的拓扑出现在Catalog树中:8.打开地图窗口,查看拓扑错误:打开topology工具条:使gaochengtp图层处于可编辑状态,可发现topology工具条处于可用状态。

点击,单击:1)修改自相交错误:点击edit tool,并在出现拓扑错误的线上双击:选择出错的节点,右击,选择delete vetex:将鼠标在地图视图窗口任一位置单击,可发现错误的节点已被删除:同上,修改其他错误的节点或线:单击按钮,可以在当前可见图面进行拓扑检验;或者单击单击,在图面的指定区域进行拓扑检验;或单击可以在整个区域进行拓扑检验。

2)修改线与线重叠的错误:同上修改错误,并点击检查拓扑错误是否已经修改,修改后如下:10.检查并修改完拓扑错误,保存或导出数据。

ArcGIS实验报告【范本模板】

ArcGIS实验报告【范本模板】

3. 4实例与练习练习一:ArcGIS9.3版本进行实验3。

4. 1某地区地块的拓扑关系建立1。

背景拓扑关系对于数据处理和空间分析具有重要意义,拓扑分析经常应用于地块查询、土地利用类型更新等.2.目的通过本例,掌握创建拓扑关系的具体操作流程,包括拓扑创建、拓扑错误检测、拓扑错误修改、拓扑编辑等基本操作。

3。

要求在Topology数据集中导人两个5hapefile,建立该要素数据集的拓扑关系,进行拓扑检验,修改拓扑错误,并进行拓扑编辑口4.数据Blocks。

shp, Parcels。

shp,分别为某地区的总体规划和细节规划的地块矢量数据,存放在随书光盘…\chp}\Exl中,结果数据存放。

.。

.\Chp3\Result中。

1)创建地理数据库(1)在ArcCatalog目录树中,右键单击【Result】文件夹,单击【新建】,单击【文件地理数据库】,输人所建的地理数据库名称;NewGeodatabase。

在新建的地理数据库右键选择【新建】中的【要素数据集】,创建要素数据集.(2)打开【新建要素数据集】对话框,如图所示,将数据集命名为Topology。

(3)单击【下一步】按钮,打开【新建要素数据集】对话框设置坐标系统,如图所示。

(4)单击【导入】按钮,为新建的数据集匹配坐标系统,选择Blocks。

shp或Parcels. Shp。

(5)单击【添加】按钮,返回【新建要素数据集】属性对话框,这时要素数据集定义了坐标系统。

(6)单击【下一步】按钮,为新建的数据集选择垂直坐标系统,此处选择[None](7)单击【下一步】按钮,设置容差,此处选择选择默认设置,点击【完成】,如图所示2)向数据集中导人数据(1)在Arccatalog目录树中,右键单击Result文件夹中的Topology数据集,右键单击【导入】|【要素类(多个)】。

(2)打开【要素类至地理数据库(批量)】对话框,如图所示。

导入Blocks和Parcels,单击【确定】按钮。

arcgis实验实验报告

arcgis实验实验报告

GIS作业1.写出拓扑关系表节点与弧段的拓扑关系弧段与节点的拓扑关系:弧段与多边形的拓扑关系:多边形与弧段的拓扑关系2.比较矢量和栅格数据的结构特点。

答:基于矢量模型的数据结构简称为矢量数据结构矢量数据结构是利用几何学中的点,线,面及其组合体来表示地理实体空间分布的一种数据组织方式。

这种数据组合方式能很好的表示地理实体的空间分布特征,数据精度高,数据存储的冗余度低,但对于多层空间数据的叠合分析比较困难。

主要有实体数据,拓扑数据。

栅格数据结构是基于栅格数据模型的数据结构。

是指将空间分割成有规则的的网格,称为栅格单元。

每个单元上给出对应的属性值来表示实体的一种数据数据组织模式。

在栅格数据结构中,点有一个网各单元表示,线由一串有序的相互连接的单元网格表示,各个网格的值相同。

多边形由聚集在一起的相互连接的单元网格组成,区域内的网格值相同,但与外部的值不同。

与矢量数据结构相比用栅格数据结构表达地理要素比较直观,容易实现多层数据的叠合操作,便于与遥感图像及扫描输入数据相匹配使用等。

但是数据行都取决于网格的边长当网格的边长缩小时,网格单元呈几何级数递增,造成存储空间增加,冗余度大,网络分析困难。

3名词解释;地理空间:是指上至大气电离层,下至地壳与地幔交界的莫霍面之间的人类活动最活跃的场所。

4D数据:GIS的空间数据可分为数字线划图数据DLG,数字栅格图数DRG,数字高程模型数据DEM,数字正向影响数据DOM,简称4D数据。

四叉树:是一种每个节点上有四个子数的数据结构。

TIN:由不规则空间取样点和断线要素得到的一个对表面的近视表示,包括点与其相邻的三角形之间的拓扑关系的不规则三角网。

游程编码结构:游程编码结构是一种逐行将相邻同值的栅格合并记录栅格的值及合并栅格的数量的一种栅格数据结构。

ArcGIS实验报告

ArcGIS实验报告

3、4实例与练习练习一:ArcGIS9.3版本进行实验3。

4.1某地区地块得拓扑关系建立1.背景拓扑关系对于数据处理与空间分析具有重要意义,拓扑分析经常应用于地块查询、土地利用类型更新等、2、目得通过本例,掌握创建拓扑关系得具体操作流程,包括拓扑创建、拓扑错误检测、拓扑错误修改、拓扑编辑等基本操作、3、要求在Topology数据集中导人两个5hapefile,建立该要素数据集得拓扑关系,进行拓扑检验,修改拓扑错误,并进行拓扑编辑口4.数据Blocks。

shp, Parcels、shp,分别为某地区得总体规划与细节规划得地块矢量数据,存放在随书光盘…\chp}\Exl中,结果数据存放、。

\Chp3\Result中。

1)创建地理数据库(1)在ArcCatalog目录树中,右键单击【Result】文件夹,单击【新建】,单击【文件地理数据库】,输人所建得地理数据库名称;NewGeodatabase。

在新建得地理数据库右键选择【新建】中得【要素数据集】,创建要素数据集。

(2)打开【新建要素数据集】对话框,如图所示,将数据集命名为Topology。

(3)单击【下一步】按钮,打开【新建要素数据集】对话框设置坐标系统,如图所示。

(4)单击【导入】按钮,为新建得数据集匹配坐标系统,选择Blocks、shp或Parcels、Shp。

(5)单击【添加】按钮,返回【新建要素数据集】属性对话框,这时要素数据集定义了坐标系统。

(6)单击【下一步】按钮,为新建得数据集选择垂直坐标系统,此处选择[None](7)单击【下一步】按钮,设置容差,此处选择选择默认设置,点击【完成】,如图所示2)向数据集中导人数据(1)在Arccatalog目录树中,右键单击Result文件夹中得Topology数据集,右键单击【导入】|【要素类(多个)】。

)(2打开【要素类至地理数据库(批量)】对话框,如图所示。

导入Blocks与Parcels,单击【确定】按钮、3)在要素类中建立子类型在创建地块得拓扑关系之前,需把要素分为居民区与非居民区两个子类型,即把两个要素类得Res属性字段分为Residential与Non—Residential两个属性代码值域,分别代表居民区与非居民区两个子类型。

ARCGIS10.2实验二实验报告

ARCGIS10.2实验二实验报告

实验报告二园林与旅游学院旅游管理1401班马晔军20140640301031.阐述基本原理和概念(要素类、要素数据集)1)要素类:是ArcGIS中具有相同的几何特征的要素集合,如点的集合,表现为shapefile或者是Geodatabase中的feature class。

2)要素数据集:在ArcGIS中表现为geodatabase中的feature dataset,在一个数据集中所有的feature class都具有相同的坐标系统,一般也是在相同的区域。

Geodatabse空间数据库模型的特点。

2.Geodatabse 空间数据库模型的特点:1)Geodatabase 空间几何数据与属性数据保存在同一个表(要素类)中2)Geodatabase 在要素类和数据集中对空间参考信息进行了完整的定义3)Geodatabase 的拓扑关系管理机制在以下几个方面具有明显的优势:a、用户可自行定义哪些要素类将受拓扑关系规则约束b、多个点、线、面要素类(层)可以同时受同一组拓扑关系规则约束c、提供了大量的拓扑关系规则d、用户为自己的数据可以自行指定必要的拓扑关系规则e、拓扑关系及规则是在符合工业标准的DBMS(数据管理系统)中进行管理,可支持多用户并发处理f、用户可以局部建立或检查拓扑关系,以提高生产效率3.1:M 空间查询的实现原理及应用实例。

1)创建公交站点到公交线路一对多的关系(1:M):右键选择地理数据库-Yunnan.mdb,在出现的菜单中选择<新建>-<关系类>,对以下内容进行设定,其它设置接受默认选项即可。

图-1 图-2 图-3图-1 图-2图-32)选择关系类型为一对多关系,这样可以建立公交站点到公交线路一对多的关系,因为经过一个公交站点的公交线路有多条,这样,在我们从公交站点分布图是查询某个公交站点时就可以查询经过这个站点的所有公交线。

图-4图-4点击下一步,直到完成关系类的定义图-5 图-6图-5 图-63)以上步骤完成后,ArcCatalog中就可以看到,在地理数据库Yunana.mdb中,有一个要素集(Kunming),其中包含一个要素类(公交站点)、一个数据表(公交线路)、一个关系类(公交站及公交线1:M)图-7图-74)最后可以对1—M关系进行查询4.比较连接(Join)和关联(Link)关系的区别和应用。

地图设计与编绘实验报告

地图设计与编绘实验报告

地图设计与编绘实验名称:拓扑关系、图例文件的关联与建立、系统库编辑拓扑关系实验目的:学会使用mapgis正确建立地图中地物之间的拓扑关系,了解mapgis的菜单及基本操作。

实验环境:戴尔电脑,Win10系统,mapgis6.7实验内容:拓扑处理最大特点是自动化程度高,再拖批处理过程中一般不需要人工干预。

利用拓扑处理可以进行普染色。

拓扑处理的核心是建立拓扑关系。

为了便于拓扑关系的自动建立,系统提供了系列拓扑预处理功能。

当然,如果前期工作做得比较好,后期的许多工作(如弧段编辑、自动剪断等)就可以省掉,建立拓扑也得心应手。

实验步骤:1.文件合并打开mapgis6.7,新建工程后,新建两个线文件1.0.wl和2.0.wl,分别在两个线文件上绘制线,点击“改线参数”后,选择第二个线文件画的线,改图层为1,如图选中两个线文件,点击右键选择“合并所选项”弹出框中刚输入合并后临时文件的文件名“五角星.wl”点击保存2.自动剪断线关闭1.0wl和2.0wl,编辑合并后文件,在“其他”下面选择“自动剪断线”,再在“其他”下选择“拓扑错误检查”——“线拓扑错误检查”,然后选中所有错误类型“删除所有悬挂线”,得到最后的物件行图形。

3.分离合并文件选中“五角星.wl”,点击“根据图层分离文件”,分别点击所要分离文件的所在图层,点击“确定”。

分离文件。

图例文件的关联与建立实验目的:学会建立图例文件并对图例文件进行关联。

实验内容:1.新建工程并预设文件属性2.新建点、线文件之后,点击右键,选择新建图例文件。

选择点类图例,输入图例的名称为独立地物选择编辑分类,弹出对话框,输入分类码101和分类名称“独立地物”,点击按钮“添加类型”将编辑的分类存入分类表3.工程视图中选中一个文件,点击右键,选中“修改项目”,弹出对话框,修改分类码,使其与图例相对应。

4.点击右键关联图例文件5.打开图例版,将光标放在编辑界面的左窗口空白处,按右键,在弹出的选单中,选择打开图例版的功能。

地理信息系统GIS实验二-拓扑的建立、检查、修改

地理信息系统GIS实验二-拓扑的建立、检查、修改

测绘工程专业地理信息系统实习报告实习内容:拓扑的建立、检查、修改班级: 12级测绘2班学号: 631201040228 姓名:党莹指导老师:李华蓉时间: 2015.4.5目录一、实验内容 (1)二、实验目的 (1)三、已有资料与运用软件平台 (1)四、实验步骤 (1)4.1 创建拓扑 (1)4.2 查看拓扑 (2)4.3 修改拓扑 (2)五、实验心得 (4)一、实验内容对实验一制作的地下车库示意图进行拓扑检查二、实验目的①熟练掌握拓扑的建立、查看和修改,增强对拓扑关系的理解;②优化地形图,使点、线、面各种要素的关系更加清楚有条理。

三、已有资料与运用软件平台重庆交通大学地下车库示意图、ArcGIS 10.1四、实验步骤在建立拓扑检查之前,首先要明确两个问题:一是原本的示意图各个要素被统一存放在了一个数据集中,因为拓扑只有在数据集中才能创建;二是需要建立拓扑关系的要素,经分析本示意图需要添加到拓扑的要素有:车位边界线、柱子、车位(面)、道路中心线。

4.1 创建拓扑①在ArcMap 的目录列表中,找到地下车库示意图要素集,右键选择新建→拓扑(图4-1-1) ②对应给该拓扑命名,添加要进行拓扑检查的对象。

以“道路中心线”为例,选择该要素后,开始添加规则。

在规则下拉菜单中可以看到各种有关于线的拓扑规则(图4-1-2),经分析我们知道道路中心线不能有悬挂点、伪结点、不能自重叠。

把这三个规则添加到拓扑列表内(图4-1-3),单击确定,即可在该要素集下生成一个拓扑。

图4-1-2 拓扑规则图4-1-1 新建拓扑 图4-1-3 添加多条拓扑规则4.2 查看拓扑将目录列表中生成的拓扑拖拽到内容列表中,即可看到被进行拓扑检查的要素变成了红色,相应的有错误的结点也被标明了出来(图4-2-1)。

图4-2-1 查看拓扑4.3 修改拓扑对于道路中心线,主要存在的错误有:悬挂点与伪结点,这两种情况如图4-3-1所示;(a)悬挂点(b)伪结点图4-3-1 悬挂点与伪结点想要修改悬挂点,可以运用高级编辑中的“修剪工具”,把多出相交处的线段修剪掉,即消除了悬挂点;对于伪结点,可以运用高级编辑中的“延伸工具”(图4-3-2),将一条直线延伸到另一条直线,消除两直线直线的缝隙;或者运用“相交”,也能实现消除伪结点。

ArcGIS中的拓扑关系

ArcGIS中的拓扑关系

ArcGIS中的拓扑关系什么是拓扑?是反映空间要素和要素类之间的关系的数据模型或格式——要素:是现实对象的GIS表示空间数据用于保证数据质量的完整性规则一致性、相邻性、联通性……实际的空间关系示例:地块不能相互压盖用地多边形的边界必须与用地红线完全重叠用地红线不能有悬挂结点……道路与公共汽车线路海岸线与国界Coverage 拓扑固定的数据模型:基本的: Polygon + Arc + Node核心的: Regions,Routes一组固定的完整性规则:Label 点必须在多边形内多边形边界必须被ARCs覆盖多边形必须封闭多边形不能重叠(只有regions可以)著名的 Clean,Build 命令Geodatabase的拓扑灵活的数据模型:多个不同种类的要素类可以放在同一要素数据集中灵活的完整性规则:自己根据需要定义完整性规则Polygon规则Polygon class不能有缝隙Polygons 不能压盖Polygons 必须相互覆盖Polygon class嵌合成其它Polygon classPolygons必须被polygons覆盖Polygons不得被polygons覆盖Line 规则Line必须被polygons的边界覆盖Lines 不能重叠Lines 不能相交Lines 不能有悬挂结点Lines 不能有伪结点……Point 规则Point 必须被 polygon的边界覆盖Point 必须在 polygon内Point 必须被 line 压盖Point 必须被线的端点压盖……ArcCatalog 提供的拓扑向导工具中的六个步骤:1、拓扑关系命名2、指定cluster tolerance3、选择参与拓扑关系的要素4、设定坐标精度级别5、指定拓扑规则6、验证拓扑关系Arcgis中topolopy说明在arcgis中有关topolopy操作,有两个地方,一个是在arccatalog 中,一个是在arcmap中。

ArcGIS实验-Ex1-某地区地块地拓扑关系建立

ArcGIS实验-Ex1-某地区地块地拓扑关系建立

2 、向数据集中导入数据
(1) 在 ArcCatalog 树中,右键单击 Result 文件夹中的 Topology 数据集,单击 Import ,单击
Feature Class(multiple) 。
标准文档
实用文案
(2) 打开 Feature Class to Geodatabase(multiple) Parcels 两个 Shapefile ,单击 OK 按钮。
对话框,如图 5 所示。导入 Blocks 和
图5 Feature Class to Geodatabase(multiple)
对话框
图 6 向数据集中导入数据
3 、在要素类中建立子类型
由于原数据 Blocks 和 Parcels 两个有子类型,把要素分为了居民区和非居民区,而数据
导入到数据集后并没有子类型,所以在导入数据后为每个要素类建立两个子类型:
图 14 设置拓扑等级数目对话框
(5) 单击下一步按钮,打开指定拓扑规则对话框。 (6) 单击 Add Rule 按钮,打开 Add Rule 对话框,如图 15 所示。在 Feature of feature class 下拉框中选择 Parcels ,在 Rules 下拉框中选择 Must Not Overlap ,表示一个区域不能与 另一个区域重叠,可以连接在一起, 也可以分开。 若两个区域重叠,则违背所定义的拓扑规 则,出现拓扑错误。在对话框的右侧面板,显示所选规则的示意图及简单介绍。
图 15 Add Rule 对话框
(7) 单击 OK 按钮,返回指定拓扑规则对话框,可以看到已经创建了一个规则,如图
16 所
示,这个规则将控制同一个要素类中的要素的拓扑关系。
(8) 单击 Add Rule 按钮,创建另一个规则。在 Features of feature class 下拉框中选择

ArcGIS拓扑关系的建立

ArcGIS拓扑关系的建立
workstation 的原生数 据格式。基于文件夹 的存储,可以存储拓 扑关系。
Coverage数据格式
ARCGIS数据类型
• Shapefile 是
Arcview3.x的原生数据 格式。基于文件的存 储,不能存储拓扑关 系。
Shapefile数据格式
ARCGIS数据类型
• Geodatabase 是
建立拓扑关系的过程
• 假如是对shapefile数据进
行拓扑关系的建立,则先 建立地理数据库,因为 shapefile数据不能存储拓 扑关系。(注意使用同一 个空间参考) 使用ArcCatalog工具 首先创建一个要素集,然 后要创建要素类或将其它 数据作为要素类导入到该 要素集下。
创建要素集
• •
线拓扑规则
• 二、线拓扑规则 • 规则一:Must not overlap,在同一层要素类中(同一层之间的关 •
系),线与线不能相互重叠,修正的办法是将不需要的线段截断,再 删除。 规则二:Must not intersect,同一层要素中,线与线不能重叠和相交 (同一层之间的关系)。修正方法:重合处合并,相交处打断。 规则三:Must be covered by feature class of,同一层中某个要素类 中的线段必须被另一要素类中的线段覆盖(同一层之间的关系)。修 正方法:将错误线段删除,再重新输入正确的。 规则四:Must not overlap with,两个线要素类中的线段不能重叠。 (不同图层中线对线的关系) 规则五:Must be covered by boundary of,线要素必须被多边形要素 的边界覆盖(线与多边形之间的拓扑关系)。修正方法:删除错误的 线,或编辑多边形。 规则六:Must not have dangles,不允许线要素有悬结点,即每一条 线段的端点都不能孤立,必须和本要素中其他要素或和自身相接触 (同一线层之间的拓扑关系)。修正方法:将有悬点的线段延伸到其 他要素上,或者将长出的部分截断后删除。

空间数据库实验报告

空间数据库实验报告

实验一拓扑规则实验题目:拓扑规则实验准备:相关概念解释1、拓扑关系:是指图形要素之间几何上的相互关系,图形在保持连续状态下即使变形,相互之间的关系依然不变。

2、Geodatabase的拓扑规则包括点拓扑规则、线拓扑规则、多边形拓扑规则。

3、拓扑结构:即反映拓扑关系的结构,利用拓扑关系的空间数据结构,不仅要记录要素的空间位置(坐标),而且记录不同要素在空间上的相互关系。

4、Geodatabase 用一系列的拓扑规则(Rule ,Topology Rule),在空间要素之间建立起相互关系,即拓扑结构。

5、悬结点(Dangle):仅和一个线要素相连,孤立的结点6、伪结点(Pseudo):两个线要素相连、共享一个结点7、普通结点:三个或者三个以上的线要素交汇、共享一个结点8、线簇容差(Cluster Tolerance):不相连的要素拐点之间的最小距离9、问题区(Dirty Area):建立拓扑关系后,又被编辑过的空间范围,该范围很可能存在不符合拓扑规则的要素。

10、差错(Error):不符合拓扑规则的地方,用红点、方块、线表示。

实验内容:1、拓扑规则用于同一图层内数据质量检验。

2、拓扑规则用于不同一图层内数据质量检验。

实验过程:1、拓扑规则用于同一层内数据质量检验1.1 建立线要素拓扑规则启动ArcCatalog ,将路径定位到c:\gis_ex09\ex22.mxd,利用拓扑规则Must Not Have Dangles(不能出现悬节点)为Geo_DB22\dataset1\lotlines建立拓扑关系Dataset1_Topology,建立后,成果如图1-1,意思是有三个悬节点,不符合预定义的拓扑规则图1-11.2修改拓扑错误关闭ArcCatalog,启动ArcMap,打开ex22.mxd,激活Data frame1,除了已经存在的lotlines以外,加入Dataset1_Topology,可以看出有三处拓扑错误——线过长、线过短、线多余,调动Editor,打开Topology拓扑工具条和Advanced Editing 高级编辑工具条,Start Editing开始编辑辑,此处例举线过短时的编辑情况,选中参考边界,在Advanced Editing高级编辑工具条中选择Extention工具,点击需要延长的线,如图1-2,过短的线就延伸到参照线——图1-2当将当前窗口的拓扑关系错误一一修改后,需要验证刚才编辑过的地方是否还有错误,则需勾取Dataset1_Topology图层中Properties中Symbology Dirty Areas (问题区),则地图上刚刚编辑过的地方有三个蓝色区域,如图1-3图1-3则只需再对Dirty Areas进行拓扑关系验证,即利用Vilidate Topology In Specified Area工具进行质量验证,无拓扑错误后,如图1-4——(如若有错,仍需进一步修改)图1-41.3生成地块多边形启动ArcCatalog,右击Geo_DB22\dataset1,选用New\Polygon Feature FromLines(从线要素产生多边形),生成一个新的多边形要素类lotspolygons ,预览如图1-5 图1-52、拓扑规则用于不同图层之间数据检测2.1 建立不同要素之间的拓扑关系在ArcCatalog中Geo_DB22\dataset2下为Road、Parcel建立拓扑关系Topology22.2修改拓扑错误在ArcMap中利用Topology2对Road、Parcel进行拓扑查错并修改,此处的拓扑关系主要是多边形共同边界的错误和线多余的错误,正确修改后结果如图1-6 图1-6实验小结:1、Geodatabase可以有多种线、点、多边形规则,用于控制要素类之间的特定空间关系。

ArcGIS中拓扑关系的建立

ArcGIS中拓扑关系的建立

ArcGIS中拓扑关系的建立ArcEngine中拓扑的使用空间拓扑描述的是自然界地理对象的空间位置关系-相邻,重合,连通等,是地理对象空间属性的一部分.目前ESRI提供的数据存储方式中,Coverage和GeoDatabase能够建立拓扑,Shape格式的数据不能建立拓扑.1. GeoDataBase建立拓扑的基础1).GeoDatabase实现拓扑的基础是”几何重合”,Geodatabase 中的地理对象都是实体存储,主要是根据节点坐标是否重合来判断地理要素之间是否存在某种拓扑关系2).拓扑只能在要素集(FeatureDataset)中创建,参加创建拓扑的所有要素类(FeatureClass)必须具有相同的空间参考3).参与拓扑创建的必须是简单要素类,注记类(Annoca),尺寸和几何网络要素类不能参与拓扑的创建4)单个要素集可以创建多个拓扑2. GeoDatabase拓扑中的重要概念1).规则:表达要素之间的空间关系,ESRI提供了27中拓扑关系(见后面附表)2).拓扑容限.决定在多大范围内要素能够被捕捉在一起(也称为聚类容限(cluster tolerance))3).拓扑等级控制在拓扑验证的过程中节点移动的级别.这时候,等级低的要素类将向等级高的要素类移动,最高级别为1,最低级别为-504).脏区(dirty area):脏区就是参与拓扑创建时被修改的地理要素(增,删,改)的区域5).错误要素(Error Feature):只要素类中不符合拓扑规则的要素或者要素的一部分3. 使用拓扑的详细步骤及代码1).创建拓扑ITopology是一个不可创建类,创建拓扑需通过调用ITopologyContainer:CreateTopology方法来建立拓扑,拓扑的规则要用IT opologyRule接口来表达,必须加到IT opologyRuleContainer中.public void CreateTopology(IFeatureDataset featuredataset, string topologyName,esriTopologyRuleType rulename,double clusterT olerance,int classID) {try{ITopologyContainer topologyContainer = (ITopologyContainer)featureDataset;ITopology topology=topologyContainer.CreateT opology(topologyName, clusterT olerance, -1, "");IFeatureClassContainer featureclassContainer = (IFeatureClassContainer)featureDataset;ITopologyRuleContainer topologyRuleContainer = (ITopologyRuleContainer)topology;ITopologyRule topologyRule = new T opologyRuleClass();topologyRule.TopologyRuleType = rulename;topologyRule.OriginClassID = classID;if (topologyRuleContainer.get_CanAddRule(topologyRule)) {topologyRuleContainer.AddRule(topologyRule);}}catch (COMException ex){MessageBox.Show(ex.Message);}}2).验证拓扑通过调用ITopology:ValidateTopology 方法来验证指定区域内的拓扑,没有版本的拓扑可以在任何时候验证,指定版本的拓扑必须在编辑会话中验证例如验证整个区域的拓扑的代码片段,假设已经存在创建好的拓扑ITopology topoIGeoDataset geodataset=(IGeoDataset) topo;topo. ValidateTopology(geodataset. Extent.Envelope);3).编辑拓扑拓扑编辑的两个重要方面就是:共享点和共享边的编辑采用的主要接口: ITopologyGraph, ITopologyNode, ITopologyEdge, IDisplayFeedback ITopologyLayer以移动共享点为例一、打开拓扑,建立拓扑图(ITopologyGraph)//topoLayer 是一个打开的拓扑图层ITopologyGraph topoGraph =topoLayer.Topology.Cache;topoGraph.Build(extent,false);//extent是数据集的区域二、.使用HitTest方法取得要移动的点(IT opologyElement对象)ITopologyElement node;topoGraph.HitT est(….,ref node);如果HitT est方法返回一个True,反之返回一个False三、使用IMovePointFeedback在鼠标移动时,移动点四、.鼠标释放时//获取拓扑图ITopologyGraph topoGraph =topoLayer.Topology.Cache;//转换坐标IPointpoint=mapcontrol.ActiveView.ScreenDisplay.DisplayTransfor mation.ToMapPoint(X,Y);//获得正在做拓扑编辑的元素ITopologyNode topoNode=(ITopologyNode)topoElement;//移动的IT opologyElement 对象//实施拓扑编辑topoGraph.SplitMoveNode(topoNode, poin,false);//提交拓扑编辑结果IEnvelope envelope;topoGraph.Post(out envelope);4).查询系统中的拓扑将ITopologyContainer这个接口转换为IFeatureDataset接口,然后查询即可4. 参考资料1. 探讨GIS中拓扑实现的原理刑超等ESRI中国通讯22期2. ArcEngine9.0的开发帮助3. ESRI中国社区附图-ESRI的拓扑规则esriTRTAny 任何拓扑规则. 查询拓扑的时候用esriTRTFeatureLargerThanClusterT olerance 地理要素小于聚类容限被删除esriTRTAreaNoGaps 面是封闭的esriTRTAreaNoOverlap 面不相交esriTRTAreaCoveredByAreaClass The rule is an area covered byarea class rule. esriTRTAreaAreaCoverEachOther 两个区域完全重合esriTRTAreaCoveredByArea 一个区域被另一个区域覆盖esriTRTAreaNoOverlapArea 一个面没有相交的面esriTRTLineCoveredByAreaBoundary 线被区域的边线覆盖esriTRTPointCoveredByAreaBoundary 点在面的边界上esriTRTPointProperlyInsideArea 点完全在面内esriTRTLineNoOverlap 无重合的线esriTRTLineNoIntersection 无相交的线esriTRTLineNoDangles 无摇摆的线esriTRTLineNoPseudos 线不存在伪节点esriTRTLineCoveredByLineClass The rule is a line covered by lineclass rule. esriTRTLineNoOverlapLine The rule is a line-nooverlap linerule.esriTRTPointCoveredByLine 点被线覆盖esriTRTPointCoveredByLineEndpoint 点被线的尾节点覆盖esriTRTAreaBoundaryCoveredByLine 一个面的边界被线覆盖esriTRTAreaBoundaryCoveredByAreaBound ary一个面的边界被另一个面的边界覆盖esriTRTLineNoSelfOverlap 不存在自重合的线esriTRTLineNoSelfIntersect 不存在自相交的线esriTRTLineNoIntersectOrInteriorTouch The rule is a line-no intersect orinterior touch rule.esriTRTLineEndpointCoveredByPoint 线的尾节点被点覆盖esriTRTAreaContainPoint 面包含点esriTRTLineNoMultipart The rule is a line cannot bemultipart rule.二、Arcgis中topolopy说明:在arcgis中有关topolopy操作,,有两个地方,一个是在arccatalog中,一个是在arcmap 中。

Arcmap软件应用实习报告(拓扑关系、属性域、子类型关联类等)

Arcmap软件应用实习报告(拓扑关系、属性域、子类型关联类等)

目录一、拓扑规则 (2)1、拓扑关系、拓扑规则 (2)1.1拓扑关系 (2)1.2拓扑数据结构 (2)1.3拓扑规则 (2)2、拓扑规则用于同一图层内数据质量检验 (2)2.1建立线要素拓扑规则 (2)2.2 修正拓扑错误 (6)3、拓扑规则用于不同图层之间数据质量检验 (8)3.1建立要素类road和parcel间的拓扑关系 (8)3.2 修改拓扑错误 (10)4、建立拓扑关系的一些相关事项 (11)4.1 悬结点(dangle node)和伪结点(pseudo node) (11)二、地图注记 (11)1、图形注记 (11)1.1输入文字 (11)1.2 元素的编辑 (13)1.3引线注记 (13)2、注记要素 (13)2.1 输入、编辑 (13)2.2 参照曲线定位注记 (14)2.3引线式注记 (14)2.4 沿某条线注记 (15)3、距离注记 (15)4、属性标注 (16)4.1一般属性标注 (16)4.2多重属性标注 (20)4.3相互压盖处理 (21)三、 (23)3.1 书签操作 (23)3.2 鹰眼图 (25)3.3 放大图 (26)3.4 视图 (28)3.5 组图层 (29)3.6 练习属性数据的几种输入方法; (29)3.6.1 逐条属性的输入 (29)3.6.2 利用字段计算器输入 (30)3.6.3 条件输入法 (32)3.6.4 利用VBA代码输入 (33)3.6.5 合并连接法 (34)4、练习线要素长度、面状要素面积的计算方法; (36)5、理解属性域、子类型、关联类相关概念,并进行练习; (38)5.1 属性域 (40)5.1.1 名称和描述 (41)5.1.2 字段类型 (41)5.1.3 域类型 (41)5.1.4 分割与合并策略 (42)分割策略 (43)合并策略 (43)5.1.5 编码值 (43)5.1.6 针对属性域的一些基本操作 (44)5.2 子类型(subtypes) (45)创建子类型 (46)关联: (54)12,练习组合查询; (58)一、拓扑规则1、拓扑关系、拓扑规则1.1拓扑关系:图形要素之间几何上的相互关系,图形在保持连续状态下发生变形,相互之间的几何关系保持不变。

ArcGIS拓扑关系总结

ArcGIS拓扑关系总结

ArcGIS拓扑关系总结(转)专业知识2010-08-16 07:48:58 阅读53 评论0 字号:大中小订阅1.拓扑的意义拓扑是地理要素间的空间关系,它是确保数据质量的基础。

拓扑能提高空间分析能力,并且在确保GIS数据库质量方面扮演了一个重要角色。

拓扑将GIS行为应用到空间数据上。

拓扑使得GIS软件能够回答这样的问题,比如邻接、连通、邻近和重叠。

在ArcGIS中拓扑为用户提供了一个有力的、灵活的方式,来确立和维护空间数据的质量和完整性。

拓扑关系可以看成是空间约束,可把它们应用到空间数据上。

ArcGIS应用了这些关系,并且在任何一个约束被打破时会通知你。

为了做到这一点,GIS软件中包含的工具必须要能够识别空间约束,并且提供用来查找和修复违规要素的工具。

2.ArcGIS中拓扑功能在ArcGIS8.3以前,拓扑一直是ArcInfo coverage数据模型的一个特性。

在ArcInfo coverage数据模型中,广大的GIS用户通过build和clean操作认识到拓扑的好处。

从ArcGIS8.3开始为geodatabase增加了全面的拓扑。

在ArcGIS9.0中常用的有关topology的操作主要有两个地方,一个是在ArcCatalog中,一个是在ArcMap 中。

通常我们将在ArcCatalog中建立拓扑称为建立拓扑规则,而在ArcMap中建立拓扑成为拓扑处理。

ArcCatalog的Geodatabase中所提供的创建拓扑规则,主要是用于进行拓扑错误的检查,其中部分规则可以在所设容差内对数据进行一些修改调整。

建立好拓扑规则后,就可以在ArcMap中打开由拓扑规则所产生的文件,根据错误提示对SHAPE图层进行修改。

ArcMap中的topolopy工具条主要功能有对线拓扑,删除重复线、相交线断点(topolopy中的planarize lines),根据线拓扑生成面(topolopy中的construct features),拓扑编辑(如共享边编辑等),拓扑错误显示(用于显示在ArcCatalog中创建的拓扑规则错误,topolopy中的error inspector),拓扑错误重新验证(也即刷新错误记录)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编程报告
编程名称:拓扑生成
班级:测绘学院
学号:
姓名:
一.题目:根据结点_弧表,和弧_结点表,求出多边形_弧表,和弧面表。

如图所示:
二.程序设计
1.流程图
2.拓扑生成算法
算法步骤:
(1)得到第一条弧段A,并设置为当前弧段;
(2)判断PL(A)和PR(A)是否为空。

如果都非空,转到第一步,当所有弧段处理完毕后,算法结束;
(3)如果左多边形为空,则创建一个新的多边形P,多边形的第一条弧段为当前弧段,并设置PL(A)=P,设置搜寻起始节点为N0=Ns(A),搜寻当前节点为NC=NE(A)。

如果右多边形为空,则创建一个新的多边形P,多边形的第一条弧段为当前弧段,并设置PR(A)=P,设置搜寻起始节点N0=NE(A),搜寻当前节点NC=NS(A)。

(4)判断N0和NC是否相等,如果是,则多边形所有弧段都已经找到,转到第一步。

(5)检查与当前节点相连接的、已经排列好的弧段序列,将当前弧段的下一条弧段A'作为多边形的第二条弧段。

(6)如果NC=NS(A '),设置PL(A ')=P,令NC=NE(A');如果NC= NE(A'),设置PR(A ')=P,令NC=NS(A'),转到第四步。

三.主要代码
1.文件读取
void CTuopuDlg::GetherData()//读取文件
{
UpdateData();
int i;
ifstream if1(m_sPathName1);
point=new Point[4];
for(i=0;i<4;i++)
{
if1>>point[i].p>>point[i].po1>>point[i].po2>>point[i].po3;
}
ifstream if2(m_sPathName2);
arc=new arArc[6];
for(i=0;i<6;i++)
{
if2>>arc[i].a>>arc[i].Ns>>arc[i].Ne;
arc[i].Pl=arc[i].Pr=0;
}
}
2.拓扑生成
void CTuopuDlg::OnButtonRun()
{
// TODO: Add your control notification handler code here
UpdateData();
GetherData();
int i,j,Sc,S;
CString datas1[1],datas2[1];
CString str;
char No[20];
char Nc[20];
stp=new structp[6];
int num=0;
for(S=1;S<=6;S++)
{
Sc=S;
if(arc[Sc-1].Pl!=0&&arc[Sc-1].Pr!=0) continue;
if(arc[Sc-1].Pl==0)
{
num++;
stp[S-1].arP.RemoveAll();
stp[S-1].arP.Add(Sc);
arc[Sc-1].Pl=num;
strcpy(No,arc[Sc-1].Ns);
strcpy(Nc,arc[Sc-1].Ne);
step1:if(!strcmp(No,Nc)) continue;
else
{
i=0;
while(i<4)
{
if(!strcmp(Nc,point[i].p))
{
if(Sc==point[i].po3) Sc=point[i].po1;
else if (Sc==point[i].po1) Sc=point[i].po2;
else Sc=point[i].po3;
i=4;
}
i++;
}
stp[S-1].arP.Add(Sc);
i=0;
if(!strcmp(Nc,arc[Sc-1].Ns))
{
arc[Sc-1].Pl=num;
strcpy(Nc,arc[Sc-1].Ne);
i=1;
} if(i==0&&(!strcmp(Nc,arc[Sc-1].Ne))) {
arc[Sc-1].Pr=num;
strcpy(Nc,arc[Sc-1].Ns);
}
goto step1;
}
}
else
{
if(arc[Sc-1].Pr==0)
{
num++;
stp[S-1].arP.RemoveAll();
stp[S-1].arP.Add(Sc);
arc[Sc-1].Pr=num;
strcpy(No,arc[Sc-1].Ne);
strcpy(Nc,arc[Sc-1].Ns);
step2:if(!strcmp(No,Nc))
{
continue;
}
else
{
i=0;
while(i<4)
{
if(!strcmp(Nc,point[i].p))
{
if(Sc==point[i].po3) Sc=point[i].po1;
else if (Sc==point[i].po1) Sc=point[i].po2;
else Sc=point[i].po3;
i=4;
}
i++;
}
stp[S-1].arP.Add(Sc);
i=0;
if(!strcmp(Nc,arc[Sc-1].Ns))
{
arc[Sc-1].Pl=num;
strcpy(Nc,arc[Sc-1].Ne);
i=1;
} if(i==0&&(!strcmp(Nc,arc[Sc-1].Ne)))
{
arc[Sc-1].Pr=num;
strcpy(Nc,arc[Sc-1].Ns);
}
goto step2;
}
}
}
}
stp[0].num=num;
MessageBox("运算完毕,请输出文件!");
}
3.文件输出
void CTuopuDlg::OnPutout()
{
// TODO: Add your control notification handler code here
int i,j;
CString savePath;
char szFilters[]="Data Files (*.txt)|*.txt|All Files(*.*)|*.*||";
CFileDialog dlgFileSave(FALSE,0,0, //参数给为false即为save as OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, (CString)szFilters, this);
if(IDOK==dlgFileSave.DoModal())
{
savePath = dlgFileSave.GetPathName()+".txt";//路径加文件名再加后缀
UpdateData(FALSE);
fstream outfile;
outfile.open(savePath,ios::out|ios::app);
outfile<<"----------面_弧拓扑------------"<<endl;
outfile<<"面弧数弧号"<<endl;
for(i=0;i<stp[0].num;i++)
{
int size=stp[i].arP.GetSize();
outfile<<" "<<i+1<<" "<<size;
for(j=0;j<size;j++) {outfile<<" "<<stp[i].arP.GetAt(j);}
outfile<<endl;
}
outfile<<endl;
outfile<<"----------弧_多边形拓扑--------"<<endl;
outfile<<"弧段左右"<<endl;
for(i=0;i<6;i++)
{outfile<<i+1<<" "<<arc[i].Pl<<" "<<arc[i].Pr<<endl;} }
UpdateData(false);
}
四.结果
1,界面
2.文件输出。

相关文档
最新文档