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

路网双线合并单线——ArcGIS 解决方法

路网双线合并成单线是一个在地图制作、交通规划以及GIS分析中常见的需求。双线路网定义:具有不同流向、不同平面结构的道路。此外,车道数较多的道路(例如,双黄实线车道数大于4的道路)也可以视为双线路网,本文还是以广州市路网为例用于将路网双线合并成单线,本文通过ArcGIS来实现路网双线合并单线。

局部双线路网数据放大,可以看到大部分路网,特别是主干道是双线或者多线;

现有的ArcGIS软件双线转单线的通常做法都是,通过对OSM道路做缓冲区,导出地图为TIFF格式,通过栅格矢量化来解决,但是这个方法对于原始数据的属性信息丢失比较多,暂时没用通用性比较好的方法,但是本文稍微调整的一下方法,尽量保留了道路的类型信息;

方法思路

思路是把主干道、高速公路、次干道、支路这些信息分开tiff化,最后在进行合并。

首先打开属性表,选择路网类型字段,这里是''highway'',这里需要会一点sql,然后"highway" = 'motorway' OR"highway" = 'motorway_link',解释:路网类型选择为高速公路或者高速公路_连接段,其他类型是操作步骤一致;

高速公路或者高速公路_连接段选择结果如图,另存为新图层guangzhou_roads_motorway.shp,这样高速公路图层就剥离出来了,如法炮制其他几个类型路段;

我选了高速公路、主干道、次干道、干道、支路这五类道路进行双线转单线,如有需要可以进行增加细分道路类型;

接下来就是对路网进行分类做缓冲区;

对广州市的OSM道路道路做50米缓冲区;

这样就得到高速公路、主干道、次干道、干道、支路这五类对应缓冲区结果;

调整结果显示样式,将结果的填充颜色选择为黑色,轮廓颜色设置为无颜色;

点击【文件】——>【导出地图】——>导出类型选择tiff,勾选写入坐标文件,格式选择1位单色域;

点击【图层属性】——>【符号系统】——>【唯一值】;

到这一步你就有高速公路、主干道、次干道、干道、支路这五类道路类型的tiff了;

这里需要提前建好一个路网,要素类型选择折线,并处于编辑状态,这个很重要

这里有一个重点,也是流程无法继续进行的重灾区,【自定义】—>【扩展模块】,在弹出窗口选中ArcScan,在【自定义】—>【工具条】—>选中ArcScan;

这样基本上杜绝了ArcScan工具条呈灰色无法使用的现象发生;

点击【栅格捕捉选项】——>【显得预览】;

若有区域显示为蓝色,说明提取范围没有包含全部图层。此时,点击ArcScan工具条中——>【栅格捕捉选项】,调大最大宽度,再次——>【显示预览】,直至所有范围均显示为红色,一般区间50-80个像素也就够了,如果还有些蓝色的地方是孤立的线段,就不用在意;

再次点击【矢量化】——>【生成要素】,将缓冲区道路中心线生成到新建的折线图层中,这个id,勾选不勾选都可以;

处理的时候看清楚,需要一一对应;

这样我们就得到了高速公路、主干道、次干道、干道、支路这五类转好的单线图层;

打开我们拿到的line,随便打开一个打开属性表,选择【添加字段】,我这里增加了二个字段一个length(这里选择【计算几何】,计算长度,单位选择米,如果是灰色的,那就先定义一下投影),一个highway字段,分别计算路网长度,和将道路类型赋值给线段,然后右键已经添加的字段,选择【字段计算器】,这里选择Python,highway = '高速公路',其他的也一样;

至此路网合并完成,打开属性表,路网双线转为单线的同时,路网类型得到的区分,但是仍然会丢失路网名称等一系列信息,如果仍想进一步保留路网名称等信息可以参考我这篇文章,用的是ArcGISpro来进行处理:路网双线合并单线——ArcGISpro 解决方法-CSDN博客

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 全国区块链职业技能大赛国赛考题区块链产品需求分析与方案设计
  • CSS 计数器:WebKit 的样式增强术
  • Java8-21新特性
  • HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3
  • modbus slave 设备通过 网关thingsboard-gateway 将数据上传到thingsboard云平台
  • 基于ListBox制作一个好看的侧边菜单导航栏
  • 【Agent】信息提取场景
  • 深入理解Android中的缓存与文件存储目录
  • IDEA的工程与模块管理
  • Laravel与现代前端:Vue.js与React的无缝集成
  • 如何定位Milvus性能瓶颈并优化
  • FPGA-ROM IP核的使用
  • 【数据结构】排序算法——Lessen1
  • 【味蕾盛宴】嘴尚绝健康与美味的完美融合
  • 服务器借助笔记本热点WIFI上网
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【笔记】你不知道的JS读书笔记——Promise
  • bootstrap创建登录注册页面
  • CentOS 7 防火墙操作
  • crontab执行失败的多种原因
  • HTTP--网络协议分层,http历史(二)
  • Javascript弹出层-初探
  • js
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • maven工程打包jar以及java jar命令的classpath使用
  • MySQL-事务管理(基础)
  • overflow: hidden IE7无效
  • Solarized Scheme
  • Spring-boot 启动时碰到的错误
  • Twitter赢在开放,三年创造奇迹
  • 成为一名优秀的Developer的书单
  • 搭建gitbook 和 访问权限认证
  • 对象引论
  • 理解在java “”i=i++;”所发生的事情
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 使用Swoole加速Laravel(正式环境中)
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ‌JavaScript 数据类型转换
  • #java学习笔记(面向对象)----(未完结)
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2015)JS ES6 必知的十个 特性
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (9)STL算法之逆转旋转
  • (C语言)fgets与fputs函数详解
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (十二)Flink Table API
  • (实战篇)如何缓存数据
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB