动态瓦片地图的获取方法与装置制造方法

文档序号:6502479阅读:253来源:国知局
动态瓦片地图的获取方法与装置制造方法
【专利摘要】本发明公开一种动态瓦片地图的获取方法与装置,用于动态交通瓦片快速切图,并快速发布。该动态瓦片地图的获取方法包括:对实时获取的动态交通信息进行数据解析,得到每条道路的动态交通状况信息;定时根据所述动态交通状况信息确定交通状况发生更新的区域;对所述交通状况发生更新的区域进行切图,并以二进制流的方式将所述切图缓存到内存中,生成动态瓦片地图。采用本发明的技术方案,在时时获得TMC动态交通数据后,可以快速切图,并以二进制流的方式缓存,减少磁盘碎片,提高访问效率。
【专利说明】动态瓦片地图的获取方法与装置

【技术领域】
[0001] 本发明涉及动态交通地图领域,更具体的,涉及一种动态瓦片地图的获取方法与 装直。

【背景技术】
[0002] 目前各大地图网站都提供动态交通服务信息,其本质是后台服务根据动态交通信 息切成瓦片,提供图片动态交通瓦片(png类型图片)信息。动态交通信息从动态交通信息 服务提供商处获得,以http协议提供动态交通XML格式的TMC数据。再根据获得的TMC数 据进行解析后根据解析结果获得每条道路上的交通状况信息进行动态切图,把道路交通状 况以不同的颜色绘制成图片。根据客户端请求的范围从服务器获得需要的瓦片信息在客户 端拼接成地图。提供瓦片的服务以http协议的方式提供。
[0003] 可以发现上述各大地图网站提供动态交通服务信息存在的问题是:更新速度比较 慢。
[0004] 因此,现有技术存在更新不及时的问题。


【发明内容】

[0005] 本发明提供一种动态瓦片地图的获取方法与装置,用于解决现有技术存在更新不 及时的问题。
[0006] 为实现上述目的,根据本发明的一个方面,提供一种动态瓦片地图的获取方法与 装置,并采用如下技术方案:
[0007] 动态瓦片地图的获取方法包括:对实时获取的动态交通信息进行数据解析,得到 每条道路的动态交通状况信息;定时根据所述动态交通状况信息确定交通状况发生更新的 区域;对所述交通状况发生更新的区域进行切图,并以二进制流的方式将所述切图缓存到 内存中,生成动态瓦片地图。
[0008] 进一步地,所述对实时获取的动态交通信息进行数据解析包括:通过共享服务池 对所述实时获取的动态交通信息进行存储;采用多进程与多线程的方式将所述动态交通信 息从所述服务池中供给所述数据解析。
[0009] 进一步地,所述定时根据所述动态交通状况信息确定交通状况发生更新的区域包 括:定时将所述动态交通状况信息与上一次获取的动态交通状况信息进行对比,并得出对 比结果;根据所述对比结果确定所述交通状况发生更新的区域。
[0010] 进一步地,所述对所述交通状况发生更新的区域进行切图包括:计算所述发生更 新的区域内需要绘制地图的数量;按照所述数量绘制地图并将每块地图切成预设块数;以 及将所述预设块数的地图转换为预设的格式。
[0011] 进一步地,在所述以二进制流的方式将所述切图缓存到内存中之后,还包括:直接 从所述内存中以二进制流的方式将所述切图返回给发起请求的用户。
[0012] 根据本发明的另外一个方面,提供一种动态瓦片地图的获取装置,并采用如下技 术方案:
[0013] 动态瓦片地图的获取装置包括:数据解析模块,用于对实时获取的动态交通信息 进行数据解析,得到每条道路的动态交通状况信息;确定模块,用于定时根据所述动态交通 状况信息确定交通状况发生更新的区域;切图模块,用于对所述交通状况发生更新的区域 进行切图,并以二进制流的方式将所述切图缓存到内存中,生成动态瓦片地图。
[0014] 进一步地,所述数据解析模块包括:存储模块,用于通过共享服务池对所述实时获 取的动态交通信息进行存储;供给模块,用于采用多进程与多线程的方式将所述动态交通 信息从所述服务池中供给所述数据解析。
[0015] 进一步地,所述确定模块包括:对比模块,用于定时将所述动态交通状况信息与上 一次获取的动态交通状况信息进行对比,并得出对比结果;确定子模块,用于根据所述对比 结果确定所述交通状况发生更新的区域。
[0016] 进一步地,所述切图模块包括:计算模块,用于计算所述发生更新的区域内需要绘 制地图的数量;切图子模块,用于按照所述数量绘制地图并将每块地图切成预设块数;以 及转换模块,用于将所述预设块数的地图转换为预设的格式。
[0017] 进一步地,获取装置还包括:返回模块,用于直接从所述内存中以二进制流的方式 将所述切图返回给发起请求的用户。
[0018] 本发明通过时时获取动态交通信息,实现动态瓦片地图的快速更新,同时以二进 制流的方式将切图缓存到内存中,减少快速更新对磁盘的损害。

