一种基于电子地图的数据处理方法和装置与流程

文档序号:14721020发布日期:2018-06-17 14:47阅读:300来源:国知局

本发明涉及电子地图数据处理技术领域,更具体地说,涉及一种基于电子地图的数据处理方法和装置。



背景技术:

目前在计算起始位置点与目标位置点之间的最短路径时,采用Dijkstra算法以及路网中路段的直线长度,计算出一条连接起始位置点与目标位置点且路径最短的路径。现有技术中路段的直线长度直接根据路段的起点和终点的经纬度坐标计算得到的直线距离,由于在实际生活中,路段并不一定是直线的,很可能是一条弯曲且具有坡度的路段,直接根据路段的起点和终点的经纬度坐标计算该路段的长度并不能反映该路段实际的长度。

如图1所示,道路AD,其中A、B、C、D为道路的道路形状点,现有技术直接根据起点A和终点D的经纬度坐标计算直线距离,将该直接距离作为道路AD的长度,但是实际中道路AD是一个弯曲道路,该弯曲道路的长度明显大于直线段AD。

因此,现有技术直接根据路段的直线长度计算得到的连接起始位置点和目标位置点之间的最短路径是不准确的。



技术实现要素:

有鉴于此,本发明提供一种基于电子地图的数据处理方法和装置,以解决现有技术中计算最短路径不准确的问题。技术方案如下:

基于本发明的一方面,本发明提供一种基于电子地图的数据处理方法,包括:

针对每条道路,从所述道路的起点开始依次获取所述道路对应的各道路形状点的参数信息,其中道路形状点包括所述道路的起点和终点,所述参数信息包括道路形状点的经纬度信息,以及坡度信息和/或曲率信息;

根据所述道路的道路形状点的参数信息,依次计算相邻两个道路形状点间的三维长度;

根据所述道路的相邻道路形状点间的三维长度,计算所述道路包含的各个路段的三维长度;

当接收到用户输入的起始位置点和目标位置点时,根据所述起始位置点和目标位置点、各道路的路段的三维长度,确定一条连接所述起始位置点和目标位置点且三维长度最小的路径。

优选地,当所述参数信息包括道路形状点的经纬度信息和坡度信息时,根据所述道路的形状点的参数信息,依次计算相邻两个道路形状点间的三维长度,具体包括:

根据所述相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算所述相邻两个道路形状点的空间直线距离;

将所述空间直线距离作为所述相邻两个道路形状点间的三维长度。

优选地,当所述参数信息包括道路形状点的经纬度信息和曲率信息时,根据所述道路的道路形状点的参数信息,依次计算相邻两个道路形状点间的三维长度,具体包括:

从所述道路的起点开始,依次直线连接所述道路的相邻道路形状点;

依次选取连续相邻的三个道路形状点,并根据所述三个道路形状点构建连接所述三个道路形状点的外接圆,所述外接圆的半径为所述三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为所述中间道路形状点的曲率值的倒数;

针对所述三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、所述外接圆的半径计算所述相邻两个道路形状点在所述外接圆上的圆弧长度,并将所述圆弧长度作为所述相邻两个道路形状点间的三维长度。

优选地,当所述参数信息包括道路形状点的经纬度信息、坡度信息和曲率信息时,根据所述道路的道路形状点的参数信息,依次计算相邻两个道路形状点间的三维长度,具体包括:

从所述道路的起点开始,依次直线连接所述道路的相邻道路形状点;

依次选取连续相邻的三个道路形状点,并根据所述三个道路形状点构建连接所述三个道路形状点的外接圆,所述外接圆的半径为所述三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为所述中间道路形状点的曲率值的倒数;

针对所述三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算所述相邻两个道路形状点的空间直线距离;

根据相邻两个道路形状点的空间直线距离、所述外接圆的半径计算所述相邻两个道路形状点在所述外接圆上的圆弧长度,并将所述圆弧长度作为该相邻两个道路形状点间的三维长度。

优选地,当所述相邻两个道路形状点同时均存在于两个外接圆中时,将所述圆弧长度作为所述相邻两个道路形状点间的三维长度,具体包括:

计算所述相邻两个道路形状点在所述两个外接圆中的圆弧长度的平均值,并将所述平均值作为所述相邻两个道路形状点的三维长度。

