用于交换不同数据格式下的位置内容数据的方法和系统与流程

文档序号:12466148阅读:184来源:国知局
用于交换不同数据格式下的位置内容数据的方法和系统与流程

相关申请的交叉引用

本专利申请涉及同日提交的同时待审的以下专利申请:序列号12/362,734、题为“METHOD AND SYSTEM FOR ASSESSING QUALITY OF LOCATION CONTENT”;序列号12/362,751、题为“METHOD AND SYSTEM FOR MANAGING RELATIONSHIPS BETWEEN LOCATION IDENTIFIERS”;序列号12/362,767、题为“METHOD AND SYSTEM FOR REFRESHING LOCATION CODE DATA”;以及序列号12/362,786、题为“METHOD FOR REPRESENTING LINEAR FEATURES IN A LOCATION CONTENT MANAGEMENT SYSTEM”。

技术领域

本发明一般地涉及基于位置的系统,并且更具体地涉及用于交换不同数据格式下的位置内容数据的方法和系统。



背景技术:

已经开发了提供有关导航和有关地图的服务的各种技术。例如,车辆导航系统可以确定车辆位于什么地方并且提供用于行进(travel)到期望目的地的方向。而且,可得到提供地图、用于从指定的开始点行进到期望目的地的方向、以及其他有关地图的服务的因特网站点。此外,可得到可以确定某人的地点并且提供某人的周围环境的地图的手持设备。

为了提供这些和其他有关地图的功能和特征,导航系统使用地理数据。地理数据可以是一个或多个地理数据库的形式,所述一个或多个地理数据库包括表示地理区域中的物理特征的数据。地理数据库包括关于所表示的地理特征的信息,所表示的地理特征诸如单行线(one-way street)、道路的地点、沿着道路部分的限速、沿着道路部分的地址范围、道路交叉点处的转弯限制、诸如单行线之类的方向限制等等。另外,地理数据可以包括与诸如饭店、酒店、飞机场、加油站、体育场、警察局等兴趣点相关联的数据。

该地理数据可以被存储在地理数据库中,诸如由伊利诺伊州芝加哥的NAVTEQ North America,LLC发布的地理数据库。除了由地图卖方获得的数据之外,第三方具有关于地理区域中的位置的数据。第三方可以将他们的数据提供给地图卖方以将其包括到地理数据库中。例如,连锁饭店所有者可以向地图卖方提供所有的他们的位置的当前列表,并且对于每个位置,该列表可以包括地址、电话号码、营业时间、菜单、网页地址、以及关于位置的其他信息。

随着在地理数据库中存储的信息量增加,地图卖方将第三方数据添加到地理数据库变得更加困难。结果,已经开发了允许多方提供有关位置的数据的位置内容管理系统,所述有关位置的数据有时被称为“位置内容”或简单地被称为“内容”。位置内容管理系统提供位置内容和与该内容相关联的地理位置之间的链接。该链接是位置内容管理系统分配给位置的位置代码。

可以将位置代码分配给人员可以行进到的任何位置。例如,人员可能想要行进到地理区域中的特定建筑物中的特定楼层上的特定办公室。使用此示例,位置内容管理系统将位置代码分配给办公室、楼层和建筑物中的每一个。如果该楼层不是在该建筑物的地面层上,则位置内容管理系统还可以将位置代码分配给楼梯和/或电梯。通过以此方式分配位置代码,导航系统可以为用户提供用于行进到该建筑物内的该办公室的路线向导。

尽管位置内容管理系统提供了多方提供关于位置的内容的方式,但是在位置内容管理系统中继续有新特征和改进的空间。改进的一个领域是便利位置内容管理系统与提供位置内容给位置内容管理系统和/或从位置内容管理系统获得位置内容的系统之间的通信。由于可以通过这些系统使用宽泛的多种数据格式,因此,无论在通信中使用什么数据格式,位置内容管理系统都能够与所述系统通信将是有益的。



技术实现要素:

公开了一种用于交换不同数据格式下的位置内容数据的方法和系统。位置内容管理系统包括数据交换系统。数据交换系统允许位置内容管理系统与一个或多个提供和/或使用(consume)其它数据格式下的位置内容的系统之间的数据交换。数据交换系统包括用于将位置内容数据从一种格式转换为另一种格式的输入数据变换器和输出数据变换器。输入数据变换器和输出数据变换器使用为数据格式定义的规则来执行数据转换。

通过在适当时参照附图而阅读以下详细描述,这些以及其它方面和优点将对于本领域普通技术人员来说变得显而易见。另外,应理解:此发明内容仅仅是示例,并不意在如所要求的限制本发明的范围。

附图说明

下面结合附图描述目前优选的实施例,在附图中,相似的参考标号在各图中指代相似的元素,并且其中:

图1是根据一示例的位置内容数据交换系统的框图;

图2是根据一示例的用于图1所描绘的位置内容数据交换系统的输入数据变换器子系统的框图;

图3是根据一示例的用于图1所描绘的位置内容数据交换系统的输出数据变换器子系统的框图;以及

图4是根据一示例的交换位置内容数据的方法的流程图。

具体实施方式

图1是用于在位置内容管理系统与一个或多个提供和/或使用其它数据格式下的位置内容的系统之间进行数据交换的位置内容数据交换系统100的框图。在这里被称为第三方系统的这些系统包括与检索(retrieve)、添加、修改、和/或删除在位置内容管理系统中存储的位置内容的任何实体相关联的系统。例如,该实体可以是地图卖方、位置所有者/运营商、政府机关、商会、个人、或者任何其他方。

位置内容是与位置相关联的任何信息。该信息可以是静态(static)内容(即,不频繁改变的),诸如街道地址、电话号码、传真号码、以及营业时间。该信息可以是动态内容(即,频繁改变的),诸如油价、气象报道、航班状态、以及交通报道。该信息可以是包括文本、二维图像、三维图像、视频、多媒体等等的任何格式。

数据交换系统100优选地是位置内容管理系统的子系统,但是也可以是独立的系统或者被并入另一系统中。数据交换系统100包括输入数据接收器101、输入数据变换器102、调用器(invoker)103、错误处理器104、输出数据变换器105、输出数据发送器106、插入引擎(plug-in engine)107、输入数据存储器108、输出数据存储器109、以及数据存取控制器110。数据交换系统100可以包括附加的组件,或者具有与图1所示的设计不同的设计。

输入数据接收器101包括可操作用于经由不同类型的数据网络接受各种数据格式下的与位置代码相关联的输入数据的软件和硬件组件的组合。例如,第三方网站可以使用超文本传输协议(HTTP)POST方法经由因特网发送地理标记语言(GML)格式下的位置内容。其它数据格式包括但不限于Garmin的GPS交换格式(GPX)、Nokia的地标交换格式(LMX)、Keyhole标记语言(KML)、whereonearthID、交通消息信道(TMC)、AGORA-C、以及各种地图卖方格式。

输入数据接收器101将所接受的数据提供给输入数据变换器102。输入数据变换器102验证输入数据,并且基于为每种数据格式定义的一个或多个规则来应用适当的变换。例如,开放地理空间协会(OGC,Open Geospatial Consortium)定义用于GML的规则。输入数据变换器102支持用于单个数据操作以及批量负荷操作两者的变换。参照图2描述示例的输入数据变换器设计。

输入数据变换器102将经过变换的数据提供给调用器103。调用器103将经过变换的数据发送给位置参考系统。位置参考系统是将位置代码分配给相关联的地理位置并且存储与该位置代码相关联的位置内容的、位置内容管理系统的组件。如果必要,调用器103在传送数据之前进一步变换数据以符合位置参考系统的格式规则。

当在数据变换期间错误发生时,输入数据变换器102还将错误消息发送给错误处理器104。另外,当在将经过变换的数据传送到位置参考系统期间发生错误时,调用器103将错误消息发送给错误处理器104。错误处理器104解译消息中的系统和应用错误代码,并且做出关于如何继续进行、通知谁等等的基于规则的决定。可以基于数据格式、内容、和/或诸如根据情况的(circumstantial)元数据(例如所尝试的变换和/或传送的日期和时间)之类的其它有关信息来定义用于支配错误处理器104的决定的规则。

输出数据变换器105从位置参考系统接收响应,并且将该响应变换为由第三方系统使用的一个或多个数据格式。该响应包括位置代码以及与位置代码相关联的地理位置有关的信息。在输入数据变换器102提供与第三方系统的互操作性以及它们的格式,以创建、修改、或删除位置内容的同时,输出数据变换器105提供与使用位置内容的第三方系统的互操作性。当在数据变换期间发生错误时,输出数据变换器105还将错误消息发送给错误处理器104。参照图3描述示例的输出数据变换器设计。

输出数据发送器106将经过变换的响应传递给一个或多个第三方系统。输出数据发送器106还处理不同的网络协议和诸如安全套接层(SSL,Secure Socket Layer)之类的传输层安全性的错综复杂的细节(intricacy)。第三方系统接收可由该系统识别的数据格式下的响应。

插入引擎107使得系统用户能够建立和管理他们的数据变换和错误处理程序(procedure)。数据交换系统100的用户可以登记其自己的数据变换程序并且决定是否与其他用户共享该程序。插入引擎107将变换程序提供给输入数据变换器102和输出数据变换器105。另外,插入引擎107将错误处理程序提供给错误处理器104。

插入引擎107还允许变换程序链接(chaining)。变换程序链接使得用户能够使用由其他用户开发的变换程序中的一些或全部。结果,用户可以将由他人开发的程序(或者程序的部分)添加到由该用户开发的程序。但是,插入引擎107还允许用户将其变换程序保持私有(private)。如果另一用户正在使用被标记为私有的变换程序,则插入引擎107检测此情况并且通知适当的用户。

输入数据存储器108是数据库和存留(persist)输入数据达一段时间的基于文件的存储服务的集合。输入数据接收器101和输入数据变换器102两者可以使用输入数据存储器108。关于是否应当存留某一输入数据的决定是基于为每种数据交换格式、数据源、和/或其它与内容有关的信息定义的规则做出的。用户可以在定义他们的数据变换程序时选择不同的数据存留选项。

输出数据存储器109在概念上和架构上类似于输入数据存储器108。输出数据存储器109可以在数据交换系统100正产生非瞬态数据时存留经过变换的数据。这典型地是在系统100必须变换经由批量负荷处理提交的大量数据时的情况。

数据存取控制器110管理对于输入数据接收器101、输入数据存储器108、输出数据发送器106、以及输出数据存储器109的存取。数据存取控制器110确定第三方系统是否在使能输入数据接收器101和/或输出数据发送器106之前有权创建、修改和/或删除位置内容,以及/或者是否有权接收位置内容。另外,数据存取控制器110确定是否将数据存留在输入数据存储器108或者输出数据存储器109中、以及存留多长时间。

图2是可被用作图1所描绘的输入数据变换器102的示例的输入数据变换器200的框图。也可以使用其它输入数据变换器设计。输入数据变换器200包括数据格式验证器201、变换处理选择器202、实时变换器203、批量变换调度器204、批量变换器205、格式处理器选择器206、数据处理器207(例如文本格式处理器208、图像格式处理器209、音频格式处理器210、视频格式处理器211、二进制格式处理器212)、输入数据侦听器213、位置参考系统适配器214、以及输入数据记录器215。输入数据变换器200也可以具有其它组件。

数据格式验证器201执行初始检验(verification),以确定输入数据是否处于所支持的格式之一。对于批量负荷,业务(business)规则可以指示数据格式验证器210来仅验证数据的小的样本而非整批(whole batch)。数据格式验证器201还执行系统定义的验证,诸如校正网络服务请求和批量文件的编码。如果定制变换程序的创建者信任他们的数据来源,则他们可以决定放宽定制验证规则。验证规则的简化可以导致更好的系统性能。

在检验之后,数据格式验证器201将输入数据转送给处理选择器202。处理选择器202为每一个变换选择执行路径(即,实时或者批量模式)。如果以交易(transactional)方式定义变换,则处理选择器202还充当交易控制器。小数据集合的变换优选地被以实时或者几乎实时(near-time)方式执行。更大的数据集合的变换优选地被重定向到批量任务调度器204。

实时变换器203处理单个输入请求并且将它们与进一步的处理所需的附加的元数据打包(wrap)。例如,该元数据可以包括请求时间和日期信息、时区、变换优先级、用户身份、安全令牌、以及格式处理器的适当选择所需的其它信息。然后,实时变换器203将经过处理的输入数据提供给格式处理器选择器206。

批量任务调度器204确定何时开始特定的批量转换任务。基于可用系统资源量、服务等级协议、和/或一个或多个使用根据情况的数据来确定任务优先级的业务规则来做出决定。一旦调度了批量转换任务,批量任务调度器204就将数据集合存储在输入数据存储器108中,直到所调度的时刻为止。

在所调度的时刻,批量任务调度器204将数据集合提供给批量变换器205。如果需要,批量变换器205将较大的数据集合分解为可管理的工作单元。如果批量操作必须以交易方式完成,则批量变换器205还创建交易计划。然后,批量变换器205将经过处理的输入数据提供给格式处理器选择器206。

格式处理器选择器206基于处理选择器202的选择从实时变换器203或者批量变换器205接收经过处理的输入数据。在接收到所述经过处理的输入数据时,格式处理器选择器206基于经过处理的数据的所检测的数据格式调用数据处理器207之一。图2描绘了文本格式处理器208、图像格式处理器209、音频格式处理器210、视频格式处理器211、以及二进制格式处理器212。数据处理器207的数量和类型可以基于由数据交换系统100支持的数据格式而变化。

