道路数据处理中遇到的问题及解决方案大全

更新时间:2024-07-09 19:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

道路数据处理中遇到的问题及解决方案

精图 木子九日方收集

1. 打断相交线

用Topology工具栏中的planarize lines这个工具

2. 同名道路的连接

dissolve

3. 提取道路交叉口

提示:在做下列处理时先做好数据备份!!!

一下操作针对shapefile文件操作,不是shapefile的先转换格式。 1、预处理数据

在arcmap中编辑shapefile文件,工具全部选中要素,点击map topology,建立地图拓扑关系(1),然后点击点击打断线工具,在交点处打断线(2),保存结果,我这里保存到了test.shp。

1

2

2、在arccatalog中右键点击刚才保存的文件,选新建网络数据集,一路next和yes,别管内容。

3、这样就生成了结合点文件test_ND_Junctions.shp,但这还不是我们要的线交点文件,因为里边有悬挂结点和自相交结点。

4、用空间连接,将test_ND_Junctions.shp和test.shp连接,生成文件test_Junctions_SpatialJoin.shp。打开此文件属性表,发现多了一个字段join_count:

这个字段的数值就是点和多少条线相连的数。

5、编辑test_Junctions_SpatialJoin.shp,按属性选择join_count小于2的点,删除,剩下的点就是我们要的线的交点,保存文件。

4. 删除道路悬挂点

拓扑规则:Must not have dangles,不允许线要素有悬结点,即每一条线段的端点都不能孤立,必须和本要素中其他要素或和自身相接触(同一线层之间的拓扑关系)。修正方法:将有悬点的线段延伸到其他要素上,或者将长出的部分截断后删除。

5. 删除道路伪节点

拓扑规则:Must not have Pseudos,不能有伪结点,就是一条线段中间不能有断点。修正方法:将伪结点两边的线段合并为一个条线,伪结点自然消除。

同一道路不能相交

规则二:Must not intersect,同一层要素中,线与线不能重叠和相交(同一层之间的关系)。修正方法:重合处合并,相交处打断。

6. 同一道路不能重叠

拓扑规则:Must not self-overlap,线要素不能和自己重叠,修正方法:截断、删除重叠部分。

7. 道路不能自相交

拓扑规则:Must not self intersect,线要素不能自相交,就是不能和自己搅在一起。修正方法:在自相交处适当缩短或外移。

8. 道路需单独不能联合

拓扑规则:Must be single part,线要素必须单独,不能联合。但若是两条线首尾相连接,这时候Merge操作后产生的是一条线了,这时候是不会报错的。但是分开的两条线进行Merge操作,这时候就会出现不符合规则的错误。这个拓扑限制在数据处理的时候很有用处。修正方法:将连合的部分打散就可以了。

9. 道路面不能重叠

拓扑规则:Must not overlap,同一多边形要素类中多边形之间不能重叠(同一层之间的拓扑关系,不涉及到其他图层)。例如,宗地之间不能有重叠。修正方法很灵活。

10. 提取道路中心线

方法:

arctoolbox -->generalization-->collapse dual lines to centerline提供了中心线的提取工具。 注意事项:

1 双线是非封闭的。 2 是coverage格式。

3 要设置好双线间的间距,注意数据单位。 4 build1380版本好像要出错。

11. 如何删除只有一端相接的道路

有如下图的道路面,有些道路只有一端和别的道路相接,数据量挺大,想问一下有什么好的办法一次性删除图中用红色圈住的道路的面呢。

方法一:

自己和自己做spatial join,删除结果中join_count=2的。 方法二:

用Dissolve工具将道路面合并

2.在Spatial ETL Tool中用CenterLineReplacer生成中心线

3.利用ArcToolBox的Feature To Polygon工具将生成的中心线转成闭合的面。 4.然后用Feature To Line工具,根据道路宽度设置Tolerance,我这里设置的是3m,生成3的面的轮廓线。

5.对轮廓线再次执行Feature To Polygon生成新的面。

