本发明涉及GIS路网领域,尤其是涉及一种GIS单线路网自动生成双线路网 的方法。

背景技术:

GIS路网是将真实道路,通过GIS数据的形式可视化表达出来。目前主流的 道路网模型是单线双属性的节点-路段模型(简称单线路网模型)、双线双属性的节 点-路段模型(简称双线路网模型)以及车道级路网模型。其中手机导航路网一般 采用单线路网模型;车道级路网一般用于辅助驾驶、无人驾驶等场景。双线路网模 型则一般用于表现道路场景下,两个通行方向的不同性质,如不同的路况、不同流 量等。

目前的双线路网模型一般基于实际测量的数据,经后期图形编辑、加工、属 性处理等制作工艺,形成双线路网。这种生产工艺流程虽然精度高、信息准确,然 而制作成本高、周期长,限制了这一路网的生产效率。

技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种GIS单线路 网自动生成双线路网的方法。

本发明的目的可以通过以下技术方案来实现:

一种GIS单线路网自动生成双线路网的方法,包括以下步骤:

1)获取单线路网模型的GIS道路数据,包括节点图层和路网图层数据,并根 据交叉口位置和道路位置判断交叉口类型和道路类型;

2)确定路网节点的偏移方向并计算偏移,形成双线路网的道路边界,并生成 路网节点的偏移节点;

3)对偏移节点进行曲线插值,用以表示车辆在路网节点的行驶路径,最终生 成双线路网。

所述的步骤1)中,当交叉口位置周边的道路为2时,交叉口类型为一字型交 叉口;当交叉口位置周边的道路为3时,交叉口类型为丁字型交叉口;当交叉口位 置周边的道路为4时,交叉口类型为十字型交叉口;当交叉口位置周边的道路超过 4时,交叉口类型为特殊交叉口;

当正向车道数和逆向车道数其中至少一个为0时,道路类型为单行道,当均不 为0时,道路类型为双行道。

所述的步骤2)具体包括以下步骤:

21)根据节点图层和路网图层数据,分别对路网节点周边道路路段进行全程正 向、半程正向、全程逆向和半程逆向偏移,偏移矢量方向与路段起点和终点间的连 线方向垂直,并确定全程偏移矢量和半程偏移矢量的长度;

22)对于每个路网节点,将相邻路段的全程偏移线段与半程偏移线段之间的交 点作为偏移节点。

确定偏移矢量的方向具体为:

设起点到终点方向为正向,则正向偏移矢量为起点到终点方向顺时针旋转90 度,设终点到起点方向为逆向,则逆向偏移矢量为起点到终点方向逆时针旋转90 度。

确定偏移矢量长度的具体计算式为:

其中,ρAB为AB路段的逆向偏移矢量,为AB路段的逆向半距偏移矢量, 为AB路段的逆向全距偏移矢量,(x1,y1)为路段起点A的位置坐标,(x2,y2)为 路段终点B的位置坐标,n1AB为AB路段的正向车道数,W为机动车道宽。

所述的步骤22)中,

当路网节点为一字型交叉口时,偏移节点的数量为4;

当路网节点不为一字型交叉口时,偏移节点的数量为该路网节点位置周边的道 路数量的2倍;

并且,当路网节点周边的路段存在单行线时,每存在一条单行线,偏移节点数 量减少一个。

所述的步骤3)中,车辆在路网节点的行驶路径包括右转路径、掉头路径、左 转路径和直行路径。

所述的步骤3)中采用三次曲线插值法进行插值,并对插值过程进行优化,防 止出现突拐现象,具体为:

31)在插值前,将待插值的节点A01和A02围绕其中心点A00旋转角度α1, 使A02和A03处于同一水平线上,并将节点A01和A02的原斜率分别转换成角度 增加α1角;

32)根据旋转后节点A01和A02的坐标采用三次插值公式,得到节点A01和 A02间的三次多项式插值曲线,并在旋转后的节点A01和A02横坐标之间等距取 10个点,加入起点和重点完成点组,将点组中的每个点绕中心点A00旋转-α1角, 并将旋转后的点组转换为插值曲线。

与现有技术相比,本发明具有以下优点:

本发明利用城市已有的单线路网模型,通过路网描述参数和自动化处理技术, 自动生成双线路网,相比传统方案,本方法成本低、周期短,仅需数小时就可以获 得整个城市的双线路网,适合用于快速生成精度要求不高的道路地图,如手机导航 路网、交通仿真路网等,另外,本发明通过点组旋转插值避免了插值过程中产生的 曲线一阶导数斜率突变导致内插得到的曲线不光滑的情况。

附图说明

图1为单线路网的输入数据图。

图2为偏移节点的计算过程图。

图3为计算出的偏移节点图。

图4为偏移节点的连接插值曲线。

图5为偏移节点三次曲线插值前旋转示意图。