优选地,根据两个相邻道路形状点的经纬度坐标、相邻道路形状点中前一个道路形状点的坡度值,计算所述相邻两个道路形状点的空间直线距离,具体包括:

根据以下公式计算相邻两个道路形状点的空间直线距离:

LAB={(X2-X1)2+(Y2-Y1)2+[SlopeofA*((X2-X1)2+(Y2-Y1)2)1/2)]2}1/2

公式中,LAB为相邻两个道路形状点中前一道路形状点A与后一道路形状点B之间的空间直线距离,X1、Y1分别为道路形状点A的经度坐标和纬度坐标,X2、Y2分别为道路形状点B的经度坐标和纬度坐标,SlopeofA为道路形状点A的坡度值。

基于本发明的另一方面,本发明提供一种基于电子地图的数据处理装置,包括:

获取单元,用于针对每条道路,从所述道路的起点开始依次获取所述道路对应的各道路形状点的参数信息,其中道路形状点包括所述道路的起点和终点,所述参数信息包括道路形状点的经纬度信息,以及坡度信息和/或曲率信息;

三维长度计算单元,用于根据所述道路的道路形状点的参数信息,依次计算相邻两个道路形状点间的三维长度;

路段长度计算单元,用于根据所述道路的相邻道路形状点间的三维长度,计算所述道路包含的各个路段的三维长度;

路径计算单元,用于当接收到用户输入的起始位置点和目标位置点时,根据所述起始位置点和目标位置点、各道路的路段的三维长度,确定一条连接所述起始位置点和目标位置点且三维长度最短的路径。

优选地,当所述参数信息包括道路形状点的经纬度信息和坡度信息时,所述三维长度计算单元包括:

第一计算子单元,用于根据所述相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算所述相邻两个道路形状点的空间直线距离;

第一确定子单元,用于将所述空间直线距离作为所述相邻两个道路形状点间的三维长度。

优选地,当所述参数信息包括道路形状点的经纬度信息和曲率信息时,所述三维长度计算单元包括:

第一连接子单元,用于从所述道路的起点开始,依次直线连接所述道路的相邻道路形状点;

第一选取子单元,用于依次选取连续相邻的三个道路形状点,并根据所述三个道路形状点构建连接所述三个道路形状点的外接圆,所述外接圆的半径为所述三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为所述中间道路形状点的曲率值的倒数;

第二计算子单元,用于针对所述三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、所述外接圆的半径计算所述相邻两个道路形状点在所述外接圆上的圆弧长度;

第二确定子单元,用于将所述圆弧长度作为所述相邻两个道路形状点间的三维长度。

优选地,当所述参数信息包括道路形状点的经纬度信息、坡度信息和曲率信息时,所述三维长度计算单元包括:

第二连接子单元,用于从所述道路的起点开始,依次直线连接所述道路的相邻道路形状点;

第二选取子单元,用于依次选取连续相邻的三个道路形状点,并根据所述三个道路形状点构建连接所述三个道路形状点的外接圆,所述外接圆的半径为所述三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为所述中间道路形状点的曲率值的倒数;

第三计算子单元,用于针对所述三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算所述相邻两个道路形状点的空间直线距离;

第四计算子单元,用于根据相邻两个道路形状点的空间直线距离、所述外接圆的半径计算所述相邻两个道路形状点在所述外接圆上的圆弧长度;

第三确定子单元,用于将所述圆弧长度作为该相邻两个道路形状点间的三维长度。

优选地,当所述相邻两个道路形状点同时均存在于两个外接圆中时,所述装置还包括:

第五计算子单元,用于计算所述相邻两个道路形状点在所述两个外接圆中的圆弧长度的平均值;

此时所述第二确定子单元和第三确定子单元,具体用于,将所述平均值作为所述相邻两个道路形状点的三维长度。

优选地,所述第一计算子单元和第三计算子单元具体用于,根据以下公式计算相邻两个道路形状点的空间直线距离:

LAB={(X2-X1)2+(Y2-Y1)2+[SlopeofA*((X2-X1)2+(Y2-Y1)2)1/2)]2}1/2

公式中,LAB为相邻两个道路形状点中前一道路形状点A与后一道路形状点B之间的空间直线距离,X1、Y1分别为道路形状点A的经度坐标和纬度坐标,X2、Y2分别为道路形状点B的经度坐标和纬度坐标,SlopeofA为道路形状点A的坡度值。

