CN106156245B - 一种电子地图中的线要素合并方法及装置 - Google Patents
一种电子地图中的线要素合并方法及装置 Download PDFInfo
- Publication number
- CN106156245B CN106156245B CN201510208092.7A CN201510208092A CN106156245B CN 106156245 B CN106156245 B CN 106156245B CN 201510208092 A CN201510208092 A CN 201510208092A CN 106156245 B CN106156245 B CN 106156245B
- Authority
- CN
- China
- Prior art keywords
- line element
- merged
- end point
- currently traversed
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及电子地图中的线要素合并方法及装置。该方法包括:步骤A:从待合并线要素队列中,选择一条线要素作为参考线要素;步骤B:对参考线要素执行合并操作,该合并操作具体包括:针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并;若能,则将当前遍历到的线要素合并到参考线要素中生成新的参考线要素,并用新的参考线要素遍历下一条线要素,以及,从待合并线要素队列中删除当前遍历到的线要素;从待合并线要素队列中移除遍历完成时所得的参考线要素,得到新的待合并线要素队列;步骤C:若新的待合并线要素队列不为空,则继续执行步骤A以及步骤B。本发明的方法能够充分进行线合并,节约存储资源和提高查询效率。
Description
技术领域
本发明涉及电子地图领域,尤其涉及一种电子地图中的线要素合并方法及装置。
背景技术
电子地图作为人们生活、工作不可或缺的工具,为了能够为人们提供更加全面和准确的地理信息,其包含的信息量在不断增加。
线要素(包括线段、曲线或折线等)作为电子数据中的重要数据之一,用于表示现实的公路、铁路、地铁线等道路。线要素的数据量的大小直接影响电子地图的数据量,而线要素的数量的多少,也影响着电子地图的查询效率,例如一条道路用一条线要素表示,那么在查询这条道路时只需要查询一条线要素便可;若一条道路由至少两条线要素组成,那么查询这条道路时需要查询至少两条线要素,相对查询一条线要素必然要多耗费计算资源,降低查询效率。此外,较多的线要素会耗费较多的存储资源,例如为便于查询道路,在存储该道路对应的线要素时需要存储相关的属性(例如线要素的标识,所属的道路、索引信息等),线要素越多要存储的相关属性也越多,故此,线要素越多越耗费存储资源。而道路数据采集过程中,一般都是分段采集道路的地理信息,因此,一条道路在电子地图数据中会对应多条线要素,在电子地图数据制作过程中,需要将这条道路的多条线要素进行合并,以减少这条公路对应的线要素的数量。由此,如何有效地将属于同一道路的线要素合并,尤为重要。
现有技术中,线的合并方法通常是先对线要素按瓦片进行划分,再对同一瓦片中的线要素进行空间排序,然后再对同一瓦片中满足合并条件的线要素进行合并,具体的:
空间排序包括:对同一瓦片中的线要素,根据线要素的端点的坐标大小对线要素进行排序,具体的,线要素的端点的X坐标值不同时,X坐标值小的线要素排序靠前;X坐标值相同时,Y坐标值小的线要素排序靠前。
对进行空间排序后的线进行合并的方法是:对同一瓦片中按前述方法进行空间排序后的线要素,从第一条线要素开始,按顺序依次判断相邻的两条线要素是否能够进行合并。为便于理解,对现有合并方法进行举例说明:假设某一个瓦片中有4条线要素,空间排序后依次为A、B、C、D。首先判断线要素A和线要素B是否满足合并条件,若是则将线要素A和线要素B合并为线要素A’,继续判断线要素A’与线要素C是否满足合并条件,若否,则继续判断线要素C与线要素D是否满足合并条件,若否,则结束流程,若是,则合并生成线要素C’,结束合并流程。
由于现有技术通过比较线要素的端点坐标的大小对线要素进行了空间排序,因此,在进行线要素合并时仅判断相邻的线要素是否能合并,由此可见,现有技术最终合并效果的好坏取决于空间排序的结果,一旦空间排序的结果不准确,则会导致原本能够被合并的线要素最终没有被合并。比如,前文所述线要素D和线要素A’如果实际是可以合并的线要素,但在线要素A’和线要素C不能合并的情况下,线要素A’和线要素D是没有机会被合并的。因此,现有技术存在线要素合并不充分,导致存储资源被浪费的问题。进一步,现有技术进行空间排序时需要比较线要素的端点坐标的大小,排序过程会耗费大量时间,并占用较高的计算资源,会造成线要素合并整体效率低下。
发明内容
本发明的目的是提供一种电子地图中的线合并方法及装置,能够克服相关技术中线要素合并不充分,导致浪费存储资源的问题。
一方面,本发明提供一种电子地图中的线要素合并方法,包括:
步骤A:从待合并线要素队列中,选择一条线要素作为参考线要素;
步骤B:对参考线要素执行合并操作,该合并操作具体包括:
遍历待合并线要素队列中除参考线要素之外的线要素,针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并;若能,则将当前遍历到的线要素合并到参考线要素中生成新的参考线要素,并用新的参考线要素遍历下一条线要素,以及,从待合并线要素队列中删除当前遍历到的线要素;
若待合并要素队列中除参考线要素之外的线要素均已被遍历时,则从待合并线要素队列中移除遍历完成时所得的参考线要素,得到新的待合并线要素队列;
步骤C:若新的待合并线要素队列不为空,则继续执行步骤A以及步骤B。
另一方面,本发明提供一种电子地图中的线要素合并装置,包括:
选择模块,用于从待合并线要素队列中,选择一条线要素作为参考线要素;
合并模块,用于对参考线要素执行合并操作,该合并操作具体包括:
遍历待合并线要素队列中除参考线要素之外的线要素,针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并;若能,则将当前遍历到的线要素合并到参考线要素中生成新的参考线要素,并用新的参考线要素遍历下一条线要素,以及,从待合并线要素队列中删除当前遍历到的线要素;
若待合并要素队列中除参考线要素之外的线要素均已被遍历时,则从待合并线要素队列中移除遍历完成时所得的参考线要素,得到新的待合并线要素队列;
第一循环模块,用于若新的待合并线要素队列不为空时,触发所述选择模块。
本发明至少具有以下有益效果:本发明实施例提供一种电子地图中的线要素合并方法,本发明提供的方法,通过对道路进行采集而产生的至少两条线要素,判断两两之间是否能合并,将能合并的线要素合并在一起。相对于现有技术,能够更充分的将线要素合并,从而减少线要素的条数,达到节约存储资源的目的。此外,由于线要素的数量的减少,也能够提高查询线要素的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
图1为本发明实施例中的电子地图中的线要素合并方法的示例性流程图之一;
图2为本发明实施例中瓦片H中的线的位置关系示意图;
图3为本发明实施例中的电子地图中的线要素合并方法的示例性流程图之二;
图4为本发明实施例中瓦片H中的线要素的进行第一轮循环操作后对线要素进行合并后的连接关系示意图;
图5为本发明实施例中瓦片H中的线要素的进行第二轮循环操作后对线要素进行合并后的连接关系示意图;
图6为本发明实施例中的电子地图中的线要素合并装置的示意图之一;
图7为本发明实施例中的电子地图中的线要素合并装置的示意图之二。
具体实施方式
以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明实施例提供一种电子地图中的线要素合并方法,本发明提供的方法,通过对道路进行采集而产生的至少两条线要素,判断两两之间是否能合并,将能合并的线要素合并在一起。相对于现有技术,能够更充分的将线要素合并,从而减少线要素的条数,达到节约存储资源的目的。此外,由于线要素的数量的减少,也能够提高查询线要素的效率。
另外,本发明提供的电子地图中的线要素合并方法,相对于现有技术省去了对线要素进行空间排序的过程,节约了由于线要素的空间排序产生的对资源的消耗,也避免了由于空间排序的结果不准确,造成的对线要素的合并不够充分的问题。
下面通过简单的实施例,对本发明实施例中的电子地图中的线要素合并方法进行详细说明。
实施例一
如图1所示,为本发明实施例中,电子地图中的线要素合并方法的示例性流程图,该方法包括以下步骤:
步骤101:从待合并线要素队列中,选择一条线要素作为参考线要素。
步骤102:对参考线要素执行合并操作,该合并操作具体包括:遍历待合并线要素队列中除参考线要素之外的线要素,针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并;若能,则将当前遍历到的线要素合并到参考线要素中生成新的参考线要素,并用新的参考线要素遍历下一条线要素,以及,从待合并线要素队列中删除当前遍历到的线要素;若待合并要素队列中除参考线要素之外的线要素均已被遍历时,则从待合并线要素队列中移除遍历完成时所得的参考线要素,得到新的待合并线要素队列。
步骤103:若新的待合并线要素队列不为空,则继续执行步骤101以及步骤102。
为便于理解这里用举例说明上述各步骤,此外,为便于以后继续沿用这个例子进行说明,这里对这个例子命名为例A,具体的,步骤101-步骤103的操作过程如下:假设待合并线要素队列中有5条线要素,这5条线要素依次为A、B、C、D、E。若选取线要素A作为参考线要素,则执行步骤102的合并操作时可以先遍历线要素B,判断线要素B是否能与参考线要素A合并;若是,则将线要素B与参考线要素A合并生成新的参考线要素A’,并将线要素B在待合并线要素队列中删除;然后判断线要素C是否能与参考线要素A’合并,如果不能合并,则线要素C保留在待合并线要素队列中。然后,由于还有线要素D和线要素E没有遍历,则继续判断线要素D能否与参考线要素A’合并、若能则生成新的参考线要素A”,并将D从待合并线要素队列中删除。然后,继续判断线要素E是否能与参考线要素A”合并,直至线要素E遍历完成时,即,待合并线要素队列中除参考线要素A之外的所有线要素都进行了一次遍历,此时即为遍历完成时。依据上述描述,假设遍历完成时,线要素E不能与参考线要素A”合并,上述遍历过程的最终结果为,线要素B、D与线要素A合并在一起,而线要素C、E不能合并,那么最终遍历完成时的所得的参考线要素为A”(即线要素B、D与线要素A合并在一起生成的线要素),然后将遍历完成时的参考线要素A”从待合并线要素队列中移除。此时,待合并线要素队列中还剩余有线要素C和线要素E,由线要素C和线要素E组成的待合并线要素队列为新的待合并线要素队列。由于新的待合并线要素队列不为空,则继续对新的待合并线要素队列执行步骤101-步骤102的操作,直至最终获得的新的待合并线要素队列为空为止。通过例A可知,本发明实施例,逐个判断待合并线要素队列中除参考线要素之外的线要素能否与参考线要素合并,若能则合并,相对于现有技术中只能单一的判断相邻的线要素能否合并的方法,更能够充分的将能合并的线要素合并,从而通过减少线要素的数量,节约存储资源,还能够提高查询效率。
其中,在一个实施例中,步骤102中所述“遍历完成时所得的参考线要素”包括以下两种情况的参考线要素:
情况一:若待合并线要素队列中除参考线要素之外的所有线要素,均不能与步骤101中选择的参考线要素合并,那么,遍历完成时所得的参考线要素即开始选择的参考线要素。例如,待合并线要素队列中一共三条线要素分别为A、B、C,若步骤101中选择线要素A作为参考线要素,则对线要素B和线要素C进行遍历,结果为对线要素B和线要素C均不能与参考线要素A合并,那么,遍历完成时所得的参考线要素即为线要素A。
情况二:若待合并线要素队列中除参考线要素之外的所有线要素中,有能与参考线要素合并的线要素,则,遍历完成时所得的参考线要素即为经过合并后的参考线要素。例如,待合并线要素队列中一共三条线要素分别为A、B、C,若步骤101中选择线要素A作为参考线要素,则对线要素B和线要素C进行遍历。若先对线要素B进行遍历,遍历的结果为线要素B能与参考线要素合并,合并后得到的线要素为AB,则继续对线要素C进行遍历,若遍历的结果为线要素C不能与线要素AB进行合并,那么,遍历完成时所得的参考线要素即为线要素AB。
其中,在一个实施例中,步骤102中判断当前遍历到的线要素是否能与参考线要素合并,具体可执行为以下步骤A1-步骤A2:
步骤A1:计算当前遍历到的线要素的端点与参考线要素的端点之间的距离。
步骤A2:判断上述计算的距离中是否有小于等于预设阈值的距离,若有,则确定当前遍历到的线要素能与参考线要素合并;若否,则确定当前遍历到的线要素不能与参考线要素合并。
例如,每条线要素都有两个端点,若参考线要素A的端点包括起点A1和终点A2,当前遍历到的线要素B的端点包括起点B1和终点B2,那么步骤A1计算的端点之间的距离包括以下四个距离,即:A1-B1之间的距离、A1-B2之间的距离、A2-B1之间的距离、以及A2-B2之间的距离。
若上述四个距离中,有一个距离小于等于预设阈值,则确定当前遍历到的线要素能与参考线要素。这样能够充分的判断当前遍历到的线要素是否能与参考线要素合并,提高线要素合并的充分性。
其中,在一个实施例中,步骤102中,将当前遍历到的线要素合并到参考线要素中,可具体执行为:
1)、若参考线要素作为终点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之后。
2)、若参考线要素作为终点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之后。
3)、若参考线要素作为起点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之前。
4)、若参考线要素作为起点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之前。
其中,在一个实施例中,首先对形状点进行定义和说明,形状点为描述地理位置的坐标点(例如形状点1(经度10、纬度10))。那么,可以用由至少两个形状点顺序排列组成的形状点串,以及描述相邻两形状点之间的线性连接信息表示一条线要素,该表示例如:为简便起见,默认相邻两形状点之间的线性连接信息为线段(即相邻两形状点之间用线段连接),且形状点串的首尾形状点中,其中一个形状点为起点,另一个形状点为终点,其中,起点至终点的方向表示线要素的延伸方向。
若当前遍历到的线要素记为线要素G,其形状点串从起点至终点的顺序依次为(1、2、3、4)(其中,1、2、3、4各自表示一个形状点,1为起点,4为终点)。若将参考线要素记为线要素L,其形状点串从起点至终点的顺序依次为(5、6、7、8)(其中,5、6、7、8各自表示一个形状点,5为起点,8为终点),以当前遍历到的线要素G和参考线要素L为例,对上述1)-4)的合并的方法进行详细说明如下:
A:上述1)中,将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之后,例如:将线要素G的形状点按照从起点至终点的顺序添加至参考线要素L之后得到的线要素为“L-G”(5、6、7、8、1、2、3、4);其中,在线要素“L-G”中,5为起点,4为终点,由于默认相邻形状点之间线段连接,故参考线要素L的终点8与当前遍历到的线要素G的起点1之间是通过线段连接的,通过该线段最终将两线要素合并。
B:上述2)中,将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之后,例如:将线要素G的形状点按照从终点至起点的顺序添加至参考线要素L之后得到的线要素为“L-G’”(5、6、7、8、4、3、2、1);其中,在线要素“L-G’”中,5为起点,1为终点,由于默认相邻形状点之间线段连接,故参考线要素L的终点8与当前遍历到的线要素G的终点4之间是通过线段连接的,通过该线段最终将两线要素合并。
C:上述3)中,将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之前,例如:将线要素G的形状点按照从起点至终点的顺序添加至参考线要素L之前得到的线要素为“G-L”(1、2、3、4、5、6、7、8);其中,在线要素“G-L”中,1为起点,8为终点,由于默认相邻形状点之间线段连接,故当前遍历到的线要素G的终点4与参考线要素L的起点5与之间是通过线段连接的,通过该线段最终将两线要素合并。
D:上述4)中,将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之前,例如:将线要素G的形状点按照从终点到起点的顺序添加至参考线要素L之前得到的线要素为“G’-L”(4、3、2、1、5、6、7、8);其中,在线要素“G’-L”中,4为起点,8为终点,由于默认相邻形状点之间线段连接,故当前遍历到的线要素G的起点1与参考线要素L的起点5与之间是通过线段连接的,通过该线段最终将两线要素合并。
当然,需要说明的是,若相邻两形状点之间,并非均用简单的线段连接,而是还也可以为曲线连接,那么,在合并时,还需要生成使两线要素合并的两端点之间的线性连接信息,例如,合并后的线要素“G’-L”(4、3、2、1、5、6、7、8),由于线要素G中已预先有形状点4与3之间、形状点3与2之间、以及形状点2与1之间的连接信息,且线要素L中以预先有形状点5与6之间、形状点6与7之间、以及形状点7与8之间的线性连接信息,并没有使两线要素合并的两端点(即形状点1与形状点5)之间的线性连接信息。则,此时需要生成形状点1与形状点5之间的线性连接信息用于说明形状点1与形状点5之间的连接形状,例如该连接形状为线段,或弧线,当然也可以是其它的线性连接形状,本发明对此本发明不做限定。
其中,在一个实施例中,通过上述步骤101-步骤103的操作后,还可能有能合并的线要素却没有合并,例如,继续沿用上面的例A,判断的过程是参考线要素A与线要素B能够合并,生成了参考线要素A’,然后继续判断的结果是线要素A’与线要素C不能进行合并,然后线要素A’继续作为参考线要素,用于判断与线要素D能否合并,判断的结果是线要素A’与线要素D能合并,至此生成了由线要素B、D与线要素A合并在一起的参考线要素A”,最后继续判断线要素A”与E不能合并,便将参考线要素A”从待合并线要素队列中移除了,但是并未判断线要素A”与线要素C能否合并,故此,执行完上述步骤101-步骤103的操作后,还可能有能够合并的线要素却没有合并,故此,为了使得线要素能够进一步地充分合并,还可以执行以下操作:
步骤B1:将从待合并线要素队列中移除遍历完成时所得的参考线要素,添加到辅助线要素合并队列中。
步骤B2:若新的待合并线要素队列为空时,将辅助线要素合并队列中的线要素移至待合并线要素队列中,并执行步骤A、步骤B以及步骤C,直至没有能够合并的线要素为止。
其中,在一个实施例中,在步骤B2中,可以根据以下方法之一确定没有能够合并的线要素:
方法一、将每一次待合并线要素队列为空时,记为一轮循环操作(即执行步骤101-步骤103记为一轮循环操作)的结束,该结束代表下一轮循环操作的开始(当然第一轮循环操作是首次选择一条线要素作为参考线要素时开始的)。当一轮循环操作开始(包括第一轮循环操作)时,记录待合并线要素队列中的线要素的条数,记为初始条数,当一轮循环操作结束时,记录辅助线要素合并队列中的线要素的条数,记为结束条数,当初始条数等于结束条数时,则确定没有能够合并的线要素。
方法二、较佳的,一轮循环操作结束时判断结束条数是否为1,若为1表示待合并线要素队列中的线要素均合并在一起了,则确定没有能够合并的线要素,若否,则判断初始条数是否等于结束条数,若是,则确定没有能够合并的线要素。
这里对通过辅助线要素合并队列,进一步实现线要素充分合并的方法进行说明:继续沿用前面的例A,若对由线要素C和线要素E组成的新的待合并线要素队列执行一轮循环操作后,线要素C、E合并在一起生成线要素C’,则线要素C’同样被添加到辅助线要素合并队列中,成为辅助线要素合并队列中的第二条线要素。此时,新的待合并线要素队列为空,但辅助线要素合并队列中由于包括线要素A”和线要素C’,故此辅助线要素合并队列中的线要素的数量不为1,故此,将辅助线要素合并队列中的线要素移至待合并线要素队列中(此时辅助线要素合并队列已为空),并对待合并线要素队列重新进行步骤101-步骤103的操作。若一轮循环操作结束后,重新添加到辅助线要素合并队列中的线要素的条数还是2条(即辅助线要素合并队列移至待合并线要素合并队列前后,线要素的条数没有变化),则说明没有能够合并的线要素,故此,最终结束对线要素进行合并的操作。
其中,在一个实施例中,对线要素进行合并之后,当需要查询线要素所表示的道路时,所述方法还包括:
步骤C1:接收对电子地图中的道路的查询指令。
步骤C2:将该查询指令中的道路的合并后的线要素作为查询结果。
综上可见,本发明实施例提供一种电子地图中的线要素合并方法,本发明提供的方法,通过对道路进行采集而产生的至少两条线要素,判断两两之间是否能合并,将能合并的线要素合并在一起。相对于现有技术,能够更充分的将线要素合并,从而减少线要素的条数,达到节约存储资源的目的。此外,由于线要素的数量的减少,也能够提高查询线要素的效率。
实施例二
假设瓦片H中包括5条线要素分别记为1、2、3、4、5,这5条线要素的位置关系例如如图2所示。这里以对瓦片H的线要素进行合并为例,对本发明实施例提供的电子地图中的线要素合并方法进行详细说明,如图3所示,该方法包括以下步骤:
步骤301:获取瓦片H中的对同一道路进行分段采集产生的至少两条线要素并将其添加到待合并线要素队列中。
此时,假设待合并线要素队列中线要素的排列顺序为1、2、3、4、5。
步骤302:记录待合并线要素队列中的线要素条数,并从待合并线要素队列中选择一个线要素,作为参考线要素,之后执行步骤303。
步骤303:遍历待合并线要素队列中除参考线要素之外的线要素,针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并,若否,执行步骤304;若是,则执行步骤305。
步骤304:将当前遍历到的线要素保留在待合并线要素队列中。
步骤305:将当前遍历到的线要素与参考线要素合并,生成新的参考线要素用于遍历下一条线要素,并从待合并线要素队列中删除当前遍历到的线要素,之后执行步骤306。
步骤306:若待合并要素队列中所有的线要素均已被遍历,则将待合并线要素队列中遍历完成时所得的参考线要素移动至辅助线要素合并队列,得到新的待合并线要素队列,并判断新的待合并线要素队列是否为空,若否,则返回步骤302;若是,则执行步骤307。
其中,例如,当开始以线要素1为参考线要素时,进行合并操作之后的结果是,线要素1和线要素3以及线要素5合并在一起,而线要素2和线要素4不能与参考线要素合并。这时候,执行步骤306将线要素1和线要素3以及线要素5合并而成的线要素移至辅助线要素合并队列之后,由剩余的线要素2和线要素4组成新的待合并线要素队列。由于新的待合并线要素队列不为空,则针对该新的待合并队列返回执行步骤302的操作以便于继续合并线要素,假设对新的待合并线要素队列进行操作的结果是,线要素2与线要素4能合并,则将线要素2与线要素4合并后的线要素移动至辅助线要素合并队列中。至此,由于待合并线要素队列为空,则第一轮的循环操作结束,该轮循环操作的最终的操作结果如图4所示:表示线要素1和线要素3以及线要素5合并成一条线要素,线要素2与线要素4合成一条线要素。
步骤307:记录辅助线要素合并队列中的线要素的条数,并判断辅助线要素合并队列中是否只有一条线要素,若是,则结束,若否,则执行步骤308。
步骤308:判断记录的辅助线要素合并队列中的线要素的条数与步骤302中记录的线要素条数是否相同,若是,则结束,若否,则执行步骤309。
步骤309:将辅助线要素合并队列中的线要素移至待合并线要素队列中,并返回步骤302。
继续图4的例子,第一轮循环操作之后,辅助线要素合并队列中有两条线要素,则将这两条线要素移至待合并线要素队列中,继续对待合并线要素队列进行第二轮循环操作。当完成第二轮循环操作之后,假设待合并线要素队列中的两条线要素合并在一起了,那么操作的结果示意图如图5所示,表示瓦片H中的所有线要素合并成了一条线要素。之后,由于辅助线要素合并队列中仅剩余一条线要素,则对瓦片H的线要素的合并操作结束。
实施例三
基于相同的发明构思,本发明实施例还提供一种电子地图中的线要素合并装置,如图6所述,为该装置的示意图,该装置包括:
选择模块601,用于从待合并线要素队列中,选择一条线要素作为参考线要素;
合并模块602,用于执行步骤B:对参考线要素执行合并操作,该合并操作具体包括:
遍历待合并线要素队列中除参考线要素之外的线要素,针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并;若能,则将当前遍历到的线要素合并到参考线要素中生成新的参考线要素,并用新的参考线要素遍历下一条线要素,以及,从待合并线要素队列中删除当前遍历到的线要素;
若待合并要素队列中除参考线要素之外的线要素均已被遍历时,则从待合并线要素队列中移除遍历完成时所得的参考线要素,得到新的待合并线要素队列;
第一循环模块603,用于若新的待合并线要素队列不为空时,触发所述选择模块601。
需要说明的是,第一循环模块603,用于若新的待合并线要素队列不为空时,触发所述选择模块601与方法实施例中的流程相同,即指:第一循环模块603,用于若新的待合并线要素队列不为空时,触发所述选择模块601执行从待合并线要素队列中,选择一条线要素作为参考线要素的操作,然后合并模块602根据选择模块601选择的参考线要素,执行对参考线要素执行合并操作,然后又交由603模块执行操作,进入下一次循环,该循环的结束条件为待合并线要素队列为空。
其中,在一个实施例中,如图7所示,所述装置进一步包括:
转移模块604,用于将从待合并线要素队列中移除遍历完成时所得的参考线要素,添加到辅助线要素合并队列中;
则所述装置还包括:
第二循环模块605,用于若新的待合并线要素队列为空,将辅助线要素合并队列中的线要素移至待合并线要素队列中,并触发所述选择模块601,直至没有能够合并的线要素为止。
需要说明的是,第二循环模块605,用于若新的待合并线要素队列为空,将辅助线要素合并队列中的线要素移至待合并线要素队列中,并触发所述选择模块601,直至没有能够合并的线要素为止,与方法实施例中的流程相同,是指:第二循环模块605,用于若新的待合并线要素队列为空,将辅助线要素合并队列中的线要素移至待合并线要素队列中,然后由选择模块601执行从待合并线要素队列中,选择一条线要素作为参考线要素的操作,然后再由合并模块602根据选择模块601选择的参考线要素,执行对参考线要素执行合并操作,这之后,再由第一循环模块603执行若新的待合并线要素队列不为空时,触发所述选择模块601的操作,然后再由转移模块604,用于将从待合并线要素队列中移除遍历完成时所得的参考线要素,添加到辅助线要素合并队列中,这之后则再由第二循环模块605执行若新的待合并线要素队列为空,将辅助线要素合并队列中的线要素移至待合并线要素队列中并触发进入下一次循环。该循环的结束条件是直至没有能够合并的线要素为止。
其中,在一个实施例中,如图7所示,所述合并模块602,具体包括:
计算单元606,用于计算当前遍历到的线要素的端点与参考线要素的端点之间的距离;
判断单元607,用于判断上述计算的距离中是否有小于等于预设阈值的距离,若有,则确定当前遍历到的线要素能与参考线要素合并;若否,则确定当前遍历到的线要素不能与参考线要素合并。
其中,在一个实施例中,如图7所示,所述合并模块602,具体包括:
第一合并单元608,用于若参考线要素作为终点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之后;
第二合并单元609,用于若参考线要素作为终点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之后;
第三合并单元610,用于若参考线要素作为起点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之前;
第四合并单元611,用于若参考线要素作为起点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之前。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种电子地图中的线要素合并方法,其特征在于,所述方法包括:
步骤A:从待合并线要素队列中,选择一条线要素作为参考线要素;
步骤B:对参考线要素执行合并操作,该合并操作具体包括:
遍历待合并线要素队列中除参考线要素之外的线要素,针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并;若能,则将当前遍历到的线要素合并到参考线要素中生成新的参考线要素,并用新的参考线要素遍历下一条线要素,以及,从待合并线要素队列中删除当前遍历到的线要素;
若待合并要素队列中所有的线要素均已被遍历,则从待合并线要素队列中移除遍历完成时所得的参考线要素,得到新的待合并线要素队列;
步骤C:若新的待合并线要素队列不为空,则继续执行步骤A以及步骤B;
将从待合并线要素队列中移除遍历完成时所得的参考线要素,添加到辅助线要素合并队列中;
若新的待合并线要素队列为空,则所述方法还包括:
将辅助线要素合并队列中的线要素移至待合并线要素队列中,并执行步骤A、步骤B以及步骤C,直至没有能够合并的线要素为止。
2.根据权利要求1所述的方法,其特征在于,所述判断当前遍历到的线要素是否能与参考线要素合并,具体包括:
计算当前遍历到的线要素的端点与参考线要素的端点之间的距离;
判断上述计算的距离中是否有小于等于预设阈值的距离,若有,则确定当前遍历到的线要素能与参考线要素合并;若否,则确定当前遍历到的线要素不能与参考线要素合并。
3.根据权利要求2所述的方法,其特征在于,将当前遍历到的线要素合并到参考线要素中,具体包括:
若参考线要素作为终点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之后;
若参考线要素作为终点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之后;
若参考线要素作为起点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之前;
若参考线要素作为起点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之前。
4.一种电子地图中的线要素合并装置,其特征在于,所述装置包括:
选择模块,用于从待合并线要素队列中,选择一条线要素作为参考线要素;
合并模块,用于对参考线要素执行合并操作,该合并操作具体包括:
遍历待合并线要素队列中除参考线要素之外的线要素,针对当前遍历到的线要素,判断当前遍历到的线要素是否能与参考线要素合并;若能,则将当前遍历到的线要素合并到参考线要素中生成新的参考线要素,并用新的参考线要素遍历下一条线要素,以及,从待合并线要素队列中删除当前遍历到的线要素;若待合并要素队列中除参考线要素之外的线要素均已被遍历时,则从待合并线要素队列中移除遍历完成时所得的参考线要素,得到新的待合并线要素队列;
第一循环模块,用于若新的待合并线要素队列不为空时,触发所述选择模块;
转移模块,用于将从待合并线要素队列中移除遍历完成时所得的参考线要素,添加到辅助线要素合并队列中;
则所述装置还包括:
第二循环模块,用于若新的待合并线要素队列为空,将辅助线要素合并队列中的线要素移至待合并线要素队列中,并触发所述选择模块,直至没有能够合并的线要素为止。
5.根据权利要求4所述的装置,其特征在于,所述合并模块,具体包括:
计算单元,用于计算当前遍历到的线要素的端点与参考线要素的端点之间的距离;
判断单元,用于判断上述计算的距离中是否有小于等于预设阈值的距离,若有,则确定当前遍历到的线要素能与参考线要素合并;若否,则确定当前遍历到的线要素不能与参考线要素合并。
6.根据权利要求5所述的装置,其特征在于,所述合并模块,具体包括:
第一合并单元,用于若参考线要素作为终点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之后;
第二合并单元,用于若参考线要素作为终点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的终点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之后;
第三合并单元,用于若参考线要素作为起点的端点到当前遍历到的线要素作为终点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的终点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从起点到终点的顺序增加至参考线要素之前;
第四合并单元,用于若参考线要素作为起点的端点到当前遍历到的线要素作为起点的端点之间的距离小于等于预设阈值,则生成当前遍历到的线要素的起点和参考线要素的起点之间的连接信息,以将当前遍历到的线要素按照从终点到起点的顺序增加至参考线要素之前。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510208092.7A CN106156245B (zh) | 2015-04-28 | 2015-04-28 | 一种电子地图中的线要素合并方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510208092.7A CN106156245B (zh) | 2015-04-28 | 2015-04-28 | 一种电子地图中的线要素合并方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106156245A CN106156245A (zh) | 2016-11-23 |
CN106156245B true CN106156245B (zh) | 2020-02-14 |
Family
ID=57347659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510208092.7A Active CN106156245B (zh) | 2015-04-28 | 2015-04-28 | 一种电子地图中的线要素合并方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156245B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460146B (zh) * | 2018-03-20 | 2021-09-14 | 武汉光庭信息技术股份有限公司 | 一种地图显示数据的容量消减方法 |
CN108846882B (zh) * | 2018-06-25 | 2019-09-03 | 北京嘀嘀无限科技发展有限公司 | 一种确定点与围栏关系的方法、装置和电子设备 |
WO2020006685A1 (zh) * | 2018-07-03 | 2020-01-09 | 深圳前海达闼云端智能科技有限公司 | 一种建立地图的方法、终端和计算机可读存储介质 |
CN113375680B (zh) * | 2020-03-10 | 2024-03-29 | 阿里巴巴集团控股有限公司 | 电子地图中线要素的合并方法、装置与设备 |
CN115512601B (zh) * | 2022-11-15 | 2023-02-28 | 武汉智图科技有限责任公司 | 一种地理信息非连接线状要素自动拼接方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4727245B2 (ja) * | 2005-02-08 | 2011-07-20 | 三菱電機株式会社 | 地図情報処理装置 |
CN102194312B (zh) * | 2010-03-05 | 2014-07-02 | 高德软件有限公司 | 一种道路合并方法及道路合并装置 |
CN102136218B (zh) * | 2011-03-17 | 2012-09-26 | 武汉大学 | 一种计算机地图制图中的地图注记自动配置方法 |
CN104142962B (zh) * | 2013-05-10 | 2018-06-22 | 北京四维图新科技股份有限公司 | 一种对电子地图的线要素进行处理的方法 |
-
2015
- 2015-04-28 CN CN201510208092.7A patent/CN106156245B/zh active Active
Non-Patent Citations (2)
Title |
---|
"基于ArcObjects的线要素合并组件的设计与实现";傅深科,方源敏;《地矿测绘》;20070930;第37-39页 * |
"遥感影像数字判绘系统的设计与实现";芮杰;《中国优秀硕士学位论文全文数据库 基础科学辑》;20060415;第31-32页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106156245A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106156245B (zh) | 一种电子地图中的线要素合并方法及装置 | |
CN108801273B (zh) | 一种道路参考线的生成方法及装置 | |
CN102981884B (zh) | 序列化装置和序列化方法 | |
CN101459901B (zh) | 基于多级切片方式的矢量地图数据传输方法 | |
CN112344947A (zh) | 地图匹配方法、装置、电子设备和计算机可读存储介质 | |
KR101370989B1 (ko) | 3차원 스캔 데이터를 이용한 시공 오차 분석 방법 | |
CN109035364A (zh) | 一种基于cad地形图快速绘制剖面图的方法 | |
CN104346384A (zh) | 一种小文件处理方法及装置 | |
CN104331928A (zh) | 一种基于三角网的等高线高程自动赋值方法 | |
CN109035783A (zh) | 一种基于公交gps轨迹的虚拟路网缺失路段自动识别方法 | |
CN102194312B (zh) | 一种道路合并方法及道路合并装置 | |
CN109816131B (zh) | 路径规划方法、路径规划装置及计算机可读存储介质 | |
CN106384389A (zh) | 一种模型数据进行纹理合并的方法 | |
CN109213898A (zh) | 视频监控系统的录像检索方法及装置 | |
CN102855299A (zh) | 不中断服务条件下,分布式数据库迭代迁移的方法 | |
CN104915053A (zh) | 一种界面控件的位置确定方法和装置 | |
CN104376084A (zh) | 路径相似度计算方法和装置 | |
CN112418193B (zh) | 一种车道线识别方法及系统 | |
CN105447064A (zh) | 一种电子地图数据制作及其使用方法和装置 | |
CN104977016A (zh) | 导航处理方法及移动智能终端 | |
CN110275895A (zh) | 一种缺失交通数据的填充设备、装置及方法 | |
CN103593409A (zh) | 实时数据库检索方法及检索系统 | |
CN105806348B (zh) | 一种道路数据存储方法及设备 | |
CN103714192B (zh) | 基于自适应r-树的大数据量铁路三维设计模型渲染方法 | |
CN102591845B (zh) | 一种重叠文字的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200421 Address after: 310012 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 102200, No. 8, No., Changsheng Road, Changping District science and Technology Park, Beijing, China. 1-5 Patentee before: AUTONAVI SOFTWARE Co.,Ltd. |
|
TR01 | Transfer of patent right |