【专利附图】

【附图说明】
[0019] 附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0020] 图1表示本发明实施例一所述的动态瓦片地图的获取方法的流程图;
[0021] 图2表示本发明实施例一所述的TMC数据获取方法流程图;
[0022] 图3表不本发明实施例一所述的用户获取切图与瓦片的流程图;
[0023] 图4表示本发明实施例一所述的切图服务的方法流程图;
[0024] 图5表示本发明实施例一所述的切图功能调用示意图;以及
[0025] 图6表示本发明实施例二所述的动态瓦片地图的获取装置结构示意图。

【具体实施方式】
[0026] 附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0027] 图1表示本发明实施例一所述的动态瓦片地图的获取方法的流程图。
[0028] 参见图1所示,动态瓦片地图的获取方法包括:
[0029] S101 :对实时获取的动态交通信息进行数据解析,得到每条道路的动态交通状况 信息;
[0030] S103 :定时根据所述动态交通状况信息确定交通状况发生更新的区域;
[0031] S105:对所述交通状况发生更新的区域进行切图,并以二进制流的方式将所述切 图缓存到内存中,生成动态瓦片地图。
[0032] 在步骤S101中,动态交通信息来自于动态交通信息服务提供商,与之前定时到动 态交通信息服务提供商处获取动态交通信息不同的时,本发明时时从动态交通信息服务提 供商处获取动态交通信息,即TMC (Traffic Message Channel,实时交通信息)数据。对 TMC数据进行解析,获得动态交通信息与道路LINK关系,即每条道路的动态交通状况信息, 将每条道路的动态交通状况信息缓存到服务器中。在步骤S103中,按照一定的时间间隔将 每条道路的动态交通状况信息与上一时段的每条道路的动态交通状况信息进行比对,对动 态交通状况信息发送变化的区域进行更新。在步骤S105中,根据交通状况信息发生更新的 区域,按照提前划分的切图服务负责的区域进行切图。根据切图结果,直接以二进制流的方 式对瓦片进行缓存。
[0033] 在本发明的上述实施例中,时时获取动态交通信息的做法使得动态交通瓦片地图 可以及时得到更新,对于快速更新的交通状况信息,采用快速切图的方法对更新的区域进 行切图,并以二进制流的方式缓存,由于TMC数据更新较快,而且读取也比较快,放入内存 可以提高访问速度和更新效率。采用缓存的方式也是基于同样的原因,即图片数量多,更新 频率比较快,如果写磁盘会生成很多磁盘碎片。同时对磁盘损坏比较严重而且有的操作系 统对文件个数有限制,因此采用二进制的形式缓存到内存中可以克服上述问题。
[0034] 优选地,所述对实时获取的动态交通信息进行数据解析包括:通过共享服务池对 所述实时获取的动态交通信息进行存储;采用多进程与多线程的方式将所述动态交通信息 从所述服务池中供给所述数据解析。
[0035] 图2表示本发明实施例一所述的TMC数据获取方法流程图。
[0036] 参见图2所示,获取TMC数据以服务池的方式提供,在图2中,采用多进程和多线 程结合的方式,在步骤S20启动获取TMC数据启动服务中,加载缓存与定时获取两进程同时 进行,即定时器同时启动获取地址url请求缓存队列以及通知获取TMC数据两个进程,在加 载缓存进程中,获取服务器中TMC的url请求队列,得到缓存列队,在步骤S202服务池中, 得到缓存队列与通知TMC数据,获取TMC数据的服务启动,即到TMC数据服务提供商处获取 TMC数据,然后存储TMC数据到TMC数据缓存中,这样就获得了原始的TMC数据。
[0037] 获取TMC数据以服务池的方式提供,采用多进程与多线程结合的方式,提高获取 速度与效率,保证数据的时时性。
[0038] 图3表不本发明实施例一所述的用户获取切图与瓦片的流程图。
[0039] 在图3中,对本实施例中的用户获取切图与瓦片的流程给予了更详尽的阐述,同 样是采用多进程与多线程相结合的方式。
[0040] 参见图3所示,瓦片获取服务API接口、瓦片启动服务与得到TMC数据同时开启。
[0041] 步骤4b,为得到TMC数据后进入得到瓦片服务。
[0042] 得到瓦片服务执行:
[0043] 步骤7b,返回瓦片至瓦片获取服务接口。
[0044] 步骤8a :保存瓦片至瓦片池。
[0045] 步骤9:更新动态瓦片标志至城市分块缓存和动态瓦片标志缓存。
[0046] 步骤3b :判断瓦片是否存在,若存在,进入城市分块缓存和动态瓦片标志缓存。
[0047] 步骤5b :切9*16 (256*256)的瓦片,当然,也可以按照其他尺寸进行切图。
[0048] 在切片服务池执行切片命令后执行:
[0049] 步骤6 :返回图片流至分块瓦片管理服务与得到瓦片服务。
[0050] 进入分块瓦片管理服务后执行:
[0051] 步骤4a :时间戳变化,刷新缓存状态为默认值。
[0052] 步骤7a :保存瓦片流至瓦片池。
[0053] 步骤8b :更新城市分块缓存状态,然后进入城市分块缓存和动态瓦片标志缓存。
[0054] 瓦片启动服务首先开启加载有瓦片的索引以及加载城市分块索引,加载城市分块 索引得到城市分块缓存和动态瓦片标志缓存,由此进入:
[0055] 步骤lb,得到未切分块标志和分块范围,启动定时切片。
[0056] 步骤3b,通知切图进入分块瓦片管理服务。
[0057] 在瓦片获取服务API接口进程中按如下步骤进行:
[0058] 步骤la :判断是否为空瓦片,若不为空瓦片,进入有瓦片的索引。
[0059] 步骤2a :向分块瓦片管理服务发通知。
[0060] 步骤2b :得到瓦片进入得到瓦片服务。
[0061] 在上述技术方案中,通过定时刷新缓存状态,并对更新的区域进行切图服务,提供 快速更新的地图瓦片数据。
[0062] 优选地,所述对所述交通状况发生更新的区域进行切图包括:计算所述发生更新 的区域内需要绘制地图的数量;按照所述数量绘制地图并将每块地图切成预设块数;以及 将所述预设块数的地图转换为预设的格式。
[0063] 图4表示本发明实施例一所述的切图服务的方法流程图。
[0064] 参见图4所示,切图服务的方法可以通过如下步骤进行:
[0065] 步骤40 :数据准备;
[0066] 该数据即为从数据服务提供商处提供的原始动态交通信息数据。
[0067] 步骤41 :定时器启动切片;
[0068] 步骤42 :得到TMC数据,更新线路状态;
[0069] 步骤43 :得到全国TMC数据;
[0070] 步骤44 :顺序读取传入的每条TMC数据;
[0071] 步骤45 :根据每条TMC数据刷新位置状态表;
[0072] 步骤46 :根据位置状态数据更新对应的线路状态;
[0073] 步骤47 :根据线路变化绘制实时交通图;
[0074] 步骤48 :得到指定范围的线路;
[0075] 步骤49 :计算此范围内有多少块需要绘制的地图;
[0076] 步骤50 :按照绘制规则每块地图;
[0077] 步骤51 :将每块地图切成16张;
[0078] 步骤52 :分别将16张地图转为PNG格式;
[0079] 步骤53 :将PNG格式地图存入缓存池。
[0080] 该实施例给出切图的具体步骤,体现切图服务的高效性,同时,瓦片与TMC数据全 部以内存的形式进行存储,保证服务的高效访问和快速更新。
[0081] 在该实施例中,应用到切图功能的调用实现,图5表示本发明实施例一所述的切 图功能调用示意图。参见图5所示,通过使用JNI59 (Java Native Interface。它允许 Java代码和其他语言写的代码进行交互)调用系统的SO静态库58,获得用户系统需要的满 足一定规范的JAVA类对象。
[0082] 采用JNI调用S0静态库,可以利用C++的高效性实现引擎的计算服务,同时利用 java的JNI技术实现java与S0的交互,使前台应用可以夸平台。
[0083] 优选地,在所述以二进制流的方式将所述切图缓存到内存中之后,还包括:直接从 所述内存中以二进制流的方式将所述切图返回给发起请求的用户。
[0084] 用户通过行列号已经显示级别请求图片时直接从内存中获得图片的二进制流返 回给用户,可以提高用户访问效率,在客户端直接显示即可。
[0085] 图6表示本发明实施例二所述的动态瓦片地图的获取装置结构示意图。
[0086] 动态瓦片地图的获取装置包括:数据解析模块60,用于对实时获取的动态交通信 息进行数据解析,得到每条道路的动态交通状况信息;确定模块62,用于定时根据所述动 态交通状况信息确定交通状况发生更新的区域;切图模块64,用于对所述交通状况发生更 新的区域进行切图,并以二进制流的方式将所述切图缓存到内存中,生成动态瓦片地图。 [0087] 可选地,所述数据解析模块60包括:存储模块(图中未示),用于通过共享服务池 对所述实时获取的动态交通信息进行存储;供给模块(图中未示),用于采用多进程与多线 程的方式将所述动态交通信息从所述服务池中供给所述数据解析。
[0088] 可选地,所述确定模块62包括:对比模块(图中未示),用于定时将所述动态交通 状况信息与上一次获取的动态交通状况信息进行对比,并得出对比结果;确定子模块(图中 未示),用于根据所述对比结果确定所述交通状况发生更新的区域。
[0089] 可选地,所述切图模块64包括:计算模块(图中未示),用于计算所述发生更新的 区域内需要绘制地图的数量;切图子模块(图中未示),用于按照所述数量绘制地图并将每 块地图切成预设块数;以及转换模块(图中未示),用于将所述预设块数的地图转换为预设 的格式。
[0090] 可选地,获取装置(图中未示)还包括:返回模块(图中未示),用于直接从所述内存 中以二进制流的方式将所述切图返回给发起请求的用户。
[0091] 本发明通过时时获取动态交通信息,实现动态瓦片地图的快速更新,同时以二进 制流的方式将切图缓存到内存中,减少快速更新对磁盘的损害。
【权利要求】
1. 一种动态瓦片地图的获取方法,其特征在于,包括: 对实时获取的动态交通信息进行数据解析,得到每条道路的动态交通状况信息; 定时根据所述动态交通状况信息确定交通状况发生更新的区域; 对所述交通状况发生更新的区域进行切图,并以二进制流的方式将所述切图缓存到内 存中,生成动态瓦片地图。
2. 如权利要求1所述的获取方法,其特征在于,所述对实时获取的动态交通信息进行 数据解析包括: 通过共享服务池对所述实时获取的动态交通信息进行存储; 采用多进程与多线程的方式将所述动态交通信息从所述服务池中供给所述数据解析。
3. 如权利要求1所述的获取方法,其特征在于,所述定时根据所述动态交通状况信息 确定交通状况发生更新的区域包括: 定时将所述动态交通状况信息与上一次获取的动态交通状况信息进行对比,并得出对 比结果; 根据所述对比结果确定所述交通状况发生更新的区域。
4. 如权利要求1或3所述的获取方法,其特征在于,所述对所述交通状况发生更新的区 域进行切图包括: 计算所述发生更新的区域内需要绘制地图的数量; 按照所述数量绘制地图并将每块地图切成预设块数;以及 将所述预设块数的地图转换为预设的格式。
5. 如权利要求1所述的获取方法,其特征在于,在所述以二进制流的方式将所述切图 缓存到内存中之后,还包括: 直接从所述内存中以二进制流的方式将所述切图返回给发起请求的用户。
6. -种动态瓦片地图的获取装置,其特征在于,包括: 数据解析模块,用于对实时获取的动态交通信息进行数据解析,得到每条道路的动态 交通状况信息; 确定模块,用于定时根据所述动态交通状况信息确定交通状况发生更新的区域; 切图模块,用于对所述交通状况发生更新的区域进行切图,并以二进制流的方式将所 述切图缓存到内存中,生成动态瓦片地图。
7. 如权利要求6所述的获取装置,其特征在于,所述数据解析模块包括: 存储模块,用于通过共享服务池对所述实时获取的动态交通信息进行存储; 供给模块,用于采用多进程与多线程的方式将所述动态交通信息从所述服务池中供给 所述数据解析。
8. 如权利要求6所述的获取装置,其特征在于,所述确定模块包括: 对比模块,用于定时将所述动态交通状况信息与上一次获取的动态交通状况信息进行 对比,并得出对比结果; 确定子模块,用于根据所述对比结果确定所述交通状况发生更新的区域。
9. 如权利要求6或8所述的获取装置,其特征在于,所述切图模块包括: 计算模块,用于计算所述发生更新的区域内需要绘制地图的数量; 切图子模块,用于按照所述数量绘制地图并将每块地图切成预设块数;以及 转换模块,用于将所述预设块数的地图转换为预设的格式。
10.如权利要求6所述的获取装置,其特征在于,还包括: 返回模块,用于直接从所述内存中以二进制流的方式将所述切图返回给发起请求的用 户。
【文档编号】G06F17/30GK104142935SQ201310164554
【公开日】2014年11月12日 申请日期:2013年5月7日 优先权日:2013年5月7日
【发明者】王鹏 申请人:北京四维图新科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1