应用本发明的上述技术方案,本发明针对每条道路,综合道路的道路形状点的经纬度信息、坡度、曲率等信息来计算道路形状点之间的三维长度,并根据道路形状点间的三维长度来计算道路中各路段的三维长度,然后根据起始位置点和目标位置点、各道路的路段的三维长度,确定一条连接起始位置点和目标位置点且三维长度最短的路径。由于结合道路形状点的经纬度信息、坡度、曲率等信息计算得到的道路形状点之间的三维长度更能真实地反映路段的实际长度,因此,本方案计算得到的最短路径更准确。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有技术中实际道路为弯曲道路的一种示意图;

图2为现有技术中实际道路为弯曲道路的另一种示意图;

图3为本发明提供的一种基于电子地图的数据处理方法的流程图;

图4为本发明中构建的外接圆的示意图之一;

图5为本发明中构建的外接圆的示意图之二;

图6为本发明提供的一种基于电子地图的数据处理装置的结构示意图;

图7为本发明提供的一种基于电子地图的数据处理装置中三维长度计算单元的一种结构示意图;

图8为本发明提供的一种基于电子地图的数据处理装置中三维长度计算单元的另一种结构示意图;

图9为本发明提供的一种基于电子地图的数据处理装置中三维长度计算单元的再一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图3,其示出了本发明提供的一种基于电子地图的数据处理方法的一种流程图,包括:

步骤101,针对每条道路,从道路的起点开始依次获取道路对应的各道路形状点的参数信息。其中道路形状点包括道路的起点和终点,参数信息包括道路形状点的经纬度信息,以及坡度信息和/或曲率信息。

在实际生活中,道路可以包括多个道路形状点,该多个道路形状点中包括道路的起点和终点,还可以包括描述道路形状的位置点(如道路上的拐点、行驶方向发生较大改变的位置点、路口等)。

本发明实施例中,预先采集每条道路包括的多个道路形状点的经纬度坐标、坡度值、曲率值等参数信息,并存储道路对应的各个道路形状点的参数信息。

具体地,本发明定义道路形状点的坡度值为:该道路形状点的下一道路形状点的高度值与该道路形状点的高度值的差值,与该道路形状点与下一道路形状点的平面直线距离的比值。如道路形状点A的坡度值SlopeofA=(HeightofB-HeightofA)/AB,其中,A、B为任意相邻的道路形状点,SlopeofA为道路形状点B的高度相对于道路形状点A的高度所形成的道路形状点A的坡度值,HeightofB为道路形状点B的高度值,HeightofA为道路形状点A的高度值,AB为道路形状点A与道路形状点B间的平面直线距离(即根据道路形状点A与道路形状点B的经纬度坐标计算得到的直线距离)。

步骤102,根据道路的道路形状点的参数信息,依次计算相邻两个道路形状点间的三维长度。

本发明中,道路的道路形状点的参数信息包括如下三种组合方式:(1)、道路形状点的参数信息包括道路形状点的经纬度信息和坡度信息;(2)、道路形状点的参数信息包括道路形状点的经纬度信息和曲率信息;(3)、道路形状点的参数信息包括道路形状点的经纬度信息、坡度信息和曲率信息。前述步骤102中,根据道路形状点的参数信息依次计算相邻两个道路形状点间的三维长度的实现方式,根据参数信息的不同组合,可包括如下三种,具体地为:

(1)道路形状点的参数信息包括道路形状点的经纬度信息和坡度信息。本发明综合考虑相邻道路形状点间的坡度信息,计算相邻两个道路形状点间包含高程后的三维长度。具体地,

步骤①,根据相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算相邻两个道路形状点的空间直线距离。

具体地,利用公式LAB={(X2-X1)2+(Y2-Y1)2+[SlopeofA*((X2-X1)2+(Y2-Y1)2)1/2)]2}1/2,计算相邻两个道路形状点的空间直线距离。公式中,LAB为相邻两个道路形状点中前一道路形状点A与后一道路形状点B之间的空间直线距离,X1、Y1分别为道路形状点A的经度坐标和纬度坐标,X2、Y2分别为道路形状点B的经度坐标和纬度坐标,SlopeofA为道路形状点A的坡度值。

为了便于更形象地说明,假设当前道路形状点A的经纬度坐标和高度值分别为:(X1,Y1)、H1,道路形状点B的经纬度坐标和高度值分别为:(X2,Y2)、H2。

