一种道路编码方法及装置的制造方法
【技术领域】
[0001]本发明涉及地理信息系统领域,尤其是涉及一种道路编码方法及装置。
【背景技术】
[0002]目前,服务器端在得到每条道路的交通信息时,将道路的编码及道路的交通信息发送给应用端,应用端根据接收到的编码和交通信息发布与编码相应道路的交通信息。如道路A的编码为ID01,服务器端将编码为IDOl对应的交通信息发送应用端,应用端根据接收到的编码为IDOl的交通信息作为道路A的交通信息发布。
[0003]目前对道路进行编码的方式具体如下:由ID生成器通过简单递增的方式生成路网中各道路的编码。但是由于道路废除、增加、改变等原因,使得新版本的道路数据与旧版本的道路数据不一致,因此采用ID生成器对每一个道路数据版本的道路进行编码,将有很大的概率使得同一条道路在不同的道路数据版本中该道路的编码不一致,例如只要其中有一条道路的编码发生改变,通过ID生成器简单递增来生成道路的编码,其将可能导致后续大量的道路的编码发生改变。例如在道路数据版本I中,道路A和道路B的编码分别为IDOl和ID02 ;假设在道路A和道路B之间增加了一条新道路C,当该道路数据版本I升级为道路数据版本2后,按照递增方式对道路数据版本2中的道路A、道路B、道路C进行编码后,得到编码分别为ID01、ID03和ID02,明显,对于同一条道路B,在不同的道路数据版本中,该道路B的编码不同。
[0004]若服务器端的道路数据版本已经由版本I更新为版本2,即在服务器端道路B的编码由ID02变更为ID03,而应用端的版本仍然为道路数据版本1,在应用端道路B的编码仍然为ID02。此时,服务器端按照道路数据版本2中的道路的编码信息,将道路C对应的编码ID02的交通信息发送给应用端时,应用端仍然按照道路数据版本I中各道路的编码进行匹配,匹配得到编码ID02对应的道路为道路B,此时,应用端将服务器端发送的ID02的交通信息作为道路B的交通信息进行发布,但是实际上对于服务器端而言ID02的交通信息是道路C的交通信息,因此,当应用端与服务器端的道路数据版本不一致时,应用端发布的道路的交通信息将可能出现错误。
[0005]综上所述,现有的道路编码方式存在以下技术缺陷:
[0006]随着道路数据版本的升级,同一条道路的编码很可能会发生变化,即同一条道路在不同的版本中对应的编码不同,因此,当服务器端的道路数据版本发生变化导致某些道路的编码发生改变时,若应用端的道路数据版本没能及时与服务器的道路数据版本同步,将会导致应用端根据服务器端下发的道路编码匹配道路不准确,从而导致交通信息发布错误的问题。
【发明内容】
[0007]本发明解决的技术问题在于提供一种道路编码方法和装置,以解决现有技术中道路数据版本发生改变导致道路编码发生改变,从而导致道路匹配不准确的问题。
[0008]为此,本发明解决技术问题的技术方案是:
[0009]本发明提供了一种道路编码方法,包括:
[0010]从待编码道路中选取形状点;其中,所述形状点包括所述待编码道路的起点和终占.
[0011]采用预置的至少两种散列函数,分别将所述待编码道路中的形状点的经纬度坐标转换成数字串;
[0012]根据各散列函数转换得到的数字串,生成所述待编码道路的编码。
[0013]优选的,生成所述待编码道路的编码之后,还包括:
[0014]将所述待编码道路的编码与已编码道路的编码进行比较,若确定出存在编码与所述待编码道路的编码一致的已编码道路时,执行以下步骤:
[0015]判断所述待编码道路的长度是否大于等于确定出的已编码道路的长度;
[0016]若是,则将所述待编码道路作为新的待编码道路;若否,则将所述已编码道路作为新的待编码道路,并将所述待编码道路作为已编码道路;
[0017]从所述新的待编码道路中选取新的形状点,并采用所述至少两种散列函数,分别将所述新的待编码道路中的已选取的形状点和新的形状点的经纬度坐标转换成数字串;根据各散列函数转换得到的数字串,生成所述新的待编码道路的编码。
[0018]优选的,根据各散列函数转换得到的数字串,生成所述待编码道路的编码,具体包括:
[0019]将各散列函数转换得到的数字串进行拼接,将得到的拼接数字串确定为所述待编码道路的编码。
[0020]优选的,采用预置的至少两种散列函数,分别将所述待编码道路中的形状点的经纬度坐标转换成数字串,具体包括:
[0021]针对每一种散列函数,采用该散列函数将所述待编码道路中的每一个形状点的经纬度坐标转换成一个子数字串,将各形状点对应的子数字串拼接成一个数字串,将拼接得到的该数字串确定为该散列函数转换得到的数字串。
[0022]优选的,采用该散列函数将所述待编码道路中的每一个形状点的经纬度坐标转换成一个子数字串,具体包括:
[0023]针对每一个形状点,采用该散列函数将该形状点的经度转换成第一数字串,以及将该形状点的纬度转换成第二数字串;
[0024]将所述第一数字串与所述第二数字串拼接成一个子数字串,将该子数字串确定为采用该散列函数将该形状点的经纬度坐标转换得到的子数字串。
[0025]本发明还提供了一种道路编码装置,包括:
[0026]第一选取单元,用于从待编码道路中选取形状点;其中,所述形状点包括所述待编码道路的起点和终点;
[0027]第一转换单元,用于采用预置的至少两种散列函数,分别将所述待编码道路中的形状点的经纬度坐标转换成数字串;
[0028]第一生成单元,用于根据各散列函数转换得到的数字串,生成所述待编码道路的编码。
[0029]优选的,还包括:
[0030]比较单元,用于将所述待编码道路的编码与已编码道路的编码进行比较,若确定出存在编码与所述待编码道路的编码一致的已编码道路时,触发判断单元;
[0031]所述判断单元,用于判断所述待编码道路的长度是否大于等于确定出的已编码道路的长度;
[0032]确定单元,用于在所述判断单元判断为是时,将所述待编码道路作为新的待编码道路;以及在所述判断单元判断为否时,将所述已编码道路作为新的待编码道路,并将所述待编码道路作为已编码道路;
[0033]第二选取单元,用于从所述新的待编码道路中选取新的形状点;
[0034]第二转换单元,用于采用所述至少两种散列函数,分别将所述新的待编码道路中的已选取的形状点和新的形状点的经纬度坐标转换成数字串;
[0035]第二生成单元,用于根据所述第二转换单元根据各散列函数转换得到的数字串,生成所述新的待编码道路的编码。
[0036]优选的,所述第一生成单元,具体用于:
[0037]将各散列函数转换得到的数字串进行拼接,将得到的拼接数字串确定为所述待编码道路的编码。
[0038]优选的,所述第一转换单元,具体用于:
[0039]针对每一种散列函数,采用该散列函数将所述待编码道路中的每一个形状点的经纬度坐标转换成一个子数字串,将各形状点对应的子数字串拼接成一个数字串,将拼接得到的该数字串确定为该散列函数转换得到的数字串。
[0040]优选的,所述第一转换单元采用该散列函数将所述待编码道路中的每一个形状点的经纬度坐标转换成一个子数字串,具体用于:
[0041]针对每一个形状点,采用该散列函数将该形状点的经度转换成第一数字串,以及将该形状点的纬度转换成第二数字串;
[0042]将所述第一数字串与所述第二数字串拼接成一个子数字串,将该子数字串确定为采用该散列函数将该形状点的经纬度坐标转换得到的子数字串。
[0043]本发明技术方案,在生成道路的编码时,选取道路的形状点,并采用至少两种散列函数分别将道路的形状