文本格式处理器208应用为GML、LMX、KML、以及其他包含关于位置的信息的基于文本的格式所定义的变换例程(routine)。文本格式处理器208从文本中提取位置数据并且将该位置数据转换为适当的格式。在位置内容的创建、修改、删除、或检索中使用经过变换的数据。

图像格式处理器209处理基于矢量和位图的图形文件。例如,在启用GPS的照相手机中采用JPEG/可交换图像文件格式(Exif)画面时,画面的Exif首部可以包含位置信息。图像格式处理器209从Exif首部中提取位置数据,并且将其转换为适合创建、修改、删除、或检索位置内容的格式。

音频格式处理器210分析音频文件或者流,以便提取特定于位置的信息。例如,如果芝加哥的电台正在广播本地新闻时,音频格式处理器210可以检测、提取、以及重新格式化特定于位置的信息。继续此示例,如果音频处理器210在关于在建筑物“one thousand north michigan avenue”(北密歇根大街1000号)中的火灾的突发新闻报道中检测到街道地址信息,则音频处理器210通过附上城市(芝加哥)、州(伊利诺伊)、国家(美国)来完成地址信息,并且将“one thousand north michigan avenue”转换为“1000N Michigan Ave.”。可以将此经过转换的位置内容存储在位置参考系统中。

视频格式处理器211通过分析每一帧或者其它编码数据来处理馈送的(feed)视频。通过将所馈送的视频分解为单个帧,视频处理器211可以应用在图像处理器209和/或音频处理器210中使用的类似技术。视频格式处理器211提取位置数据,并且将其转换为适合创建、修改、删除、或检索位置内容的格式。

二进制格式处理器212将所接收的位置数据变换为二进制格式。二进制格式处理器212的输出是经过处理的输入数据的二进制表示。可以在创建、修改、删除或者检索位置内容中使用输入数据的该二进制表示。

数据处理器207将关于变换事件的信息发送给输入数据侦听器接口213、适配器214、以及输入数据记录器215。输入数据侦听器213作为输入数据变换器200和外部系统之间的连接点。例如,输入数据侦听器213向第三方系统通知数据处理器何时第一次或者第n次处理与特定的地理区域有关的信息。在此情况下,第三方系统可以接收标识位置(经由位置参考代码、地址、纬度/经度或者其它空间信息)以及位置在数据处理器中出现的次数的报告。对于经由输入数据侦听器213的通知的其它类型的准则可以包括时间界限通知(例如,在中部标准时间凌晨1点至3点之间、在系统中出现的任何与“Chicago,IL,USA”(美国伊利诺伊州芝加哥)有关的信息)。

位置参考系统适配器214调用位置参考系统以基于从第三方系统接收的经过变换的输入数据来检索、创建、修改、或者删除位置代码数据。位置参考系统处理来自第三方系统的请求。如果该请求是要添加、修改、或者删除位置内容,则位置参考系统对于位置内容数据做出适当的改变。如果请求是要检索位置内容,则位置参考系统获得适当的位置内容数据。

输入数据记录器215将非瞬态输入数据保存到输入数据存储器108中。用户在他们定义其数据变换程序时选择不同的数据存留选项。

图3是可被用作图1所描绘的输出数据变换器105的示例的输出数据变换器300的框图。也可以使用其它的输出数据变换器设计。输出数据变换器300包括输出数据接收器301、输出数据聚集器(aggregator)302、输出数据合并器(merge)303、输出格式选择器304、输出数据转换器305、输出数据预订器(subscriber)306、信道适配器307、系统适配器308、输出数据侦听器309、以及输出数据记录器310。输出数据变换器300也可以具有其它组件。

输出数据接收器301是调用器103向其发送经过处理的信息的硬件和软件组件的集合。接收器301是浏览(pass-through)组件,其能够处理由文本处理器208、图像处理器209、音频处理器210、视频处理器211、以及二进制处理器212支持的格式中任一种格式下的数据。可以存在多于一个从一个或多个调用器103接受数据的输出数据接收器301。

输出数据聚集器302聚集从一个或多个输出数据接收器301接收的输出数据。优选地,输出数据聚集器302不对所聚集的数据进行去重复(de-duplicate)或者混合。(“去重复”是标识并且消除冗余数据块,减少存储数据需要的存储量)。输出数据聚集器302创建由输出数据接收器301接收的潜在的多个数据流组成的单个数据馈送。