那么道路形状点A与道路形状点B的平面直线距离AB为:

AB=((X2-X1)2+(Y2-Y1)2)1/2公式(1);

此时包含高程后的空间直线距离LAB为:

LAB=((X2-X1)2+(Y2-Y1)2+(H2-H1)2)1/2公式(2);

又已知,SlopeofA=(HeightofB-HeightofA)/AB公式(3),将公式(3)代入公式(2)中可得:

LAB=((X2-X1)2+(Y2-Y1)2+(SlopeofA*AB)2)1/2公式(4);

继而将公式(1)代入公式(4)中可得:

LAB={(X2-X1)2+(Y2-Y1)2+[SlopeofA*((X2-X1)2+(Y2-Y1)2)1/2)]2}1/2

步骤②,将空间直线距离作为相邻两个道路形状点间的三维长度。

在本实施例中,通过利用每个道路形状点的经纬度信息和坡度信息,计算道路上相邻两个道路形状点间的空间直线距离,确定该空间直线距离作为相邻两个道路形状点间的三维长度,该包含高程后的三维长度更贴合道路的实际长度。

(2)道路形状点的参数信息包括道路形状点的经纬度信息和曲率信息。本发明可以利用道路形状点的曲率信息,综合考虑相邻道路形状点间的弯曲程度,进而计算得到相邻两个道路形状点间实际的三维长度。

在实际生活中,相邻两个道路形状点间的道路并非都是笔直的,如图2所示,其或多或少都存在一定的弯曲程度。因此,如果直接根据道路形状点A与道路形状点B的经纬度坐标计算得到道路形状点A、B的平面直线距离必然小于路形状点A与道路形状点B的实际长度。基于此,本发明提出利用近似圆弧的长度来表示实际道路AB的长度,使得计算得到的道路形状点A、B间的长度更贴合实际道路AB的长度。

具体地,以图4和图5所示为例进行说明,道路AD,其中A、B、C、D为道路AD的道路形状点,计算道路AD上相邻道路形状点之间的三维长度可通过以下方式得到::

步骤①,从道路的起点开始,依次直线连接道路的相邻道路形状点。

步骤②,从道路的起点开始,依次选取连续相邻的三个道路形状点,并根据三个道路形状点构建连接三个道路形状点的外接圆。所述外接圆的半径为三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为中间道路形状点的曲率值的倒数。如图4所示,选取连续相邻的三个道路形状点A、B、C,该道路形状点A、B、C构建的第一外接圆的半径为道路形状点B的曲率半径。如图5所示,选取连续相邻的三个道路形状点B、C、D,该道路形状点B、C、D构建的第二外接圆的半径为道路形状点C的曲率半径。

步骤③,针对三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、外接圆的半径计算相邻两个道路形状点在外接圆上的圆弧长度,并将圆弧长度作为相邻两个道路形状点间的三维长度。

如,在图4所示的第一外接圆中,计算道路形状点A、B连接的直线段AB对应的圆弧AB,将圆弧AB的长度作为道路形状点A、B间的三维长度;计算道路形状点B、C连接的直线段BC对应的圆弧BC,将圆弧BC的长度作为道路形状点B、C间的三维长度。在图5所示的第二外接圆中,计算道路形状点B、C连接的直线段BC对应的圆弧BC,将圆弧BC的长度作为道路形状点B、C间的三维长度,计算道路形状点C、D连接的直线段CD对应的圆弧CD,将圆弧CD的长度作为道路形状点C、D间的三维长度。

此处需要说明的是,通过图4和图5可以看出,相邻两个道路形状点B、C同时均存在于第一外接圆和第二外接圆中,对应两个不同长度的圆弧BC。对于此,本发明还包括:步骤④,计算相邻两个道路形状点在两个外接圆中的圆弧长度的平均值,并将所述平均值作为相邻两个道路形状点的三维长度。具体在本实施例中,即计算第一外接圆中圆弧BC和第二外接圆中圆弧BC的长度的平均值,将该平均值作为相邻道路形状点B、C间的三维长度。

更具体的,本发明中关于圆弧长度的计算方法可以包括以下方法:

以计算圆弧AB的长度为例,前述步骤③中根据相邻两个道路形状点的经纬度坐标、外接圆的半径计算相邻两个道路形状点在外接圆上的圆弧长度,具体可如下:

首先,通过道路形状点B的曲率可以得到道路形状点B的曲率半径R,即曲率半径R为曲率的倒数。

其次,根据道路形状点A、B、C构成的第一外接圆的圆心O,连接线段AB、线段BO以及线段AO,其中线段BO与线段AO的长度均为第一外接圆的半径R,线段AB为根据公式(1)计算得到的平面直线距离。

再次,利用余弦定理求∠AOB的值。其中,余弦定理:cos∠AOB=(AO2+BO2-AB2)/(2*AO*BO)=(2R2-AB2)/2R2

最后,利用公式,圆弧AB=(∠AOB/360)*2πR计算得到圆弧AB的长度。

同理,本发明在计算圆弧BC在第一外接圆、圆弧BC和圆弧CD在第二外接圆的弧长时,采用与计算圆弧AB在第一外接圆的弧长的方式计算得到,在此不再赘述。这里由于计算得到的圆弧BC在第一外接圆、第二外接圆的弧长分别为BC1和BC2,因此本发明进一步利用公式:圆弧BC=(BC1+BC2)/2,最终计算得到圆弧BC的三维长度。

(3)道路形状点的参数信息包括道路形状点的经纬度信息、坡度信息和曲率信息。本发明不仅考虑了各道路形状点间的坡度值,还同时考虑了道路的弯曲程度。

此时本发明依据道路的道路形状点的参数信息,依次计算相邻两个道路形状点间的三维长度具体包括:

步骤①,从道路的起点开始,依次直线连接道路的相邻道路形状点。

步骤②,从道路的起点开始,依次选取连续相邻的三个道路形状点,并根据三个道路形状点构建连接三个道路形状点的外接圆。所述外接圆的半径为三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为所述中间道路形状点的曲率值的倒数。如图4所示,选取连续相邻的三个道路形状点A、B、C,该道路形状点A、B、C构建的第一外接圆的半径为道路形状点B的曲率半径。如图5所示,选取连续相邻的三个道路形状点B、C、D,该道路形状点B、C、D构建的第二外接圆的半径为道路形状点C的曲率半径。

步骤③,针对三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算相邻两个道路形状点的空间直线距离。

如计算图4所示的道路形状点A、B的空间直线距离如下:

LAB={(X2-X1)2+(Y2-Y1)2+[SlopeofA*((X2-X1)2+(Y2-Y1)2)1/2)]2}1/2

公式中,LAB为相邻两个道路形状点中前一道路形状点A与后一道路形状点B之间的空间直线距离,X1、Y1分别为道路形状点A的经度坐标和纬度坐标,X2、Y2分别为道路形状点B的经度坐标和纬度坐标,SlopeofA为道路形状点A的坡度值。

步骤④,根据相邻两个道路形状点的空间直线距离、外接圆的半径计算相邻两个道路形状点在外接圆上的圆弧长度,并将圆弧长度作为该相邻两个道路形状点间的三维长度。

上述步骤④中,以计算圆弧AB的长度为例,根据道路形状点A和B的空间直线距离、外接圆的半径计算道路形状点A和B在外接圆的圆弧长度可如下:

首先,通过道路形状点B的曲率可以得到道路形状点B的曲率半径R,即曲率半径R为曲率的倒数。

其次,根据道路形状点A、B、C构成的第一外接圆的圆心O,连接线段AB、线段BO以及线段AO,其中线段BO与线段AO的长度均为第一外接圆的半径R,线段AB的长度为根据公式(2)计算得到的空间直线距离LAB。

再次,利用余弦定理求∠AOB的值。其中,余弦定理:cos∠AOB=(AO2+BO2-LAB2)/(2*AO*BO)=(2R2-LAB2)/2R2

最后,利用公式,圆弧AB=(∠AOB/360)*2πR计算得到圆弧AB的长度。

因此本发明充分考虑了各个道路形状点间的坡度信息和弯曲程度,使得计算得到的相邻道路形状点间的三维长度更贴近实际道路长度。

步骤103,根据道路的相邻道路形状点间的三维长度,计算道路包含的各个路段的三维长度。

