CN103365948A - 数据管理设备和数据管理方法 - Google Patents
数据管理设备和数据管理方法 Download PDFInfo
- Publication number
- CN103365948A CN103365948A CN2013101066285A CN201310106628A CN103365948A CN 103365948 A CN103365948 A CN 103365948A CN 2013101066285 A CN2013101066285 A CN 2013101066285A CN 201310106628 A CN201310106628 A CN 201310106628A CN 103365948 A CN103365948 A CN 103365948A
- Authority
- CN
- China
- Prior art keywords
- rectangle
- unit
- data
- longitude
- latitude
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Navigation (AREA)
- Processing Or Creating Images (AREA)
Abstract
公开了一种数据管理设备和数据管理方法,该方法包括:接受多边形数据的请求,该多边形数据包括与多边形的每个顶点的纬度和经度有关的数据;从通过递归地分割二维空间而形成的多个单位矩形中指定最小单位矩形,该最小单位矩形与多边形的最小边界矩形匹配或者包括最小边界矩形,所述二维空间包括纬度/经度范围并且在X方向和Y方向上被均等地分割为相同数目;生成字符串,其方式为通过以与二维空间在X方向和Y方向上所分割的部分的数目相一致的方式将值分配给最小单位矩形或者包括最小单位矩形的所有单位矩形、以及从与单位矩形中的大的单位矩形相对应的值开始在X方向上或Y方向上交替地排列所述值;以及以与包括字符串的键相一致的方式存储多边形数据。
Description
技术领域
本文中讨论的实施例涉及一种数据管理设备和数据管理方法。
背景技术
已经研究了一种搜集并管理位置数据的高速位置数据搜索服务,该位置数据包括例如移动实体和设施的纬度和经度。搜索服务的内容的一个示例,存在对包括在特定范围(例如,设施)内的移动实体组进行的搜索。
专利文献1:日本特开专利公布第2007-41189号
使用RDB(关系数据库)是管理例如移动实体或设施的位置数据的一种方式。例如,移动实体或设施的ID和位置数据可以登记至RDB作为移动实体和设施的属性。
然而,在例如对包括在特定范围内的移动实体组进行搜索的情况下,有必要将该特定范围与所有记录的位置数据进行比较。作为要被管理的目标的移动实体不仅包括其上安装有车载装置的车辆,而且包括例如携带移动终端的人。因此,记录的数目可能为数千万或更大。因而,难以通过将所有记录的位置数据与特定范围进行比较来获得实用的搜索性能。
为了提高搜索性能,存在一种形成与位置数据有关的索引的方法。然而,在此情况下,由于移动实体的位置数据继续不断地变化,所以索引被频繁地重新排列。因而,重新排列的工作量变得相当大。
另外,在技术上,移动实体没有被定位成点,而是被定位成扩展物。例如,在管理移动实体(如台风或雨云)的位置数据的情况下,重要的是管理它们的位置和它们的范围。然而,为了搜索包括在特定范围内的移动实体或搜索与特定范围重叠的移动终端,有必要计算例如特定范围与移动实体的范围之间的包含关系。由此,会进一步降低搜索性能。
发明内容
因此,本发明的一个方面的目的是提供一种用于通过使计算机执行处理来管理数据的方法,该处理包括:接受多边形数据的登记请求,该多边形数据包括与多边形的每个顶点的纬度和经度有关的数据;从多个单位矩形中指定最小单位矩形,该最小单位矩形与多边形的最小边界矩形匹配或者包括最小边界矩形,所述多个单位矩形是通过将包括纬度/经度范围的二维空间递归地分割而形成的,该二维空间在X方向和Y方向上被均等地分割为相同数目;生成字符串,其方式为通过以与二维空间在X方向和Y方向上所分割的部分的数目相一致的方式将值分配给所识别的最小单位矩形或者包括所识别的最小单位矩形的所有单位矩形、以及从与多个单位矩形中的大的单位矩形相对应的值开始在X方向上或Y方向上交替地排列所分配的值;以及以与包括字符串的键相一致的方式将多边形数据存储到存储单元中。
附图说明
图1是示出根据本发明的实施例的数据管理系统的配置的示例的示意图;
图2是示出根据本发明的实施例的数据管理设备的硬件配置的示例的示意图;
图3是示出根据本发明的实施例的数据管理设备的功能配置的示例的示意图;
图4是用于描述根据本发明的实施例的生成位置键的过程的示例的流程图;
图5是用于描述根据本发明的实施例的登记移动实体数据的过程的示例的流程图;
图6是示出根据本发明的实施例的移动实体数据存储单元的配置的示例的示意图;
图7A和图7B是用于描述根据本发明的实施例的生成关于多边形的位置键的过程的示例的示意图;
图8是示出MBR的示例的示意图;
图9是示出用于描述获得(计算)最小单元矩形的处理的MBR的第一示例的示意图;
图10A至图10C是示出关于单个多边形生成多个位置键的示例的示意图;
图11是用于描述根据本发明的实施例的搜索移动实体数据的过程的示例的流程图;
图12是用于描述根据本发明的实施例的搜索包括在搜索范围内的移动实体数据的过程的示例的流程图;
图13是用于描述根据本发明的实施例的与搜索键正向匹配(forwardmatch)的重要性的示意图;
图14A至图14C是用于描述根据本发明的实施例的搜索包括在搜索范围内的移动实体的处理的示意图;
图15是用于描述根据本发明的实施例的针对包括在搜索范围内的移动实体执行搜索的过程的示例的流程图;
图16A至图16C是用于描述根据本发明的实施例的搜索包括搜索范围的移动实体的处理的示意图;
图17是用于描述根据本发明的实施例的针对与搜索范围重叠的移动实体执行搜索的过程的示例的流程图;
图18是用于描述根据本发明的实施例的用四叉树生成位置键的方法的示例的示意图;
图19是示出根据本发明的实施例的使用一维空间的示例的示意图;以及
图20是示出根据本发明的实施例的使用三维空间的示例的示意图。
具体实施方式
在下文中,参照附图描述本发明的实施例。图1是示出根据本发明的实施例的数据管理系统的配置的示例的示意图。在图1的数据管理系统中,包括移动终端20a、20b和20c的多个移动终端20以及数据管理设备10可以经由例如移动通信网络进行通信。
移动终端20用于识别移动实体(管理目标)的位置。因此,优选的是,移动终端具有能够使用移动通信网络的通信功能以及GPS(全球定位系统)功能、还有移动性。因而,移动终端20可以是例如车载装置、便携式电话、智能电话或平板型终端。移动实体是移动(输运)移动终端20的实体。移动实体可以是例如其上安装有移动终端20的车辆或者携带移动终端20的人。然而,移动终端20本身也可以被认为是移动实体。此外,虽然例如台风、雨云、雷云以及锋面本身没有携带用于测量它们的位置的装置,但是只要可以从外部观察或测量它们的位置,它们也可以被认为是移动实体。
根据本发明的实施例的数据管理设备10是如下计算机:其管理与每个移动实体或设施(未示出)或区域(未示出)有关的位置数据(纬度和经度的数据)。替选地,多个计算机可以构成数据管理设备10。可以通过使用每个移动终端20来搜索由数据管理设备10管理的数据。待管理的数据也可以是能够通过使用诸如PC(个人计算机)的固定终端来搜索的数据。区域(未示出)可以是诸如行政管理区的预定范围、或者范围可以被限定的区域。
图2是示出根据本发明的实施例的数据管理设备10的硬件配置的示例的示意图。图2的数据管理设备例如包括:驱动装置100、辅助存储装置102、存储器装置103、CPU(中央处理单元)104、以及接口装置105,上述装置通过总线B而彼此连接。
从记录介质101提供使得能够由数据管理设备10执行处理的程序。也就是说,程序被记录在记录介质101中。当记录介质101被设置在驱动装置100中时,经由驱动装置100将程序从记录介质101安装到辅助存储装置102中。然而,要注意,程序的安装不是必须从记录介质101提供。替选地,程序可以经由网络从另一计算机下载。辅助存储装置102不仅存储程序,而且存储例如必要的文件和数据。
在指示激活程序的情况下,存储器装置103从辅助存储装置102读取程序并且在其中存储该程序。CPU104根据存储在存储器装置103中的程序来执行数据管理设备10的功能。接口装置105被用作用于连接至网络的接口。
记录介质101可以是例如便携型记录介质,如CD-ROM(致密盘-只读存储器)、DVD(数字多功能盘)、或USB(通用串行总线)存储器。辅助装置102可以是例如HDD(硬盘驱动器)或闪速存储器。记录介质101和辅助存储装置102两者均对应于计算机可读记录介质。
图3是示出根据本发明的实施例的数据管理设备10的功能配置的示例的示意图。如图3所示,数据管理设备10包括服务单元11和基本(平台)单元12。
基本单元12向服务单元11提供数据管理设备10的数据管理功能中包括的基本或基础功能。因而,基本单元12的客户端基本上是服务单元11。服务单元11使用由基本单元12提供的功能,并且向例如移动终端20提供高级(复杂)的功能和服务。因此,服务单元11的客户端基本上是移动终端20。可以通过基本单元12中包括的API(应用程序接口)来使用基本单元12的功能。
基本单元12例如包括移动实体数据接收单元121、登记请求接受单元122、MBR(最小边界矩形)计算单元123、目标位置键矩形指定单元124、位置键生成单元125、登记单元126、搜索请求接受单元127、以及搜索单元128。根据安装在数据管理设备10中的程序,由CPU104来执行与包括在基本单元12中的这些单元121至128对应的功能中的每种功能。基本单元12包括并使用例如移动实体数据存储单元131、设施数据存储单元132和区域数据存储单元133。通过使用例如经由存储装置连接至辅助存储装置102或数据管理设备10的存储装置,执行与这些存储单元131至133对应的功能中的每种功能。
移动实体数据接收单元121相继接收例如移动实体的位置数据和属性数据。与移动实体有关的数据(如移动实体的位置数据和移动实体的属性数据)在下文中被称为“移动实体数据”。在本实施例中,用表示移动实体的形状的多边形的每个顶点的纬度和经度来表示移动实体的位置数据。多边形的每个顶点的纬度和经度的集合(集)在下文中被称为“多边形数据”。相应地,多边形数据是表示移动实体的位置以及移动实体的范围的数据。可以按照形成多边形的顺序来顺次排列包括在多边形数据中的纬度和经度中的每个。此外,可以将与形成多边形的顺序有关的数据分配给纬度和经度中的每个。也就是说,多边形数据可以包括下述数据:其使得能够通过参考顶点的纬度和经度的集合来解释(辨别)如何形成多边形。
在适当的定时,接收移动终端20中的每个移动终端的移动实体数据。例如,可以以预定周期或每当移动实体的位置改变预定量时接收移动实体数据。在一种情况下,可以经由移动终端网络从每个移动终端20直接接收移动实体数据。在另一情况下,可以从管理移动实体数据的另外的计算机系统取回或接收移动实体数据。在后一情况下,该另外的计算机系统不限于一种类型的计算机系统。该另外的计算机系统的一个示例是提供远程信息处理系统的计算机系统。
然而,要注意,取决于每个移动终端20,接收移动实体数据的定时可能不同。也就是说,不一定在相同的时间和日期接收所有移动终端20的移动实体数据。
登记请求接受单元122接受来自服务单元11的登记请求。登记请求包括例如用于登记设施的位置数据和属性数据或区域的位置数据和属性数据的请求。设施的位置数据和属性数据在下文中被称为“设施数据”。区域的位置数据和属性数据在下文中被称为“区域数据”。
也就是说,登记请求接受单元122是由基本部分12提供的API的一部分。然而,登记请求接受单元122可以从另一计算机系统主动地(actively)获得上述设施数据和/或区域数据。类似于移动实体的位置数据,也用多边形数据来表示设施数据和区域数据,该多边形数据表示表达该设施或区域的形状的多边形的每个顶点的纬度和经度。
MBR计算单元123对应于登记请求来计算关于多边形的最小边界矩形,该多边形由包括在所接收的移动实体数据或设施数据/区域数据中的多边形数据来表示。最小边界矩形的缩写为“MBR”。
以与纬度和经度的精确度中的每个一致的方式来形成一个或更多个单位矩形。每个单位矩形由具有给定精确度的网格、格栅和/或纬度和经度的交叉形成。相应地,目标位置键矩形指定单元124从一个或更多个单位矩形中指定用于生成位置键(下面描述的)的单位矩形。由目标位置键矩形指定单元124指定的单位矩形在下文中被称为“目标位置键矩形”。在存在一个或更多个单位矩形之中的、与多边形的MBR匹配或包括MBR的最小(minimum)(最小的(smallest))单位矩形的情况下,最小单位矩形是目标位置键矩形。换言之,生成了表示最小单位矩形的范围的位置键。例如,在形成具有精确度为1/1000的纬度和经度的矩形的情况下,矩形是具有1/1000的宽度的单位矩形。在形成具有精确度为1/100的纬度和经度的矩形的情况下,矩形是具有1/100的宽度的单位矩形。例如,在目标多边形的MBR与具有1/10000的宽度的单位矩形匹配或包括在具有1/10000的宽度的单位矩形中却不包括在具有1/100000的宽度的单位矩形中的情况下,具有1/10000的宽度的单位矩形变为目标多边形的最小单位矩形。然而,要注意,目标位置键矩形不总是最小单位矩形(参见下文)。
位置键生成单元125生成与由移动实体数据接收单元121接收的移动实体数据有关的键、或者与由登记请求接受单元122接受的设施数据或区域数据有关的键。在本实施例中,键是KVS(Key-Value Store,键值存储)的键。也就是说,在本实施例中,通过使用KVS来管理移动实体数据、设施数据和区域数据。在本实施例中,基于关于移动实体、设施或区域获得的最小单位矩形来生成键。所生成的键被称为“位置键(positionkey)”。
登记单元126以与由位置键生成单元125生成的位置键相一致的方式登记移动实体数据、设施数据或区域数据。以与位置键相一致的方式将移动实体数据、设施数据或区域数据登记在移动实体数据存储单元131、设施数据存储单元132或区域数据存储单元133中。
移动实体数据存储单元131是以与相应的位置键相一致的方式存储移动实体数据的KVS型数据库。设施数据存储单元132是以与相应的位置键相一致的方式存储设施数据的KVS型数据库。区域数据存储单元133是以与相应的位置键相一致的方式存储区域数据的KVS型数据库。
搜索请求接受单元127从服务单元11接受用于搜索移动实体数据、设施数据或区域数据的请求(搜索请求)。搜索单元128根据搜索请求搜索移动实体数据、设施数据或区域数据。搜索单元128使用例如由位置键生成单元125生成的位置键来搜索所请求的移动实体数据、设施数据或区域数据。
接下来,描述由根据本发明的实施例的数据管理设备10执行的操作(处理)。
图4是用于描述根据本发明的实施例的生成位置键的过程的示例的流程图。在登记或搜索移动数据等期间,从上层过程调用这些过程。然而,为了方便,在上层过程之前描述这些过程。
在步骤S301中,通过位置键生成单元125对要处理的纬度和经度(在下文中也被称为“目标纬度和目标经度”)进行字符串转换。也就是说,位置键生成单元125将目标纬度和目标经度从数值转换为字符串。从而,生成了表示纬度的字符串(在下文中被称为“纬度字符串”)和表示经度的字符串(在下文中被称为“经度字符串”)。在本示例中,假定目标纬度和目标经度为(35.5678,139.1234),则纬度位串为“35.5678”,并且经度位串为“139.1234”。要注意,纬度的范围为“+90度(北纬)至-90度(南纬)”。也就是说,南纬用负号(-)表示。此外,经度的范围为“+180度(东经)至-180度(西经)”。也就是说,西经用负号(-)表示。还要注意,虽然北纬和东经用正号(+)表示,但是北纬和东经的值可以不用正号表示。用正号(+)表示的范围和用负号(-)表示的范围不限于上述的那些内容。
然后,位置键生成单元125将纬度字符串和经度字符串转换为预定格式(S302)。首先,在字符串的整数部分为1位或2位的情况下,将字符“0(零)”插入到整数部分的开头部分,使得字符串的整数部分包括3位。因此,纬度字符串变为“035.567”。因为经度位串的整数部分最初包括3位,所以经度字符串的整数部分保持为“139.1234”。此外,基于目标纬度和目标经度的初始值,在纬度位串和经度位串的开头部分添加正号(+)或负号(-)。因此,在本示例中,纬度字符串变为“+035.5678”,并且经度字符串变为“+139.1234”。此外,从字符串中略去表示小数点“.”的字符。相应地,纬度字符串变为“+0355678”,并且经度字符串变为“+1391234”。此外,关于具有较短的小数以下部分(below-decimalportion)的字符串,将字符“0(零)”添加至小数点后面的部分(小数以下部分)。例如,在转换之前的经度字符串为“35.567”并且转换之前的纬度字符串为“139.1234”的情况下,将字符“0”添加至具有比纬度字符串的小数以下部分更短的小数以下部分的经度字符串“35.567”。结果,经度字符串变为“+0355670”。
从而,完成了将纬度字符串和经度字符串转换为预定格式的处理。
然后,位置键生成单元125从经度字符串的最高有效(最高位)字符开始,顺次获得一个字符,并且将所获得的字符添加至要用于执行下面描述的操作的字符串变量(下文中也被称为“操作变量”)的开头部分(顶部)。相应地,在第一次执行步骤S303的情况下,字符“+”是从经度字符串“+0355678”获得的并且被添加至操作变量。在步骤S304中使用的操作变量与在步骤S303中使用的操作变量相同。因此,在完成步骤S303和S304的阶段,操作变量的内容为“++”。执行步骤S303和步骤S304的顺序不限于上述顺序。
重复步骤S303和S304,直至已经对纬度字符串和经度字符串的所有的位执行了步骤S303和S304的处理为止(步骤S305)。结果,通过交替地添加属于来自纬度字符串和经度字符串的顶部的相同位的字符,获得由纬度和经度字符串的交替添加的字符构成的单个字符串,并将其存储在操作变量中。所获得的字符串对应于用作位置键的字符串。相应地,在步骤S306中位置键生成单元125返回存储在操作变量中的值(即,位置键)。
在本实施例中,位置键还被用作表示矩形的范围(矩形范围)的数据,在该矩形的范围中,矩形的一边是与位置键的纬度和经度的精确度相对应的单位。例如,在纬度和经度为(35.5678,139.1234)的情况下,其中矩形的一边是与纬度和经度的精确度相对应的单位的矩形范围是其中一边为1/10000的矩形范围。因此,在技术上,位置键是包括指示范围的数据的键。下面描述生成位置键的重要性。
接下来,描述登记移动实体数据的操作(处理)。图5是用于描述根据本发明的实施例的登记移动实体数据的过程的示例的流程图。
在步骤S101中,根据本发明的实施例的移动实体数据接收单元121接收移动实体数据以及用于登记移动实体数据的请求。移动实体数据包括例如移动实体的识别数据和移动实体的多边形数据。移动实体的识别数据在下文中被称为“移动实体ID”。多个多边形数据可以包括在与单个移动实体有关的移动实体数据中。也就是说,单个移动实体的形状可以用多个多边形表示。与移动实体有关的其他属性数据也可以包括在移动实体数据中。
然后,通过例如MBR计算单元123、目标位置键矩形指定单元124和位置键生成单元125,执行生成与表示移动实体的形状的多边形相对应的位置键的处理(步骤S102)。在用多个多边形表示移动实体的情况下,对多个多边形中的每个多边形执行步骤S102。如下所述,可以关于单个多边形生成多个键。
然后,登记单元126将包括在移动实体数据中的数据(例如,移动实体ID、多边形数据)的值与所生成的位置键中的每个位置键相关联,并且以与相关联的位置键一致的方式将包括在移动实体中的数据的值登记至移动实体数据存储单元131(步骤S103)。
图6是示出根据本发明的实施例的移动实体数据存储单元131的配置的示例的示意图。如图6所示,移动实体数据存储单元131以与“键”相一致的方式存储“值”。在本实施例中,关于表示移动实体的形状的多边形所生成的位置键被存储在移动实体数据存储单元131的“键”中。“值”可以包括一行或更多行。“值”的每行对应于单个移动实体。每行包括3项(列),这3项为“id”、“数据”和“登记日期/时间”。移动实体ID被存储在项“id”中。多边形数据和其他属性数据被存储在项“数据”中。项“登记日期/时间”表示登记数据的行的时间和日期。要注意,多个行(多个移动实体)可以与一个位置键相关联。这是因为多个移动实体可以在相同时间或在不同时间位于相同的纬度和经度。这还因为:关于位于不同位置处的移动实体可以生成相同的位置键(如下所述),由于位置键关于包括移动实体的多边形的MBR的每个单位矩形而生成。
在步骤S102中生成多个位置键的情况下,移动实体数据存储单元131使值与多个位置键中的每个位置键相关联并以与位置键相一致的方式进行存储。在此情况下,与关于相同位置数据的多个位置键相关联的值可以相同。例如,在图6中,3个位置键被分配至具有移动ID“id6666”的移动实体。
要注意,图6中示出的配置仅是示例,并且可以任意改变值的配置。
每当接收移动实体数据时,执行图5中示出的处理。相应地,不断接收与多个移动实体中的每个移动实体有关的移动实体数据,并且以图6中示出的方式将其登记在移动实体数据存储单元131中。
移动实体数据存储单元131被设置为用作KVS引擎,在该KVS引擎中,在数据已被登记在移动实体数据存储单元131之后过去了预定时间时,删除在移动实体数据存储单元131中登记的数据。相应地,在数据已被登记在移动实体数据存储单元131之后过去了预定时间的情况下,从移动实体数据存储单元131删除数据。这意味着在移动实体数据存储单元131中管理每个移动实体的位置数据。
虽然根据图5描述了登记移动实体数据的处理,但是在接收到用于登记例如设施数据或区域数据的请求的情况下,登记请求接受单元122基本上执行与图5中示出的处理相同的处理。然而,在设施数据的情况下,用设施ID(即,设施的识别数据)替代移动实体ID,并且登记设施ID的目的地(地方)是设施数据存储单元132。同样地,在区域数据的情况下,用区域ID(即,区域的识别数据)替代移动实体ID,并且登记区域ID的目的地(地方)是区域数据存储单元133。此外,设施数据存储单元132和区域数据存储单元133被设置为:在数据已被登记在设施数据存储单元132或区域数据存储单元133中之后过去预定时间的情况下,避免自动删除登记在其中的数据。这是因为设施或区域的位置数据基本上不会不断变化(不同于移动实体)。
接下来,更加详细地描述图5的步骤S102。图7A-7B是用于描述根据本发明的实施例的生成关于多边形的位置键的过程的示例的示意图。
在步骤S201中,MBR计算单元123获得关于目标多边形的MBR。在本实施例中,在步骤S102中调用图5的处理的情况下,目标多边形是指示移动实体数据中的多边形数据的多边形。
图8是示出MBR的示例的示意图。图8示出根据本发明的实施例的关于多边形Pgn1的MBR50。
要注意,在步骤S102中,计算MBR的每个顶点的坐标。在图8的示例中,计算顶点P1至P4中的每个顶点的纬度和经度。在多边形Pgn1的每个顶点的经度中,最小经度是顶点P1的经度和顶点P3的经度。在多边形Pgn1的每个顶点的经度中,最大经度是顶点P2的经度和顶点P4的经度。在多边形Pgn1的每个顶点的纬度中,最大纬度是顶点P3的纬度和顶点P4的纬度。在多边形Pgn1的每个顶点的纬度中,最小纬度是顶点P1的纬度和顶点P2的纬度。
然后,通过目标位置键矩形指定单元124来执行用于指定目标位置键矩形的处理。接下来,通过使用具体示例来描述获得目标位置矩形的处理。
图9是示出用于描述获得(计算)最小单元矩形的处理的MBR的第一示例的示意图。也就是说,图9用于描述获得独立地构成目标位置键矩形的最小单元矩形的处理。图9中示出了MBR51的每个顶点的坐标。
在步骤S202中,目标位置键矩形指定单元124获得在顶点P4的经度与顶点P1的经度之间的差的最大位。最大位是在有效位所属的位中的最大位。在图9的示例中,顶点P4的经度与顶点P1的经度之间的差(即,MBR51的宽度)为0.00065。在图9的示例中,在值“0.00065”的有效位中的最大位为属于1/10000的最大位的“6”。相应地,在本示例中,最大位为1/10000。
然后,目标位置键矩形指定单元124获得顶点P4的纬度与顶点P1的纬度之间的差的最大位(步骤S203)。在图9中,顶点P4的纬度与顶点P1的纬度之间的差(即,MBR51的高度)为0.0006。在图9的示例中,在值“0.0006”的有效位中的最大位仅为属于1/10000的最大位的“6”。因此,在本示例中,最大位为1/10000。
然后,目标位置键矩形指定单元124获得在通过目标位置键矩形指定单元124获得的两个最大位之间的较大位(步骤S204)。较大位在下文中被称为“舍入位(rounded digit)”。在所获得的最大位两者相同的情况下,所获得的最大位两者分别被称为“舍入位”。如果所获得的位两者都等于小数点或在小数点以下,则较靠近小数点的位对应于“舍入位”。如果所获得的位两者都等于小数点或在小数点以上,则较远离小数点的位对应于“舍入位”。相应地,在两个最大位为“1/100000”和“1/10000”的情况下,“1/10000”的位变为较大位。在图9的示例中,因为两个舍入位均为“1/10000”,所以舍入位为“1/10000”。
然后,目标位置键矩形指定单元124获得MBR51的顶点P1的纬度和经度的舍入坐标值p1(步骤S205)。舍入坐标值p1是其中从顶点P1的纬度和经度中删除低于舍入位的有效数字的值。也就是说,删除低于舍入位的有效数字是用“0”替代低于舍入位的有效数字。在此示例中,顶点P1的经度和纬度为(0.00115,0.00022)。相应地,舍入坐标值p1为(0.001,0)。然后,位置键生成单元125生成舍入坐标值p1的位置键(步骤S206)。也就是说,对舍入坐标值(0.001,0)执行在图4中示出的上述处理。从而,生成(0.001,0)的位置键。基于舍入坐标值p1所生成的位置键在下文中被称为“位置键1”。
然后,目标位置键矩形指定单元124获得MBR51的顶点P2的纬度和经度的舍入坐标值p2(其中删除低于舍入位的数字)(步骤S207)。在此示例中,顶点P2的经度和纬度为(0.00115,0.00082)。相应地,舍入坐标值p2为(0.001,0)。然后,位置键生成单元125生成舍入坐标值p2的位置键(步骤S208)。基于舍入坐标值p2所生成的位置键在下文中被称为“位置键2”。
然后,目标位置键矩形指定单元124获得MBR51的顶点P3的纬度和经度的舍入坐标值p3(其中删除低于舍入位的数字)(步骤S209)。在此示例中,顶点P3的经度和纬度为(0.0018,0.00022)。相应地,舍入坐标值p3为(0.001,0)。然后,位置键生成单元125生成舍入坐标值p3的位置键(步骤S210)。基于舍入坐标值p3所生成的位置键在下文中被称为“位置键3”。
然后,目标位置键矩形指定单元124获得MBR51的顶点P4的纬度和经度的舍入坐标值p4(其中删除低于舍入位的数字)(步骤S213)。在此示例中,顶点P4的经度和纬度为(0.0018,0.00082)。相应地,舍入坐标值p4为(0.001,0)。然后,位置键生成单元125生成舍入坐标值p4的位置键(步骤S212)。基于舍入坐标值p4所生成的位置键在下文中被称为“位置键4”。
然后,目标位置键矩形指定单元124将位置键1加至处理结果(步骤S213)。该处理结果是执行图7中所示的处理的结果。因而,将位置键1加至处理结果意味着:位置键1被设置为目标多边形的位置键。也就是说,在图9中,MBR51包括其中单位矩形的一边为1/1000的目标单位矩形。此外,在图9中,MBR51的左下顶点为(0.001,0)。在假设单位矩形在纬度方向和经度方向上被分割为10个部分(即,将单位矩形分割为100个单位矩形部分)的情况下,每个单位矩形部分不包括MBR51。相应地,其左下顶点被表示为(0.001,0)并且每边为1/1000的单位矩形对应于最小单位矩形。用位置键1来表示最小单位矩形的位置和范围。相应地,位置键1被确定为目标多边形的位置键。
要注意,位置键1与目标多边形相关联意味着:目标多边形的范围被舍入成由位置键1表示的单位矩形。如下所述,可以通过用由位置键1表示的单位矩形舍入目标多边形的范围来执行高速搜索处理。
然后,目标位置键矩形指定单元124确定位置键1和位置键2是否相同(步骤S214)。关于MBR51,舍入坐标值p1和舍入坐标值p2相同。也就是说,位置键1和位置键2匹配。因此,图7中示出的处理进行到步骤S219。
在步骤S219中,目标位置键矩形指定单元124确定位置键1和位置键3是否相同。关于MBR51,舍入坐标值p1和舍入坐标值p3相同。也就是说,位置键1和位置键3应匹配。因此,终止图7中示出的处理。
另一方面,在位置键1和位置键3不同的情况下(步骤S219中的否),目标位置键矩形指定单元124将位置键3加至处理结果(步骤S220)。也就是说,位置键3也被采用为目标多边形的位置键。
此外,在步骤S214中,在位置键1和位置键2不同的情况下(步骤S214中的否),目标位置键矩形指定单元124将位置键2加至处理结果(步骤S215)。也就是说,位置键2也被采用为目标多边形的位置键。然后,目标位置键矩形指定单元124确定位置键1和位置键3是否相同(步骤S216)。在位置键1和位置键3不同的情况下(步骤S216中的否),目标位置键矩形指定单元124将位置键3加至处理结果(步骤S217)。也就是说,位置键3也被采用为目标多边形的位置键。然后,目标位置键矩形指定单元124将位置键4加至处理结果(步骤S218)。也就是说,位置键4被采用为目标多边形的位置键。
在终止图7示出的处理时的处理结果可以用在例如图5的步骤S103中。也就是说,以与存在于终止图7示出的处理时的处理结果中的位置键中的每个位置键相一致的方式登记移动实体数据。
接下来,描述在步骤S214和在步骤S214之后执行的处理的重要性。在步骤S214和在步骤S214之后执行的处理表明关于单个多边形可以生成2个或更多个位置键。在图9的示例中,整个MBR51包括在位置键1的矩形范围中。另一方面,在MBR具有如图10A至图10C所示的位置和范围的情况下,整个MBR不包括在关于MBR所生成的位置键1的矩形范围内。也就是说,整个MBR不包括在可以包括MBR的最小单位矩形中。“可以包括MBR的最小单位矩形”是指如下单位矩形:该单位矩形在包括MBR的单位矩形中尺寸最小,并且具有其中不能包括MBR的尺寸。
图10A至图10C是示出关于单个多边形生成多个位置键的示例的示意图。
如图10A至图10C所示,MBR52、53和54在尺寸方面分别包括在1/1000的单位矩形中。然而,MBR52、53和54分别跨过(step over)1/1000的单位矩形的边界。也就是说,MBR52、53和54中的每个MBR具有包括在1/1000的多个单位矩形中的部分。在此情况下,每个MBR52、53、54不包括在关于MBR52、53、54所生成的位置键1的单位矩形中。更具体地,在图10A示出的情况下,由MBR52的位置键1表示的范围是如下单位矩形:其中单位矩形的一边为1/1000并且MBR52的左下顶点为(0,0)。然而,MBR52的超出0.001的经度的部分未包括在该单位矩形中。
此外,在图10B示出的情况下,由MBR53的位置键1表示的范围是如下单位矩形:其中单位矩形的一边为1/1000并且MBR53左下顶点为(0.001,0)。然而,MBR53的超出0.001的纬度的部分未包括在该单位矩形中。
此外,在图10C所示出的情况下,由MBR54的位置键1表示的范围是如下单位矩形:其中单位矩形的一边为1/1000并且MBR54的左下顶点为(0,0)。然而,MBR54的超出0.001的经度和纬度的部分未包括在该单位矩形中。
因此,在步骤S214和在步骤S214之后执行的处理中,当目标MBR具有未包括在由位置键1表示的单位矩形中的部分时,将与包括所述部分的单位矩形相对应的位置键加至处理结果。也就是说,除了由位置键1表示的单位矩形之外,未包括在由位置键1表示的单位矩形中的单位矩形也被采用为目标位置键矩形。结果,MBR的范围通过多个单位矩形的组合来舍入。
在图10A的示例中,在步骤S220中将位置键3加至处理结果。在图10A的示例中,由位置键3表示的范围包括如下单位矩形:其中单位矩形的一边为1/1000并且单位矩形的左下顶点为(0.001,0)。
在图10B的示例中,在步骤S215中将位置键2加至处理结果。在图10B的示例中,由位置键2表示的范围包括如下单位矩形:其中单位矩形的一边为1/1000并且单位矩形的左下顶点为(0.001,0.001)。
在图10C的示例中,在步骤S215中将位置键2加至处理结果,并且在步骤S217和S218中将位置键3和位置键4加至处理结果。在图10C的示例中,由位置键2表示的范围包括如下单位矩形:其中单位矩形的一边为1/1000并且单位矩形的左下顶点为(0,0.001)。此外,在图10C的示例中,由位置键3表示的范围包括如下单位矩形:其中单位矩形的一边为1/1000并且单位矩形的左下顶点为(0.001,0)。此外,在图10C的示例中,由位置键4表示的范围包括如下单位矩形:其中单位矩形的一边为1/1000并且单位矩形的左下顶点为(0.001,0.001)。
相应地,关于单个MBR(单个多边形)可以生成多个位置键。
在本实施例中,在不变地将最小单位矩形采用为目标位置键矩形的情况下,生成了多个位置键,因为可以将比初始多边形具有更大的尺寸的单位矩形采用为目标位置键矩形。
换言之,在本实施例中,“最小单位矩形”的定义是如下单位矩形:该单位矩形是多个单位矩形(由具有与不同精确度相对应的宽度的网格、格栅和/或纬度和经度的交叉形成)中最小的(smallest)(最小的(minimum)),并且与多边形形状的MBR匹配或包括多边形形状的MBR。在将该定义应用于图10A至图10C的示例的情况下,与每个MBR52、53、54匹配或者包括每个MBR52、53、54的最小单位矩形是如下单位矩形:其中单位矩形的一边为1/100并且单位矩形的左下顶点为(0,0)。更具体地,单位矩形的一边为1/100。一边为1/100的单位矩形等同于1000个如下单位矩形:其中该1000个单位矩形中的每个单位矩形的一边为1/1000。因此,一边为1/100的单位矩形的面积是每个MBR52、53、54的面积100倍或更大。作为MBR的范围或多边形的范围,这样的单位矩形显著偏离初始多边形。
因此,在本实施例中,关于最小单位矩形的位置键不总是被采用为初始多边形的位置键。反而,初始多边形的位置键可以是关于具有最小尺寸、包括MBR或跨过MBR的多个单位矩形的位置键。从而,可以防止使用单个最小单位矩形的上述问题。
接下来,描述了搜索移动实体数据的处理(搜索处理)。
在步骤S501中,搜索请求接受单元127从服务单元11接受用于搜索移动实体数据的请求(搜索请求)。服务单元11根据来自移动终端20或固定终端(未示出)的搜索请求,将搜索请求输入至搜索请求接受单元127。
搜索请求包括例如指明要搜索移动实体数据的范围(搜索范围)以及要执行的搜索的类型(搜索类型)的数据。用与移动实体的多边形数据的格式相同的格式指明搜索范围。也就是说,通过表示搜索范围的多边形的每个顶点的纬度和经度的集合来指明搜索范围。
搜索类型包括表示目标移动实体数据(待搜索的移动实体数据)关于搜索范围的关系的数据。在本实施例中,存在3种方式来指明搜索类型。指明搜索类型的第一种方式为指明包括在搜索范围内的移动实体数据。指明搜索类型的第二种方式为指明包括搜索范围的移动实体数据。指明搜索类型的第三种方式为指明与搜索范围重叠的移动实体数据。
然后,通过例如MBR计算单元123、目标位置键矩形指定单元124以及位置键生成单元125,执行生成关于指明的搜索范围的多边形的位置键的处理(步骤S502)。如图7所述执行生成位置键的处理。相应地,生成了一个以上的位置键。
所生成的位置键是用于搜索的键。为了避免所生成的位置键和按照与搜索对象(例如,目标移动实体数据)相一致的方式登记到移动实体数据存储单元131中的位置键之间的混淆,所生成的位置键在下文中被称为“搜索键”。
然后,搜索单元128确定在搜索请求中指明的搜索类型。在搜索是针对包括在搜索范围内的移动实体的情况下(步骤S503中的是),搜索单元128针对包括在搜索范围内的移动实体执行搜索(步骤S504)。另一方面,在搜索是针对包括搜索范围的移动实体的情况下(步骤S505中的是),搜索单元128针对包括搜索范围的移动实体执行搜索(步骤S506)。此外,在搜索是针对与搜索范围重叠的移动实体的情况下(步骤S507中的是),搜索单元128针对与搜索范围重叠的移动实体执行搜索(步骤S508)。
在步骤S504、步骤S506或步骤S508之后,搜索单元128通过将搜索结果返回至服务单元11来响应于从服务单元11输入的搜索请求(步骤S509)。搜索结果包括由于在步骤S504、步骤S506或步骤S508中执行的搜索而产生的移动实体的数据。然后,服务单元11将搜索结果发送至搜索请求的起源(即,移动终端20或固定终端(未示出))。不一定需要将搜索结果按原样返回。也就是说,搜索结果可以在其被服务单元11处理之后返回。替选地,可以在执行关于基本单元12的进一步搜索之后返回搜索结果。
接下来,更加详细地描述图11的步骤S504。图12是用于描述针对包括在搜索范围内的移动实体执行搜索的过程的示例的流程图。
在步骤S521中,搜索单元128将在图11的步骤S502中生成的搜索键之一设置为处理目标。被设置为处理目标的搜索键在下文中被称为“目标搜索键”。然后,搜索单元128在移动实体数据存储单元131中搜索具有与目标搜索键匹配的前缀的位置键(步骤S522)。要注意,“具有与目标搜索键匹配的前缀的位置键”是如下位置键:在该位置键中,从位置键的前端(开头部分)起部分地或完整地包括整个目标搜索键(即,正向匹配)。因此,前缀的匹配不仅包括整个目标搜索键与位置键的前部匹配的情况,而且包括整个目标搜索键与从位置键的前端到后端均匹配的情况(即,完全匹配)。
具有与目标搜索键匹配的前缀的位置键与对应于如下单位矩形的位置键相对应:该单位矩形与对应于目标搜索键的单位矩形相匹配、或包括在对应于目标搜索键的单位矩形中。根据下面描述的附图来描述这一方面。
图13是用于描述与搜索键正向匹配的重要性的示意图。在图13中,与搜索键相对应的纬度和经度被表示为(35.561,139.122),并且与存储在移动实体数据存储单元131中的移动实体的位置键相对应的纬度和经度被表示为(35.561,139.1223)。在此情况下,由搜索键表示的单位矩形与由图13中的粗体线围绕的单位矩形c1相对应。另一方面,由移动实体的位置键表示的单位矩形与涂为黑色的单位矩形c2相对应。如图13中清楚示出的,单位矩形c1包括单位矩形c2。
此外,在纬度和经度(35.561,139.122)被转换为位置键(即,搜索键)的情况下,纬度和经度变为“++1003395152621”。在纬度和经度(35.5612,139.1223)被转换为相应的位置键的情况下,纬度和经度变为“++10339515262132”。相应地,相应的位置键与搜索键呈现出正向匹配。
相应地,在位置键与搜索键呈现出正向匹配的情况下,由位置键表示的单位矩形与由搜索键表示的单位矩形匹配或者包括在由搜索键表示的单位矩形中。归因于位置键的这种特性,根据本发明的上述实施例可以以高速搜索可能包括在搜索范围内的移动实体。
换言之,根据本发明的上述实施例,为了在对包括在给定范围内的移动实体进行搜索的情况下基于正向匹配键来执行高速搜索,纬度和经度被改变为位置键的格式并且变为KSV键。例如,假定由简单地将纬度和经度相连并且依次排列纬度和经度的字符串来表示位置键的情况,难以基于正向匹配键来执行上述高速搜索。根据图13的示例,在搜索键被表示为简单地将纬度和经度相连并且依次排列纬度和经度的字符串的情况下,搜索键会被表示为“+35561+139122”。此外,根据图13的示例,在移动实体的位置键被表示为简单地将纬度和经度相连并依次排列纬度和经度的字符串的情况下,移动实体的位置键会被表示为“+355612+1391223”。因而,移动实体的位置键与搜索键未呈现出正向匹配。由于KVS的特性,所以难以用由“+35561*+139122*”的正规表达式表示的键执行搜索。要注意,“*”代表通配符。
如上所述,单位矩形的尺寸取决于表示单位矩形的左下顶点的纬度和经度的精确度。关于单位矩形c1,左下顶点的纬度和经度是1/1000的单位。相应地,单位矩形c1与如下矩形区域相对应:其中矩形区域的每边为1/1000。关于单位矩形c2,左下顶点的纬度和经度是1/10000的单位。相应地,单位矩形c2与如下矩形区域相对应:其中矩形区域的每边为1/10000。也就是说,位置键具有的字符越多,与位置键相对应的单位矩形就越小。
然后,搜索单元128获得存储在移动实体数据存储单元131中的移动实体数据(即,与所搜索的位置键相对应的值)(步骤S523)。然后,搜索单元128确定由被指明为搜索范围的多边形数据表示的多边形是否包括由包括在所获得的移动实体数据中的多边形数据表示的多边形(步骤S524)。该确定可以通过使用已知的几何计算法来执行。在由被指明为搜索范围的多边形数据表示的多边形包括由包括在所获得的移动实体数据中的多边形数据表示的多边形的情况下,移动实体数据包括在结果数据中。
换言之,搜索键和位置键之间的包含关系不总是与在搜索键的多边形和位置键的多边形之间的包含关系匹配。这是因为与搜索键相对应的单位矩形是将搜索范围的多边形舍入的范围,而与位置键相对应的单位矩形是将移动实体的多边形舍入的范围。因此,由与在步骤S522中所搜索的位置键相关联的多边形数据表示的多边形不总是包括在由被指明为搜索范围的多边形数据表示的多边形中。因此,为了确定多边形之间的包含关系,基于多边形的多边形数据来执行几何计算。然而,在本实施例中,通过步骤S522可以迅速缩减要用于几何计算的多边形数据的数目。换言之,在步骤S522中可以从搜索候选(待搜索的候选)中去除没有可能包括在搜索范围中的移动实体。因此,可以减小步骤S524中的计算量。
对在图11的步骤S502中生成的所有搜索键执行步骤S521至步骤S524(步骤S525)。然后,搜索单元128返回结果数据(步骤S526)。
图12的处理可以如图14A至图14C概念性地示出。图14A示出关于搜索范围的多边形的MBR55。在图14B中,用阴影表示的区域代表关于MBR55的最小单位矩形。也就是说,图14B的最小单位矩形是由搜索键表示的单位矩形。通过搜索与搜索键呈现出正向匹配的位置键,可以搜索与包括在单位矩形中的多边形相对应的位置键。图14C示出由搜索键表示的单位矩形被如下单位矩形分割的情况:所述单位矩形具有比由搜索键表示的单位矩形的精确度高一位的精确度。换言之,与以图14C中示出的方式分割的单位矩形相对应的位置键也包括在与搜索键呈现出正向匹配的位置键中。也就是说,也搜索包括在所分割的单位矩形中的多边形。在存在与较高精确度的单位矩形相对应的位置键的情况下,也搜索这些位置键。然而,为了方便,在图14A至图14C中没有示出较高精确度的位置键。
接下来,更加详细地描述图11的步骤S506。图15是用于描述针对包括在搜索范围中的移动实体执行搜索的过程的示例的流程图。
在步骤S531中,搜索单元128将在图11的步骤S502中生成的搜索键之一设置为处理目标。被设置为处理目标的搜索键在下文中被称为“目标搜索键”。然后,搜索单元128在移动实体数据存储单元131中搜索与目标搜索键完全匹配的位置键(步骤S532)。要注意,在搜索单元128使用目标搜索键以用于搜索位置键之后,搜索单元128将作为使用过的搜索键的目标搜索键存储至例如存储器装置103。
然后,搜索单元128获得存储在移动实体数据存储单元131中的移动实体数据(即,与所搜索的位置键相对应的值)(步骤S533)。然后,搜索单元128确定由被指明为搜索范围的多边形数据表示的多边形是否包括由包括在所获得的移动实体数据中的多边形数据表示的多边形(步骤S534)。可以通过使用已知的几何计算法来执行该确定。在由被指明为搜索范围的多边形数据表示的多边形包括由包括在所获得的移动实体数据中的多边形数据表示的多边形的情况下,移动实体数据包括在结果数据中。
然后,搜索单元128确定目标搜索键是否仅包括两个字符“++”(步骤S535)。在目标搜索键包括除了“++”之外的字符的情况下(步骤S535中的否),搜索单元128从目标搜索键的端部(尾部)删除两个字符(步骤S536)。结果,目标搜索键的单位矩形变为如下单位矩形:该单位矩形的位比在删除两个字符之前的单位矩形的位高1位。例如,在与目标搜索键相对应的单位矩形之前是1/10000的单位矩形的情况下,目标搜索键的单位矩形变为1/100。因而,在下面的处理中的目标搜索键是从其端部删除两个字符的搜索键。
然后,搜索单元128确定是否存在目标搜索键的使用历史(步骤S537)。例如,目标搜索键确定目标搜索键是否已作为使用过的搜索键被存储在存储器装置103中。在不存在目标搜索键的使用历史的情况下(步骤S537中的否),针对目标搜索键重复在步骤S532和步骤S532之后执行的处理。也就是说,执行了从端部删除两个字符直到目标搜索键变为“++”为止的处理、以及对与目标搜索键完全匹配的位置键进行搜索的处理。
例如,在步骤S532至步骤S537中执行在图16A至图16C中示出的处理。
图16A至图16C是用于描述搜索包括搜索范围的移动实体的处理的示意图。图16A示出关于搜索范围的多边形的MBR55。在图16B中,用阴影表示的区域代表关于MBR55的最小单位矩形。也就是说,图16B中用阴影表示的区域表明由初始目标搜索键表示的单位矩形。这里,术语“初始”被定义为在从其删除目标搜索键的一部分之前的目标搜索键的状态。相应地,在第一次执行步骤S532时,搜索与包括在由初始目标搜索键表示的单位矩形中的多边形相对应的位置键。
在图16C中,用阴影表示的区域表明由从其端部删除两个或更多个字符的目标搜索键所表示的单位矩形区域。因此,当第二次以及之后执行步骤S532时,搜索与包括在单位矩形区域中的多边形相对应的位置键。
也就是说,搜索范围的多边形被包括在特定多边形中的情况等同于特定多边形包括搜索范围的多边形的情况。因此,如上面根据图13所描述的,与至少特定多边形相对应的位置键与同搜索范围的多边形相对应的位置键呈现出正向匹配。相应地,为了搜索与初始目标搜索键呈现出正向匹配的位置键,针对与目标搜索键的字符串呈现出完全匹配的位置键执行搜索,其中在步骤S532至S537中从目标搜索键的端部删除两个字符。
然而,由与在步骤S532中所搜索的位置键相关联的多边形数据表示的多边形不总是包括在由以搜索范围指明的多边形数据表示的多边形中的多边形。因此,为了确定多边形之间的包含关系,基于多边形的多边形数据来执行几何计算。然而,在本实施例中,通过步骤S532可以迅速缩减要用于几何计算的多边形数据的数目。因此,可以减小步骤S534中的计算量。
对在图11的步骤S502中生成的所有搜索键执行步骤S532至步骤S537(步骤S538)。然后,搜索单元128返回结果数据(步骤S539)。
接下来,更加详细地描述图11的步骤S506。图17是用于描述针对与搜索范围重叠的移动实体执行搜索的过程的示例的流程图。
移动实体与搜索范围重叠的情况是如下情况:多边形的表示移动实体的形状的部分或全部与搜索范围的多边形的部分或全部重叠。也就是说,移动实体与搜索范围重叠的情况例如包括:表示移动实体的形状的多边形包括搜索范围的多边形的情况;以及表示移动实体的形状的多边形包括在搜索范围的多边形中的情况。因此,图17的处理的内容基本上是图12和图15的处理的组合。
也就是说,图17的步骤S541至S544基本上与图12的步骤S521至S524相同。此外,图17的步骤S545及之后的步骤基本上与图15的步骤S535及之后的步骤相同。
相应地,在步骤S542或步骤S548中可以迅速缩减具有与搜索范围重叠的可能性的搜索候选(移动实体)。结果,可以减少步骤S544中的计算量。
相应地,通过本发明的上述实施例,与包括表示移动实体的形状的多边形的MBR的最小单位矩形相对应的位置键、或者与同最小单位矩形具有相同尺寸并且包括MBR的一部分的单位矩形相对应的位置键被登记在KVS中,作为与移动视图数据相对应的键。结果,在位置键之间存在正向匹配或完全匹配的情况下,可以快速搜索具有彼此之间呈现出包含关系或重叠关系的可能性的多边形。相应地,可以管理位置数据,同时获得实用的搜索性能。
在本实施例中,为了方便,移动实体数据被描述为用于登记和搜索的目标。然而,用于登记和搜索的目标不限于上述目标。例如,可以将其他数据用作用于登记和搜索的目标,只要该数据包括表示位置和范围的多边形数据即可。
此外,在本实施例中,位置键的格式不限于上述格式。例如,在本实施例中,虽然以交替排列纬度和经度的位中的每一位的顺序来表示经度和纬度,但是经度和纬度的顺序可以颠倒。
此外,不一定需要交替地排列纬度和经度的所有位。也就是说,不需要交替排列比搜索期间的精确度(即,搜索键的精确度)高的位。在图13的示例中,搜索键的精确度是低于小数点的第三位。因此,关于比低于小数点的第三位更高的位,可以顺次排列经度的字符串和纬度的字符串。更具体地,在图13的示例中,搜索键为“+3556+1391221”。此外,移动实体的位置键为“+3556+139122132”。关于在低于小数点的第三位之后的位,移动实体的搜索键和位置键两者均使纬度的字符串和经度的字符串交替排列。在此情况下,移动实体的位置键与搜索键呈现出正向匹配。
根据本发明的上述实施例的位置键是如下字符串:在该字符串中,从(相同位的)纬度和经度的最低位开始的位中的一部分或者所有位逐位地交替排列。在上述示例中,从最低位开始的位中的一部分是指比低于小数点的第三位低的位。
此外,根据上述实施例,纬度的范围为+90度(北纬)至-90度(南纬),并且经度的范围为+180度(东经)至-180度(西经)。替选地,纬度的范围可以是0度至180度,并且经度的范围可以是0度至360度。在此情况下,可以从位置键的开头部分处的两个字符略去表示正号(+)或负号(-)的字符。
此外,虽然上述位置键通过直接使用纬度和经度的值的示例而生成,但是位置键可以通过例如用四叉树递归地或分层次地分割二维空间而生成。
图18是用于描述用四叉树来生成位置键的方法的示例的示意图。在图18中,涂为黑色的区域是根据本发明的实施例的包括多边形的MBR的最小单元矩形。在本示例中,用四叉树将“110000”分配至单位矩形。相应地,“110000”的字符串可以被采用为与包括在最小单元矩形的区域中的多边形相对应的位置键。
也就是说,在图18中,直线Lx1是将0至maxX的范围(X方向)分割为两半的直线。两半中的每一半分配有“0”和“1”。直线Lx2是对分配有“1”且被直线Lx1分割的一半区域进行分割的直线。直线Lx3是对分配有“0”且被直线Lx1分割的一半区域进行分割的直线。这同样适用于在Y方向上的直线Ly1、Ly2和Ly3。
结果,与图18中的涂黑的单元矩形相对应的位置键变为“110000”。位置键的值等同于通过交替地排列相同位的X和Y方向坐标所获得的值。因此,上述实施例也可以应用于通过四叉树获得位置键的情况。
在使用四叉树的情况下,通过使用一组直线所形成的矩形变为单位矩形,其中该组直线具有与用于执行递归分割的次数相匹配的数目。更具体地,在图18中,由线Lx1和Ly2形成的矩形为最小单位矩形。由线Lx2和Ly2形成的矩形为第二最大单位矩形。要注意,虽然由线Lx1或Ly1分割的且分配有“0”的一半区域还被Lx2或Ly2分割,但是在图18中略去该一半区域。
此外,虽然四叉树是在X方向和Y方向上将区域递归地分割为一半的方法,但是可以将在X方向上的区域和在Y方向上区域递归地分割为N个部分。在分割为N个部分的情况下,“N”是等于或大于1的整数。例如,可以执行成为10个部分的递归均等分割,用于获得包括多边形的MBR的单位矩形。在X方向和Y方向上将区域递归均等分割为N个部分的方法(包括四叉树方法)在下文中被称为N2树。
在使用N2树的情况下,在二维空间的X方向和Y方向上的最大值(即,图18中的maxX和maxY的值)不总需要是实际的经度和纬度的最大值。最大值可以以适于N2树的方式表示。例如,对于四叉树,2n的值可以是最大值。然而,实际上,在纬度和经度的范围内存在多边形,仅位的数目增加,而对本发明的上述实施例的效果没有明显影响。
用N2树生成位置键的方法不是上述实施例的修改示例,而是上述实施例的归纳。例如,使用了在X方向(即,经度方向)上具有0至1000的范围并且在Y方向(即,纬度方向)上具有0至1000的范围的二维坐标空间。在通过将二维坐标空间递归均等分割为10个部分所形成单位矩形中,指定(识别)与多边形的MBR匹配的最小单位矩形或包括MBR的最小单位矩形。通过如下方式所生成的字符串变为符合实际的纬度和经度的位置键:以与在X和Y方向上所分割的部分的数目相一致的方式将值分配给所识别的单位矩形或者包括所识别的单位矩形的所有单位矩形;以及从与大的单位矩形相对应的值开始,交替地排列所分配的值(从X方向的值开始或从Y方向的值开始排列所述值)。此情况与经度的范围被假定为0度至360度并且纬度的范围被假定为0度至180度的情况相对应。
要注意,在二维坐标空间被分割为十个部分的情况下,以与所分割的部分的数目相一致的方式分配的值为0至9。也就是说,每当执行递归分割时,通过递归分割所形成的每个单元矩形分别在X和Y方向上分配有值0至9。
因此,在上述实施例中,目标位置键矩形指定单元124指定单位矩形中的最小单位矩形,所述单位矩形通过在X和Y方向上递归分割二维坐标空间(包括纬度和经度的范围)而形成,其中所指定的最小单位矩形是与多边形的MBR匹配的单位矩形或包括MBR的单位矩形。此外,位置键生成单元125通过如下方式生成单个字符串:以与在X和Y方向上所分割的部分的数目相一致的方式将值分配给所识别的单位矩形或包括所识别的单位矩形的所有单位矩形;以及从与大的单位矩形相对应的值开始,交替地排列所分配的值(从X方向的值开始或从Y方向的值开始排列所述值)。
在本发明的上述实施例中,生成位置键,用于在二维坐标空间中表示纬度/经度的范围。替选地,生成位置键的上述实施例还可以应用于一维空间或三维空间。此外,生成位置键的上述实施例还可以应用于N维空间。虽然在上述实施例中通过使用单位矩形实现了快速的高速搜索,但是单条直线可以用于一维空间并且单位3维矩形可以用于三维空间。
作为一维空间的示例,上述实施例可以应用于特定时间范围(时段)。例如,上述实施例可以应用于对已在特定时段内连续运行(例如,移动、操作)的移动实体的属性数据进行登记和搜索的情况。在此情况下,通过使用包括时间范围的最小单位时间作为键,可以获得上述搜索性能。
图19是示出使用一维空间的示例的示意图。在本示例中,时间范围66的范围从2012年3月28日9点31分24秒至2012年3月28日9点37分46秒。在最小单位时间为10分钟的情况下,包括时间范围66的最小单位时间是2012年3月28日9点30分。该最小单位时间的值可以表示为“201203280930”并且被用作用于执行登记或搜索的键。
作为三维空间的示例,上述实施例可以应用于处理关于纬度、经度和高度的三维多边形数据的情况。例如,上述实施例可以应用于对除纬度数据和经度数据之外包括高度数据的位置的数据进行登记和搜索的情况。在此情况下,通过使用包括三维位置的范围的最小单位三维矩形(即,最小单位立方体)作为键,可以获得上述搜索性能。
图20是示出使用三维空间的示例的示意图。在本示例中,根据三维多边形数据得到最小边界三维矩形77(或最小边界立方体77)。然后,将与最小边界三维矩形的顶点q1的纬度、经度和高度相对应的三个值转换为预定格式(例如,位对齐),并且通过从最高值开始依次排列所转换的值来获得最小边界三维矩形77的位置键。上述位舍入的理念被用于得到最小单位三维矩形78以及与最小单位三维矩形78相对应的位置键,使得位置键可以用于执行登记和搜索。
相应地,甚至在维数改变的情况下,通过用上述实施例的方法/配置生成键,也可以管理给定范围的数据,同时获得搜索性能。
要注意,移动实体数据接收单元121或登记请求接受单元122是接受单元的示例。位置键生成单元125是差生单元的示例。移动实体数据存储单元131、设施数据存储单元132和区域数据存储单元133是存储单元的示例。
本文中所记载的所有示例和条件语言意图用于教导的目的,以帮助读者理解本发明以及发明人贡献的促进本技术的构思,并且应被解释为不限于这些具体记载的示例和条件,而且说明书中的这些示例的组织也不涉及表明本发明的优势和劣势。尽管已经详细地描述了本发明的实施例,但是应当理解,可以在不背离本发明的精神和范围的情况下对其做出各种变化、替代和改变。
Claims (5)
1.一种用于通过使计算机执行处理来管理数据的方法,其特征在于,所述处理包括:
接受多边形数据的登记请求,所述多边形数据包括与多边形的每个顶点的纬度和经度有关的数据;
从多个单位矩形中指定最小单位矩形,所述最小单位矩形与所述多边形的最小边界矩形匹配或者包括所述最小边界矩形,所述多个单位矩形是通过递归地分割包括纬度/经度范围的二维空间而形成的,所述二维空间在X方向上和Y方向上被均等地分割为相同数目;
通过以下方式来生成字符串:以与所述二维空间在所述X方向和所述Y方向上所分割的部分的数目相一致的方式,将值分配给所识别的最小单位矩形或者包括所识别的最小单位矩形的所有单位矩形;以及从与所述多个单位矩形中的大的单位矩形相对应的值开始,在所述X方向上或所述Y方向上交替地排列所分配的值;以及
以与包括所述字符串的键相一致的方式将所述多边形数据存储到存储单元中。
2.根据权利要求1所述的方法,其特征在于,所述指定最小单位矩形包括:在所述最小边界矩形跨过具有包括所述最小边界矩形的尺寸的多个所述最小边界矩形的情况下,指定多个单位矩形,
其中,所述生成字符串包括:生成关于所指定的多个单位矩形中的每个单位矩形的字符串。
3.根据权利要求1所述的方法,其特征在于,还包括:
接受搜索请求,所述搜索请求包括与第二多边形的每个顶点的纬度和经度有关的数据;
从所述多个单位矩形中指定第二最小单位矩形,所述第二最小单位矩形与所述第二多边形的最小边界矩形匹配或者包括所述最小边界矩形,所述多个单位矩形是通过递归地分割所述二维空间而形成的,所述二维空间在X方向上和Y方向上被均等地分割为相同数目;
通过以下方式来生成第二字符串:以与所述二维空间在所述X方向和所述Y方向上所分割的部分的数目相一致的方式,将值分配给所识别的第二最小单位矩形或者包括所识别的第二最小单位矩形的所有单位矩形;以及从与所述多个单位矩形中的大的单位矩形相对应的值开始,在所述X方向上或所述Y方向上交替地排列所分配的值;以及
在所述存储单元中搜索键,
其中,所述键与所述第二字符串呈现出正向匹配。
4.根据权利要求1所述的方法,其特征在于,还包括:
接受搜索请求,所述搜索请求包括与第二多边形的每个顶点的纬度和经度有关的数据;
从所述多个单位矩形中指定第二最小单位矩形,所述第二最小单位矩形与所述第二多边形的最小边界矩形匹配或者包括所述最小边界矩形,所述多个单位矩形是通过递归地分割所述二维空间而形成的,所述二维空间在X方向上和Y方向上被均等地分割为相同数目;
通过以下方式来生成第二字符串:以与所述二维空间在所述X方向和所述Y方向上所分割的部分的数目相一致的方式,将值分配给所识别的第二最小单位矩形或者包括所识别的第二最小单位矩形的所有单位矩形;以及从与所述多个单位矩形中的大的单位矩形相对应的值开始,在所述X方向上或所述Y方向上交替地排列所分配的值;以及
在所述存储单元中搜索键,
其中,所述键与所述第二字符串或从所述第二字符串的端部略去两个字符的字符串呈现出完全匹配。
5.一种数据管理设备,其特征在于,包括:
接受单元,用于接受多边形数据的登记请求,所述多边形数据包括与多边形的每个顶点的纬度和经度有关的数据;
指定单元,用于从多个单位矩形中指定最小单位矩形,所述最小单位矩形与所述多边形的最小边界矩形匹配或者包括所述最小边界矩形,所述多个单位矩形是通过递归地分割包括纬度/经度范围的二维空间而形成的,所述二维空间在X方向上和Y方向上被均等地分割为相同数目;
生成单元,用于通过以下方式来生成字符串:以与所述二维空间在所述X方向和所述Y方向上所分割的部分的数目相一致的方式,将值分配给所识别的最小单位矩形或者包括所述所识别的最小单位矩形的所有单位矩形;以及从与所述多个单位矩形中的大的单位矩形相对应的值开始,在所述X方向上或所述Y方向上交替地排列所分配的值;以及
存储单元,用于以与包括所述字符串的键相一致的方式存储所述多边形数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012080530A JP5915335B2 (ja) | 2012-03-30 | 2012-03-30 | 情報管理方法及び情報管理装置 |
JP2012-080530 | 2012-03-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103365948A true CN103365948A (zh) | 2013-10-23 |
Family
ID=48049769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101066285A Pending CN103365948A (zh) | 2012-03-30 | 2013-03-29 | 数据管理设备和数据管理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9436715B2 (zh) |
EP (1) | EP2645276A3 (zh) |
JP (1) | JP5915335B2 (zh) |
CN (1) | CN103365948A (zh) |
CA (1) | CA2809881A1 (zh) |
TW (1) | TWI543008B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307025A (zh) * | 2020-10-29 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 一种分布式索引的构建方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230064789A1 (en) * | 2020-03-19 | 2023-03-02 | Nippon Telegraph And Telephone Corporation | Information management method, information management program, and information management device |
US20220179886A1 (en) * | 2020-12-08 | 2022-06-09 | Sap Se | Jursdiction code generator |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001229314A (ja) * | 2000-02-18 | 2001-08-24 | Mitsubishi Electric Corp | 多次元表データ管理装置及び表計算プログラム記録媒体 |
US20030212650A1 (en) * | 2002-05-10 | 2003-11-13 | Adler David William | Reducing index size for multi-level grid indexes |
CN101027679A (zh) * | 2004-09-09 | 2007-08-29 | 奥普提克斯晶硅有限公司 | 表达通用的二维空间变换的系统和方法 |
US20080086464A1 (en) * | 2006-10-04 | 2008-04-10 | David Enga | Efficient method of location-based content management and delivery |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3110837B2 (ja) * | 1992-01-21 | 2000-11-20 | 日本電信電話株式会社 | 地図図形データ管理方式 |
JP3753357B2 (ja) * | 1999-01-19 | 2006-03-08 | 株式会社リコー | 文字抽出方法および記録媒体 |
JP3615716B2 (ja) * | 2001-04-25 | 2005-02-02 | ドリームテクノロジーズ株式会社 | データ管理装置及び地図データ記憶システム |
US6694264B2 (en) * | 2001-12-19 | 2004-02-17 | Earth Science Associates, Inc. | Method and system for creating irregular three-dimensional polygonal volume models in a three-dimensional geographic information system |
AU2005246368A1 (en) * | 2004-05-19 | 2005-12-01 | Metacarta, Inc. | Systems and methods of geographical text indexing |
JP2005338496A (ja) * | 2004-05-27 | 2005-12-08 | Mapquest:Kk | 二次元空間データ高速検索方法を採用した地図等の表示システム |
JP4346090B2 (ja) * | 2005-01-18 | 2009-10-14 | 日立ソフトウエアエンジニアリング株式会社 | 図形データ管理方法およびシステム、記憶媒体 |
JP3885157B2 (ja) | 2005-08-02 | 2007-02-21 | 直生 上田 | 地理的座標変換方法、装置、プログラム、ならびに地理的座標コードを記した情報担持体および地図 |
US7924294B2 (en) * | 2006-12-27 | 2011-04-12 | The Mathworks, Inc. | Polygon trimming using a modified azimuthal map projection |
JP4947376B2 (ja) * | 2007-12-26 | 2012-06-06 | アイシン・エィ・ダブリュ株式会社 | 3次元データ処理装置、3次元画像生成装置、ナビゲーション装置及び3次元データ処理プログラム |
US8634796B2 (en) * | 2008-03-14 | 2014-01-21 | William J. Johnson | System and method for location based exchanges of data facilitating distributed location applications |
US8965670B2 (en) * | 2009-03-27 | 2015-02-24 | Hti Ip, L.L.C. | Method and system for automatically selecting and displaying traffic images |
CA2823839A1 (en) * | 2011-01-10 | 2012-07-19 | Roy W. Ward | Systems and methods for high-speed searching and filtering of large datasets |
JP5782948B2 (ja) | 2011-09-15 | 2015-09-24 | 富士通株式会社 | 情報管理方法及び情報管理装置 |
-
2012
- 2012-03-30 JP JP2012080530A patent/JP5915335B2/ja not_active Expired - Fee Related
-
2013
- 2013-03-15 US US13/840,544 patent/US9436715B2/en not_active Expired - Fee Related
- 2013-03-19 TW TW102109645A patent/TWI543008B/zh not_active IP Right Cessation
- 2013-03-20 EP EP13160231.0A patent/EP2645276A3/en not_active Withdrawn
- 2013-03-20 CA CA2809881A patent/CA2809881A1/en not_active Abandoned
- 2013-03-29 CN CN2013101066285A patent/CN103365948A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001229314A (ja) * | 2000-02-18 | 2001-08-24 | Mitsubishi Electric Corp | 多次元表データ管理装置及び表計算プログラム記録媒体 |
US20030212650A1 (en) * | 2002-05-10 | 2003-11-13 | Adler David William | Reducing index size for multi-level grid indexes |
CN101027679A (zh) * | 2004-09-09 | 2007-08-29 | 奥普提克斯晶硅有限公司 | 表达通用的二维空间变换的系统和方法 |
US20080086464A1 (en) * | 2006-10-04 | 2008-04-10 | David Enga | Efficient method of location-based content management and delivery |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307025A (zh) * | 2020-10-29 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 一种分布式索引的构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
TW201346604A (zh) | 2013-11-16 |
JP2013210839A (ja) | 2013-10-10 |
EP2645276A3 (en) | 2014-04-02 |
US20130262512A1 (en) | 2013-10-03 |
JP5915335B2 (ja) | 2016-05-11 |
EP2645276A2 (en) | 2013-10-02 |
CA2809881A1 (en) | 2013-09-30 |
TWI543008B (zh) | 2016-07-21 |
US9436715B2 (en) | 2016-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6032467B2 (ja) | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム | |
US11061984B2 (en) | Grid-based geofence data indexing | |
Yu et al. | Trajectory similarity clustering based on multi-feature distance measurement | |
CN105630988A (zh) | 一种快速检测空间数据变化并更新的方法及系统 | |
CN107092623B (zh) | 一种兴趣点查询方法及装置 | |
CN108804602A (zh) | 一种基于spark的分布式空间数据存储计算方法 | |
CN113946700A (zh) | 一种时空索引构建方法、装置、计算机设备及存储介质 | |
US20210254995A1 (en) | Methods, apparatuses, systems, and storage media for storing and loading visual localization maps | |
CN113946575A (zh) | 时空轨迹数据处理方法、装置、电子设备及存储介质 | |
CN104008209B (zh) | 以GeoJSON格式结构化方式存储地理数据的MongoDB集群的地理数据读写方法 | |
CN111143289A (zh) | 一种地图的瓦片数据处理方法及装置 | |
CN103365948A (zh) | 数据管理设备和数据管理方法 | |
CN106980540B (zh) | 一种分布式多维离散数据的计算方法 | |
CN108647243B (zh) | 基于时间序列的工业大数据存储方法 | |
CN105808617B (zh) | 一种电子地图的生成、显示方法和装置 | |
CN115935561A (zh) | 一种三维管网建模方法、装置、电子设备及存储介质 | |
CN115269600A (zh) | 一种飞机数据的管理方法、装置、电子设备及存储介质 | |
CN114155391A (zh) | 轨迹处理方法、装置及计算机设备 | |
CN102708109B (zh) | 栅格数据的读取方法和装置,栅格数据的写入方法和装置 | |
CN113312331A (zh) | 数据迁移方法、装置、系统、电子设备及计算机可读介质 | |
CN113312360B (zh) | 索引建立方法、装置、设备、存储介质及计算机程序产品 | |
CN110889042B (zh) | 资源推荐方法、装置、计算机设备及存储介质 | |
CN116049690B (zh) | 一种移动目标的活动规律确定方法、装置、设备和介质 | |
CN112184904B (zh) | 一种数字集成方法和装置 | |
CN116303249B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131023 |