6.用5生成的面对原来的道路面执行完全包含的空间检索,就可以只抽出一端相接的道路面了。再把这些面删除就可以了。

为什么不用3所生成的面直接执行空间检索,这是因为想要删除的一端相接的道路面的影响,生成的道路面可能会沿着一端相接的道路面的方向伸出去一些形成

一个突出的小三角。这样执行空间检索,有部分这种道路面就不是完全被包含的了,会漏掉一部分一端相接的道路面。而执行4,5可以基本消除那些伸出去的小三角。再执行空间检索,就可以提高很大的精度。(我用小量数据测试的结果是100%)

12. 如何去除道路边线而保留道路中心线

如图,有道路面层和道路线层,线层中包含道路边线和中心线,无属性区分。如何去除边线而保留中心线呢

方法一:

道路面转线,原道路线和转出的线做select by location,用WITHIN,选出与边线重合的线,再反选。

13. 道路制图表达

道路分级显示中,交叉路口的过渡,如显示的最终效果如下图:

解决方法:

首先要用multilevel符号(如下图所示,有多层,边线是由一层形成)渲染要素:

这是渲染后处理前的效果:

设置symbol level,注意红框内的选项:

处理后的效果:

14. 怎么才能把路变成半透明的

例如国道和铁路相交的时候,国道压着铁路,但是这时候国道是透明的,透过国道可以看到下面的铁路、

解决方法

在属性表里建个字段放置透明度,比如将国道该字段设置成50,然后按图设置

15. 大量道路因转换造成数据不连贯

方法一:

用fme snaper函数处理试过,但效果不好,而且如果容差设得不对,很容易照成别的错误,如把不该捕捉到一块的点捕捉到了一块。 方法二:

1、在ArcCatalog中打开数据所在的gdb,右键点击空白处→新建→要素数据集,输入名称,点击下一步。选择和你所要修正的数据同样的坐标系。一直点击下一步直到完成,点击完成

按钮完成数据集建立。将要修正的数据导入到这个新建的数据集中。(如果你的数据本身就在要素数据集中的话,可以省略这一步。)

1. 在ArcCatalog中打开数据所在的gdb,右键点击空白处→新建→拓扑,点击下一步,名称可以改也可以不改,输入拓扑容差,这一步最关键,输入一个大于你数据之间缝隙的值,比如你数据之间的缝隙大约有个10厘米,那么你输个稍微大些的值,比如0.5米,点击下一步,选择你要修正的要素类。一直点击点击下一步直到出现完成按钮,点击完成。拓扑建立后提示是否立即验证,点击是。这样就已经完成了缝隙的修正,你可以把数据加到ArcMap中进行确认。

16. 关于提取要素中心线的问题

方法一:

FME中函数CenterLineReplacer CenterLineReplacer Mode:Medial axis

结果如下图:

细长型要素可以很好的实现,但是稍微有点不规则的图形会出来很多碎线. 方法二

ArcGIS本身的工具

1、 先将要提取中线的面转成线,利用Feature to line:

2、

在线的一端开口:

3、利用Collapse Dual Lines To Centerline

最大宽度设置,最大宽度根据数据填写(我给的100,单位meters),效果如下图:

得到的结果仍然是细长型要素实现的比较好,而其余的就会出现很多碎线。 给最大宽度太大的时候,细长型要素的中线提取就会出现问题。

17. 求各网格道路的条数

一个网格图和一个路网图,路网已经被各网格单元打断,统计各网格单元内的道路条数

解决方法

路网和网格做INTERSECT后,再做表汇总,出了个各网格道路长度的新表。然后把这个表和原来网格做SPATIAL JOIN。

18. 地图名称在道路名称上面固定住

在操作的时候地图名称老是跟着跑,可不可以让地图名称在道路名称上面固定住!

用labeling工具条上的lock labels可锁定

更好的办法是将label转成annotation,位置可更灵活地确定。

19. 道路设置SUBTYPE等级

把道路分成三个等级,然后分别矢量化。编辑的时候target会出现以下几个选择:

在arccatalog里设置好subtype就有了。