为了便于对道路的管理,实际应用过程中可以将道路划分为多个路段,每个路段由至少两个道路形状点构成。例如某一条道路W包括100个道路形状点S1至S100,该道路W还可以看作为包括10个路段L1至L10,如路段L1包括道路形状点S1至S10,则路段L1的三维长度即为道路形状点S1~S10中各相邻两个道路形状点之间的三维长度的和值。

在步骤102计算得到各相邻道路形状点间的三维长度后,将各道路的路段上包含的道路形状点间的三维长度求和,计算得到道路包含的各个路段的三维长度。以图4为例,路段AD的实际三维长度即为圆弧AB、圆弧BC和圆弧CD的长度之和。

步骤104,接收用户输入的起始位置点和目标位置点。

步骤105,根据起始位置点和目标位置点、各道路的路段的三维长度,确定一条连接起始位置点和目标位置点且三维长度最小的路径。

步骤105具体为:采用Dijkstra算法,根据起始位置点、目标位置点、各道路的路段的三维长度,计算出连接起始位置点和目标位置点的N条路径(其中N大于等于1);根据预置的道路代价模型,计算N条路径的代价,将代价最少的路径作为连接起始位置点和目标位置点的最优路径。

本发明实施例中,道路代价模型为f()=L1+L2+…+Lk,其中k为路径包含的路段数量,Li表示路径的第i条路段的三维长度,其中i大于等于1且小于等于k。

优选地,本发明实施例中还提供一种新的道路代价模型为f()=g()+h(),其中f()为路径的总代价,g()为路径中各路段的代价的和值,h()为路径的启发式代价。该新的道路代价模型不仅仅考虑路径的三维长度,还考虑路径包含的各个路段的等级、拥塞情况等。

其中g()=d1+d2+…+dk,其中k为路径包含的路段数量,其中di=A×W(x1)+B×W(x2)+N×W(x3),其中di为路径的第i个路段的代价,其中i大于等于1且小于等于k。A为路段的三维长度、B为路段等级、N为路段拥塞情况的取值、B…..N分别为路段的三维长度,W(x1)、W(x2)、W(x3)分别为预先定义的权值,其中W(x1)的权重值最大,以使得dk以路段的三维长度为主。优选地,为使得计算得到的路段的代价更准确,本发明实施例中,路段的代价,不仅仅考虑A、B、N,还可以考虑其他的因素如路段的收费、路段的类型等。即di=A×W(x1)+B×W(x2)+…+N×W(xn)。

h()为路径的启发式代价,具体表示为起始位置点到目标位置点的三维空间距离。例如,起始位置点的经纬度坐标和高度依次为:X起始,Y起始,H起始,目标位置点的经纬度坐标和高度依次为:X终点,Y终点,H终点。则启发式代价h()=((X终-X当前点)2+(Y终-Y当前点)2+(H终-H当前点)2)1/2

如果本发明采用前述的启发式道路代价模型,那么在接收到用户输入的起始位置点和目标位置点后,会同时计算出从起始位置点到目标位置点所经过的各种路段的长度之和,即对应不同路段得到不同的g()代价,同时还会计算从起始位置点到目标位置点的h()启发计算代价。当g()代价与h()启发计算代价之和最小时,即确定出从起始位置点到目标位置点的最短路径。

应用本发明的上述技术方案,本发明针对每条道路,综合道路的道路形状点的经纬度信息、坡度、曲率等信息来计算道路形状点之间的三维长度,并根据道路形状点间的三维长度来计算道路中各路段的三维长度,然后根据起始位置点和目标位置点、各道路的路段的三维长度,确定一条连接起始位置点和目标位置点且三维长度最小的路径。由于参与最短路径计算的路段采用的是三维长度,而三维长度更能真实的反应路段的实际长度,因此计算得到的最短路径更准确。

基于前文本发明提供的一种基于电子地图的数据处理方法,本发明还提供一种基于电子地图的数据处理装置,请参阅图6,其示出了本发明提供的一种基于电子地图的数据处理装置的结构示意图,包括获取单元100、三维长度计算单元200、路段长度计算单元300和路径计算单元400。其中,

获取单元100,用于针对每条道路,从所述道路的起点开始依次获取所述道路对应的各道路形状点的参数信息,其中道路形状点包括所述道路的起点和终点,所述参数信息包括道路形状点的经纬度信息,以及坡度信息和/或曲率信息;

三维长度计算单元200,用于根据所述道路的道路形状点的参数信息,依次计算相邻两个道路形状点间的三维长度;