输出数据合并器303执行数据去重复以及混合,以便产生用于进一步处理和传递的清理的(clean)并且经过优化的数据馈送。输出数据合并器303由业务规则驱动并且执行一组算法以消除单个或者多个数据记录或者文件内的重复数据。对于数据混合,输出数据合并器303使用定义哪些数据优先于其它数据的一组规则。

输出格式选择器304选择应当用于最终传递的数据格式。此决定可以基于多个因素,诸如接收的信息的数据格式、馈送的内容、业务规则、以及信息正被接收或者需要被传递的速率。例如,如果接收了关于特定的地理区域的大量信息,则输出格式选择器304可以选择去除一些不相关的数据,以便尽可能快地传递数据。

输出数据转换器305基于由数据格式选择器304选择的一个或多个格式来执行实际数据转换。基于当前的负荷和系统容量,输出数据转换器305能够抑制(throttle)数据转换请求。可以将每个处理作为交易或者非交易操作来处理。

输出数据预订器306允许外部或者内部实体经由插入引擎107控制一个或多个输出数据变换。利用合适的预订,用户具有定义动作的选项,输出数据接收器301、输出数据转换器305、输出数据侦听器309执行该动作以完成数据变换处理。

信道适配器307执行需要的数据变换以符合用于传递数据的物理介质。例如,用于将数据传递给XM或者Sirius卫星无线电听众的信道可以具有与用于将信息传递给移动电话用户的信道不同的带宽约束。

系统适配器308将经过变换的数据发送给一个或多个输出数据发送器106。

输出数据侦听器309作为输出数据变换器300与外部系统之间的连接点。例如,输出数据侦听器309可以在与“Chicago,IL,USA”(美国伊利诺伊州芝加哥)有关的信息被传递到XM和Sirius卫星无线电听众时通知第三方系统。

输出数据记录器310将非瞬态输出数据保存在输出数据存储器109中。用户可以在他们定义其数据变换程序时选择不同的数据存留选项。如果应当发生附加的数据存储费用时,输出数据记录器310可以通知内部或者第三方记账系统。

图4是交换位置内容数据的方法400的流程图。在块402中,数据交换系统100从第三方系统接收消息。第三方系统可以与地图卖方、位置所有者/运营商、政府机关、商会、个人、或者任何其他方相关联。消息可以包括与位置内容相关联的位置代码以及用于检索、创建、修改、或者删除位置内容数据的请求。

在块404中,数据交换系统100确定该请求的输入数据格式。例如,数据格式可以是GML、GPX、LMX、KML、whereinearthID、TMC、AGORA-C以及各种地图卖方格式之一。然后,数据交换系统100确定该数据格式是否被系统100支持。如果不被支持,则数据交换系统100向第三方系统发送指示在该请求中使用的数据格式不被支持的消息。

如果该数据格式被数据交换系统100支持,则在块406中系统100将该请求变换为与位置参考系统兼容的格式。当然,如果该请求已经是由位置参考系统使用的数据格式,则不需要数据变换。从一种格式到另一种格式的数据的变换可以以基本上实时的模式或者以批量模式来执行。数据交换系统100使用一组(bank)数据处理器207来执行实际变换。格式处理器选择器206基于检测到的数据格式选择适当的(多个)数据处理器。

在块408中,数据交换系统100将经过变换的请求提供给位置参考系统。位置参考系统处理来自第三方系统的请求。如果该请求是要添加、修改、或删除位置内容,则位置参考系统对于位置内容数据做出适当的改变。如果该请求是要检索位置内容,则位置参考系统获得适当的位置内容数据。

在块410中,数据交换系统100从位置参考系统接收响应。该响应包括位置代码、以及所请求的位置内容数据或者如所请求地添加,或修改,或删除了位置内容数据的确认。该响应处于由位置参考系统使用的数据格式下。

在块412中,数据交换系统100将该响应变换为在块402中的请求中使用的数据格式。以与参照块406描述的方式类似的方式发生此数据变换。

在块414中,数据交换系统100将经过变换的响应提供给第三方系统。结果,宽泛的各种第三方系统可以与位置内容管理系统通信。通过便利通信,可以定期更新并且容易地检索位置内容。位置内容管理系统的用户在不需要以特定的数据格式进行通信的情况下接收新的位置内容。

意在将上述详细描述视为示例性的而非限制性的,并且应理解以下的权利要求包括所有意在限定本发明的范围的等效物。权利要求不应当被理解为限于所描述的顺序或者元素,除非如此声明。因此,所有落入以下权利要求及其等效物的范围和精神内的所有实施例被请求作为本发明加以保护。

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