20. 在双线道路内生成Delaunay三角网

图1为实验所用的双线道路

图2为要生成的目标Delaunay三角网的标准

解决方法

生成tin后转成raster,用道路面切割raster,然后再将切割下的raster转成tin。

21. 道路多名称标注

国道省道除开数字名称(如G015,S120等)外还有当地的文字名称,想同时标注在道路

上,请问如何实现就是这样的效果: 解决方法:

将道路在地图上加载两次, 再设定两个图层albel为不同的字段就可以了

22. 怎么求各个村到最近道路的距离

一个县城有100多个村,求各个村到不同道路的最短路径 解决方法: 用near工具

23. 不同道路图层相交处制图

遇到道路交叉的问题,很难看。怎么处理掉交叉的部分啊

解决方法:

将几个图层组合成group layer,使用multilevel符号,设置好该组合图层symbol levels里的merge和join。

1、 group layer

选中所有要组合在一起的图层,点右键,选group

2、multilevel符号

多层符号,如下图所示的符号:

3、设置组合图层的symbol levels 组合图层上点右键,选properties

选symbol levels

选中红框内的选项,并根据需要选中各图层的merge和join

原效果:

设置后的效果:

24. 如何根据道路的等级来做网络分析

由于现在是9.3版的arcgis,以前做了一个服务范围的网络分析,但是没有完全考虑道路的等级来做(主要是设置了一个平均速度),好像没有充分来利用数据,想根据道路的等级来做网络分析,不知怎么做?有没有9.3版的对网络分析做全面分析的教程什么的,能不能分享一下。在此先说声谢谢了。

在路径数据属性表里建一长整形字段用以存放道路等级,在网络数据集里设置hierarchy属性并设为默认使用。 1、添加hierarchy属性

下载 (36.53 KB) 2010-10-5 17:14

2、选中上步添加的hierarchy属性,点evalutors给添加的hierarchy属性赋值,from-to和to-from都要设置

3、设置为默认使用

4、路径分析时要用时间做cost

情可看帮助文件

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?id=4438&pid=4426&topicname=Network_analysis_with_hierarchy。

25. 由道路面转化成道路边线,如何解决自

相交问题

解决方法:

面转线的结果肯定是封闭的线,用editor工具条菜单里的divide或split将线分隔开。

26. 道路的起点与终点

27. 面状道路如何生成中轴线?

之前数字化高速公路,觉得公路面宽,画成面状的了,现在出图要用线状高速,想问下有没有什么办法能把面状道路生成一条中轴线作为线状道路使用,如果不行只好重新数字化道路了。

若是熟悉arcscan的话把公路转成栅格然后自动矢量化是个不错的方法。也可以将公路面转成线,然后提取中心线。

28. 如何求道路接近度?

有道路的矢量图shp格式,想求道路接近度,生成栅格图,是否是用Analysis tool-->Proximity-->near工具, 那么怎么做?

使用Density-->line density可以吗?搜索半径是什么意思?怎么设置 还是用buffer工具?

另外 distance可以吗?怎么用呢?最终要做出如下图的结果

道路接近度.JPG (22.5 KB)

解决方法:

29. 求道路的起点、终点、中点、所有点

工具箱->Data Management->Features->Feature Vertices to Points(要素折点转点)

30. 如何把相邻图斑的属性添加在某个字

段中

在工作中有时需要把相邻图斑的某个属性添加在一个字段中,比如在行政区划图中有个字段为“相邻县市”,要将每个县市相邻的县市名称放在其中。下面讲一下做法:

1、在图层上点右键,选Data—Export Data,将图层导出到一个副本并加进arcmap,做连接用。

2、打开spatial join工具,将原图层和副本图层做空间连接

3、将副本的字段删除,只留原来的,如上图中的name_1,点“+”号,新增一文本字段用于存放相邻县市名,merge rule 选join,delimiter为分隔符,我这里选逗号,然后点ok

4、在新增的字段上点右键,增加输入字段

本文来源:https://www.bwwdw.com/article/q62.html

Top