路段长度计算单元300,用于根据所述道路的相邻道路形状点间的三维长度,计算所述道路包含的各个路段的三维长度;

路径计算单元400,用于当接收到用户输入的起始位置点和目标位置点时,根据所述起始位置点和目标位置点、各道路的路段的三维长度,确定一条连接所述起始位置点和目标位置点且三维长度最短的路径。

其中,当参数信息包括道路形状点的经纬度信息和坡度信息时,如图7所示,三维长度计算单元200包括:第一计算子单元201和第一确定子单元202。其中,

第一计算子单元201,用于根据所述相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算所述相邻两个道路形状点的空间直线距离;

第一确定子单元202,用于将所述空间直线距离作为所述相邻两个道路形状点间的三维长度。

具体地,第一计算子单元201具体用于,根据以下公式计算相邻两个道路形状点的空间直线距离:

LAB={(X2-X1)2+(Y2-Y1)2+[SlopeofA*((X2-X1)2+(Y2-Y1)2)1/2)]2}1/2

公式中,LAB为相邻两个道路形状点中前一道路形状点A与后一道路形状点B之间的空间直线距离,X1、Y1分别为道路形状点A的经度坐标和纬度坐标,X2、Y2分别为道路形状点B的经度坐标和纬度坐标,SlopeofA为道路形状点A的坡度值。

其中,当参数信息包括道路形状点的经纬度信息和曲率信息时,如图8所示,三维长度计算单元200包括:第一连接子单元203、第一选取子单元204、第二计算子单元205和第二确定子单元206。其中,

第一连接子单元203,用于从所述道路的起点开始,依次直线连接所述道路的相邻道路形状点;

第一选取子单元204,用于依次选取连续相邻的三个道路形状点,并根据所述三个道路形状点构建连接所述三个道路形状点的外接圆,所述外接圆的半径为所述三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为所述中间道路形状点的曲率值的倒数;

第二计算子单元205,用于针对所述三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、所述外接圆的半径计算所述相邻两个道路形状点在所述外接圆上的圆弧长度;

第二确定子单元206,用于将所述圆弧长度作为所述相邻两个道路形状点间的三维长度。

其中,当参数信息包括道路形状点的经纬度信息、坡度信息和曲率信息时,如图9所示,三维长度计算单元200包括:第二连接子单元207、第二选取子单元208、第三计算子单元209、第四计算子单元210和第三确定子单元211。其中,

第二连接子单元207,用于从所述道路的起点开始,依次直线连接所述道路的相邻道路形状点;

第二选取子单元208,用于依次选取连续相邻的三个道路形状点,并根据所述三个道路形状点构建连接所述三个道路形状点的外接圆,所述外接圆的半径为所述三个道路形状点中的中间道路形状点的曲率半径,所述曲率半径为所述中间道路形状点的曲率值的倒数;

第三计算子单元209,用于针对所述三个道路形状点的任意相邻两个道路形状点,根据相邻两个道路形状点的经纬度坐标、相邻两个道路形状点中前一个道路形状点的坡度值,计算所述相邻两个道路形状点的空间直线距离;

第四计算子单元210,用于根据相邻两个道路形状点的空间直线距离、所述外接圆的半径计算所述相邻两个道路形状点在所述外接圆上的圆弧长度;

第三确定子单元211,用于将所述圆弧长度作为该相邻两个道路形状点间的三维长度。

其中具体地,第三计算子单元209具体用于,根据以下公式计算相邻两个道路形状点的空间直线距离:

LAB={(X2-X1)2+(Y2-Y1)2+[SlopeofA*((X2-X1)2+(Y2-Y1)2)1/2)]2}1/2

公式中,LAB为相邻两个道路形状点中前一道路形状点A与后一道路形状点B之间的空间直线距离,X1、Y1分别为道路形状点A的经度坐标和纬度坐标,X2、Y2分别为道路形状点B的经度坐标和纬度坐标,SlopeofA为道路形状点A的坡度值。

在本发明中,当相邻两个道路形状点同时均存在于两个外接圆中时,装置还包括:第五计算子单元212,用于计算所述相邻两个道路形状点在所述两个外接圆中的圆弧长度的平均值。

此时,第二确定子单元206和第三确定子单元211,具体用于将所述平均值作为所述相邻两个道路形状点的三维长度。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种基于电子地图的数据处理方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1