图6为一字路口的转换效果图。

图7为丁字路口的转换效果图。

图8为十字路口的转换效果图。

图9为单行道的转换效果图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

实施例

本发明采用单线路网模型的GIS道路数据,通过一定的数据处理,完成双线 道路数据的自动生产。

单线双属性的道路数据,主要包括单线路网的节点图层(Point类型)和路网 图层(Polyline),节点图层需包含节点ID字段和坐标字段,id字段用于标示不同 节点之间的编号差别。坐标字段标识节点的位置;见图1中的A、B、C、D节点, 路网图层需包含正向车道数(CDS)、逆向车道数(RCDS)、起点节点ID、终点节 点ID等四个字段。其中起点节点ID、终点节点ID与节点图层的ID字段存在关联 关系。见图1中的AB、AC、AD、AE路段。

本发明的具体方法包括一下步骤:

1、判断交叉口类型和道路类型:

根据输入的交叉口位置和道路位置,进行GIS空间叠置分析。当交叉口位置 周边的道路为2时,交叉口为一字型交叉口;为3时为丁字型交叉口;为4时为十 字型交叉口;超过4为特殊交叉口。

当CDS和RCDS中,有一个0的时候,表明道路为单行道;当不存在0时, 表明为双行道;

2、计算交叉口节点偏移方向和偏移量

根据输入的节点图层和路网图层,对路网分别左向/右向偏移。偏移方向选择 和路段起点终点连线方向垂直。正向(起点到终点方向)偏移矢量为起点到终点矢 量顺时针旋转90度,逆向(终点到起点方向)偏移矢量为起点到终点矢量逆时针 旋转90度。

偏移矢量长度取决于该方向道路车道数。以路口A为例,路段AB起点、终 点分别是A(x1,y1),B(x2,y2),车道数分别是CDS和R-CDS,分别记为符号 n1AB,n2AB。路段AE起点、终点分别是A(x1,y1),E(x5,y5),车道数为符号n1AE,n2AE。 每条机动车道宽为W,一般城市道路取3.5米,高速公路取3.75米。

则AB路段向E方向的偏移矢量可用以下公式计算:

半距偏移矢量:

全距偏移矢量:

路段AE向B方向的偏移矢量可以通过下面的式子计算

半距偏移矢量:

全距偏移矢量:

分别是某条路段的正向车道偏移向量和逆向车道偏移向量。根据该向量, 可以实现路段AB、AE向外侧平移后的矢量,半距偏移后为L1、L3,全距偏移后 为L2和L4。然后分别计算L1和L4,L2和L3的交点,记为A0和A1。

因此,同理可以计算得到A路口的其他偏移点和偏移矢量,如A04、A05等 等。一个路口的完整节点偏移效果如图3所示。虚线为单线路网,虚线端点A01-A08 为生成的偏移节点。

3、偏移节点曲线插值

在两个偏移节点之间构建连接曲线,用来表示车辆在该路口的行驶路径,如图 4所示,A02-A03表示右转路径,A02-A01表示车辆掉头路径,A02-A07代表左转 路径,A02-A05代表直行路径。

在传统的三次曲线插值法基础上,对插值过程进行优化,避免插值曲线的突拐 现象。

如图5所示,插值前,将待插值的节点A02和A03围绕它们的中心点A00旋 转α1角,使得A02和A03处于同一水平线上。A02和A03处记录的斜率k1和k2, 也分别转换成角度增加α1角,连同旋转后的A02和A03坐标,代入式(5),得到一 组a′b′c′d′,算出三次多项式插值曲线。

y=ax3+bx2+cx+d (6)

然后在旋转后的A02和A03横坐标之间等距取10个值,算出纵坐标,加上起 点终点,点组计算完成。然后将点组里的每个点绕A00旋转-α1角。将旋转后的点 组转为线,即为连接节点的插值曲线。

4、不同交叉口的处理方法

按照不同的道路交叉口类型,进行分别处理。

4.1一字路口

如图6所示,一字路口表示中间节点只有两根连接路段。中间节点偏移为4 个节点。

4.2丁字路口

如图7所示,丁字路口代表中间节点存在三个路段交叉情况。偏移节点为6 个。

4.3十字路口

如图8所示,十字路口代表存在四个路段交叉情况。偏移节点为8个。

4.4单行道的处理

如图9所示,当交叉口节点周边的路段存在单行线时,每存在一条单行线,偏 移节点数量减少一个。

arcgis 属性表中起点终点创建线_一种GIS单线路网自动生成双线路网的方法与流程...相关推荐

  1. arcgis 属性表中起点终点创建线_连接起点与终点

    用法说明 需要两个输入点图层:一个对应起始点,一个对应目的地.下表汇总了起始点与目的地间的连接: 起始点数量目的地数量连接一个一个该起始点连接该目的地. 一个多个该起始点连接所有目的地. 多个一个所有 ...

  2. arcgis制作瓦片地图_一种GIS瓦片地图的存储方式的制作方法

    本发明涉及一项测绘与地理信息行业数据存储方式. 背景技术: 目前主要使用的GIS瓦片存储技术有两种一种是数据库文件存储,另一种是压缩包存储方式:数据库存储文件方式存在存储数据的冗余,数据格式体积较大的 ...

  3. #ArcGis中如何对属性表中的字段进行顺序赋值??

    #ArcGis中如何对属性表中的字段进行顺序赋值?? 如题,昨天有小伙伴在公号私信里问我"如何在ArcGis中对属性表中的字段进行顺序赋值??"这个问题如果会一点python编程, ...

  4. arcgis属性表选择两个条件_arcgis中给属性表字段按条件批量赋值

    1.金锄头文库是"C2C"交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时 ...

  5. arcgis属性表选择两个条件_arcgis中按属性选择的小技巧

    今天恰好又用到了ArcGIS,不过在属性表中选择字段的时候,发现自己遇到了一点点疑惑,相信也存在和我有同样遭遇的同学,因此,我决定写一些关于属性选择的技巧,仅仅是自己的学习笔记,以便之后运用回忆,同时 ...

  6. arcgis属性表选择两个条件_ARCGIS关联属性表(转)

    属性描述了要素的相关特性,并存储于表中.在创建新的属性表或是向已有的属性表中增加字段的时候,必须指明数据类型和字段属性,比如精度(Precision)或长度(Length).数据类型的选择和相关设置会 ...

  7. gis属性表怎么导成excel_使用Python脚本将Excel表批量赋值到ArcGIS属性表

    现需要将Excel表信息批量赋值(不是挂接)到Shp文件的属性表,两张表的字段.记录数一模一样,至于为什么会出现这样的问题,咱也不敢问,只有想个法子把它搞定! 原始的Excel信息表共57列,总共3万 ...

  8. 如何将Excel表批量赋值到ArcGIS属性表

    情景再现 现需要将Excel表信息批量赋值(不是挂接)到Shp文件的属性表,两张表的字段.记录数一模一样,至于为什么会出现这样的问题,咱也不敢问,只有想个法子把它搞定! 原始的Excel信息表共57列 ...

  9. ArcGIS属性表的计算

    本次实验主要讲述在ArcGIS中对属性表的处理,包括添加属性字段.连接属性表.计算属性字段.最后进行一个可视化的过程.以计算目的人口密度为例. 一.实验目的:计算人口密度 二.实验原理:根据人口密度公 ...

最新文章

  1. wps电脑版_WPS的前前前前身,是一根绳子?懂点历史没坏处
  2. 脑机接口拼写器是否真的安全?华中科技大学研究团队对此做了相关研究
  3. optee中utee syscall的实现(系统调用实现)
  4. 对民营医院的网络推广--迅脉互联
  5. seata 集群_【视频】 聊聊分布式事务解决方案seata
  6. [Qt入门]QTableWidget控件创建
  7. Linux驱动(2)--ARM的架构发展以及如何评价处理器
  8. arcpy.mapping实战-专题图制图自动化
  9. 系统安装之十 U盘安装原版win10
  10. 总结:pytorch对应版本安装
  11. BZOJ4556 HEOI2016 字符串
  12. [转帖]组织机构、职务职称英文译法
  13. 易语言服务器调试输出为假,跟我入门易语言 7 调试输出与输出调试文本
  14. 编程之美4.7蚂蚁爬杆扩展问题附猎人抓狐狸(必胜策略)
  15. html四张图片拼图,js实现html滑动图片拼图验证
  16. UVa Problem 10001 Garden of Eden (伊甸园)
  17. 嫁了这么有本事的程序员,凭什么不珍惜?|葡萄语录
  18. android 地球坐标 火星坐标系,Android LBS地图开发:地球地理GPS坐标系经纬度偏移偏差...
  19. 设计一个jsp页面,要求在网页上显示当前日期和时间,如果时间在6:00~12:00,输出“上午好”:如果时间在12:00 18:00, 输出“下午好”:
  20. 苹果CEO去年年收入公布:让人望尘莫及

热门文章

  1. win32下的OpenGL绘图环境框架
  2. 夏季养生:夏季养生必备五种中药材
  3. 用python调查应用程序结构
  4. 删除的vue怎么找回_vue详情 恢复 删除
  5. 用“等待-通知”机制优化循环等待
  6. 【项目实战课】基于Pytorch的InceptionNet花卉图像分类实战
  7. 【懒懒的Python学习笔记二】
  8. 1000款水墨墨迹毛笔素材
  9. 使用 html 写一个表达爱意的网页
  10. STM32F4时钟系统