CN102999546B - 信息管理方法和信息管理装置 - Google Patents

信息管理方法和信息管理装置 Download PDF

Info

Publication number
CN102999546B
CN102999546B CN201210343176.8A CN201210343176A CN102999546B CN 102999546 B CN102999546 B CN 102999546B CN 201210343176 A CN201210343176 A CN 201210343176A CN 102999546 B CN102999546 B CN 102999546B
Authority
CN
China
Prior art keywords
longitude
latitude
incremental area
minima
group
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.)
Expired - Fee Related
Application number
CN201210343176.8A
Other languages
English (en)
Other versions
CN102999546A (zh
Inventor
尾林俊文
奥西水尾
玉井恭平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN102999546A publication Critical patent/CN102999546A/zh
Application granted granted Critical
Publication of CN102999546B publication Critical patent/CN102999546B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Navigation (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种将由计算机执行的信息管理方法,该信息管理方法包括:接受注册请求,注册请求包括其中包含有纬度和经度的信息以及与位置信息对应的对应性信息;通过交替排列纬度的一个字符和经度的另一字符来生成一个字符串,一个字符和另一字符中的每个字符关于纬度和经度中每一个的所有位是在相同位或者关于从纬度和经度中每一个的最低有效位起的一些位是在相同位;并且以与作为关键字的字符串相关的方式在存储单元中存储对应性信息。

Description

信息管理方法和信息管理装置
技术领域
本公开内容涉及一种信息管理方法和一种信息管理装置。
背景技术
有如下搜索服务,在该服务中,收集和管理纬度和经度作为移动设备或者设施等的位置信息以执行关于位置信息的搜索。这里提到的移动设备是车载设备、蜂窝电话、平板型终端等。移动设备主要是具有通信功能(该通信功能利用移动通信网络)的可移动终端或者携带这样的终端的设备或者个人。搜索服务的内容的例子包括比如在公开号为2007-41189的日本待审专利中公开的搜寻在某一范围中(例如在设施内)包括的移动组这样的服务。
发明内容
根据本发明的一个方面,一种将由计算机执行的信息管理方法,该信息管理方法包括:接受注册请求,注册请求包括其中包含纬度和经度的信息以及与位置信息对应的对应性信息;通过交替排列纬度的一个字符和经度的另一字符来生成一个字符串,一个字符和另一字符中的每个字符关于纬度和经度中的每项的所有位或者从纬度和经度中的每项的最低有效位起的一些位是在相同位;并且以与作为关键字的字符串相关的方式在存储单元中存储对应性信息。
因而在实施例的一个方面中的目的是提供一种在保证实际搜索性能的同时管理位置信息的技术。
附图说明
图1是图示了根据本公开内容一个实施例的信息管理系统的配置例子的图;
图2是图示了根据本公开内容一个实施例的信息管理装置的硬件配置例子的图;
图3是图示了根据本公开内容一个实施例的信息管理装置的功能配置例子的图;
图4是用于描述用于位置关键字的生成处理的处理过程例子的流程图;
图5是用于描述移动信息注册处理的处理过程例子的流程图;
图6是图示了组成移动设备的范围的矩形区域的指定方法例子的图;
图7是图示了大小信息的数据结构例子的图;
图8是图示了移动信息存储单元的配置例子的图;
图9A和9B是用于描述对于每个归一化单元格(normalizedcell)(该单元格组成矩形区域组)的位置关键字的生成处理的处理过程例子的流程图;
图10A和10B是用于描述对于每个归一化单元格(该单元格组成矩形区域组)的位置关键字的生成处理的处理过程例子的流程图;
图11是用于描述对于每个归一化单元格(该单元格组成矩形区域组)的位置关键字的生成处理的处理过程例子的流程图;
图12A和12B是用于描述对于每个归一化单元格(该单元格组成矩形区域组)的位置关键字的生成处理的处理过程例子的流程图;
图13是图示了矩形区域组的例子的图;
图14是图示了划分矩形区域的单元格组的例子的图;
图15是用于描述包括所有指定矩形区域的最小矩形区域的图;
图16是图示了在包含区域中确定的、增量为完整粒度大小CSIZE的单元格例子的图;
图17是图示了跨越(straddle)指定矩形区域的单元格组的合并结果例子的图;
图18是用于描述用于移动信息的搜索处理的处理过程例子的流程图;
图19是用于描述与搜索范围对应的搜索关键字的生成处理的处理过程例子的流程图;
图20是用于描述位置关键字(该位置关键字用于搜索包括搜索范围的移动设备)的生成处理的处理过程例子的流程图;
图21是用于描述移动设备(搜索范围包括该移动设备)的搜索处理的处理过程的例子的流程图;
图22是用于描述与搜索关键字前向一致的重要性的图;
图23A和23B是用于描述移动设备(在该移动设备中包括搜索范围)的搜索处理的处理过程例子的流程图;
图24是图示了管理表的配置例子的图;
图25是图示了如下例子的图,在该例子中,单个舍入(round-off)搜索关键字是多个原有搜索关键字共有的;
图26A、26B、26C和26D是图示了移动信息的搜索处理的第一具体例子的图;
图27A、27B、27C和27D是图示了移动信息的搜索处理的第二具体例子的图;
图28A、28B、28C和28D是图示了移动信息的搜索处理的第三具体例子的图;
图29A、29B、29C和29D是图示了移动信息的搜索处理的第四具体例子的图;
图30A、30B、30C和30D是图示了移动信息的搜索处理的第五具体例子的图;
图31A、31B、31C和31D是图示了移动信息的搜索处理的第六具体例子的图;并且
图32A、32B、32C和32D是图示了移动信息的搜索处理的第七具体例子的图。
具体实施方式
本发明人已经研究收集和管理纬度和经度作为比如移动设备、设施等的位置信息并且提供关于位置信息的高速搜索服务。可以设想运用RDB(关系数据库)作为比如移动设备、设施等的位置信息的管理工具。例如可以设想在RDB中注册移动设备、设施等的ID和位置信息作为移动设备、设施等的属性。
然而在这一情况下,例如当考虑搜寻在某一范围中包括的移动组时,必须比较这一范围与所有记录的位置信息。如上文描述的那样,在待管理的移动设备中不仅包括安装于车辆中的车载设备而且包括人们携带的终端。因而记录数目扩展至数千万或者可能超过数千万。因此可以设想难以通过比较所有记录的位置信息与某一范围来获得实际搜索性能。
然而为了提高搜索性能,可以设想创建关于位置信息的索引。然而在这一情况下,移动设备的位置信息时刻改变,因而可以设想索引的重排可能频繁出现从而增加这一重排所致的处理负荷上至不可忽略的程度。
因此,在本实施例中公开一种在保证实际搜索性能的同时管理位置信息的技术。
下文将基于附图描述本公开内容的一个实施例。图1是图示了根据本公开内容一个实施例的信息管理系统的配置例子的图。就附图中的信息管理系统1而言,其配置有多个移动终端20(比如移动终端20a、20b和20c等)以及信息管理装置10以便例如经由移动通信网络等通信。
采用移动终端20识别作为待管理对象的移动设备的位置。因而移动终端20是适当可移动的终端,该终端具有利用移动通信网络的通信功能和诸如车载设备、蜂窝电话、智能电话、平板型终端等GPS(全球定位系统)功能。这里提到的移动设备是用于移动这些移动终端20的主体(比如移动终端20安装于其中的车辆、携带移动终端20的个人等)。然而移动终端20本身可以被识别为移动设备。此外,即使未安装用于测量位置的设备的对象(比如台风、雨云、雷暴云砧、锋面等),如果可以外部观测或者测量其位置,则其也可以理解为移动设备。
信息管理装置10是用于管理关于移动设备或者未图示的设施或者区域的位置信息等的计算机。位置信息是关于纬度和经度的信息。多个计算机可以组成信息管理装置10。可以使用移动终端20来搜索信息管理装置10管理的信息。可替代地,可以从诸如PC(个人计算机)等固定终端搜索其信息。注意:区域可以是某些范围(比如行政区)或者可以是随意限定的范围。
图2是图示了根据本公开内容一个实施例的信息管理装置的硬件配置例子的图。图2中的信息管理装置10包括通过总线B相互连接的驱动设备100、辅助存储设备102、存储器设备103、中央处理单元(CPU)104、接口设备105等。
用于在信息管理装置10实现处理的程序具有记录介质101。在向驱动设备10设置其中记录程序的记录介质101时,程序经由驱动设备100从记录介质101安装在辅助存储设备102中。然而未必必须从记录介质101执行程序的安装,而可以经由网络从另一计算机下载程序。辅助存储设备102存储安装的程序并且也存储文件、数据等。
在已经接收程序激活指令的情况下,存储器设备103从辅助存储设备102读出程序并且存储这一程序。CPU104根据存储于存储器设备103中的程序执行根据信息管理装置10的功能。CPU104是处理器的一个例子。采用接口设备105作为用于连接到网络的接口。
注意记录介质101的例子包括便携型记录介质(比如CD-ROM、DVD盘、USB存储器等)。辅助存储设备102的例子也包括HDD(硬盘驱动)、闪存等。记录介质101和辅助存储设备102中的任一个等同于计算机可读记录介质。
图3是图示了根据本公开内容一个实施例的信息管理装置的功能配置例子的图。在附图中,信息管理装置10包括服务部11和低级部12。
低级部12向服务部11提供在信息管理装置10的信息管理功能之中的底层式或者基本功能。因而低级部12的客户端基本上是服务部11。服务部11利用低级部12提供的功能以实现应用的功能、由此向移动终端20等提供服务。因而服务部11的客户端基本上是移动终端20等。注意可以经由低级部12具有的API(应用程序接口)来使用低级部12的功能。
低级部12包括注册请求接收部121、ID时间关键字生成部122、位置关键字生成部123、注册部124、搜索请求接受部125、搜索条件生成部126、搜索请求部127等。这些部通过安装于信息管理装置10中的程序使CPU104执行的处理来实现。低级部12也包括移动信息存储单元131、设施信息存储单元132、区域信息存储单元133等。可以通过采用将经由网络连接到辅助存储设备102或者信息管理装置10的存储设备等来实现这些存储单元。
移动信息接收部121相继接收移动设备的位置信息、属性信息等。下文将把移动设备的位置信息和属性信息等称为移动信息。以用于每个移动终端20的适当定时接收移动信息。例如移动信息接收部121针对于每个周期或者每当移动终端的位置按照一定量改变时接收移动信息。可以经由移动通信网络从移动终端20直接接收移动信息,或者可以通过用于管理移动信息的另一计算机系统直接获得或者接收移动信息。在后一情况下,另一计算机系统无需限于一个类型。另一计算机系统的例子包括提供远程信息处理服务的计算机系统。
注意移动信息接收部121获得移动信息时的定时对于每个移动终端20而言可以不同。也就是说,关于所有移动终端20,无需接收在相同日期和时间的移动信息。
注册接受部122接受来自服务部11的针对设施信息的注册请求或者针对区域信息的注册请求。设施信息包括设施的位置信息和属性信息。区域信息包括区域的位置信息和属性信息。也就是说,注册请求接受部122组成低级部12提供的API的一部分。然而注册请求接受部122可以从另一计算机系统获得设施信息或者区域信息等。
位置关键字生成部123生成关于移动信息接收部121接收到的移动信息或者注册请求接受部122接受的设施信息或者区域信息的关键字。这里提到的关键字是KVS(关键字值存储库)中的关键字。也就是说,就本实施例而言,用KVS管理移动信息、设施信息和区域信息。注意就本实施例而言,基于移动设备、设施或者区域的位置的纬度和经度生成关键字。这一关键字将被称为“位置关键字”。
注册部124在移动信息存储单元131、设施信息存储单元132或者区域信息存储单元133中注册位置关键字生成部123生成的位置关键字所相关的移动信息、设施信息或者区域信息。
移动信息存储单元131是如下KVS型数据库,在该数据库中以与位置关键字相关的方式存储移动信息。设施信息存储单元132是如下KVS型数据库,在该数据库中以与位置关键字相关的方式存储设施信息。区域信息存储单元133是如下KVS型数据库,在该数据库中以与位置关键字相关的方式存储区域信息。
搜索请求接受部125接受来自服务部11的针对移动信息、设施信息或者区域信息的搜索请求。搜索条件生成部126基于搜索请求中指定的参数生成关于移动信息存储单元131、设施信息存储单元132或者区域信息存储单元133的适于搜索的搜索条件。更具体而言,搜索条件生成部126基于搜索请求中指定的参数生成一个或者多个位置关键字。搜索部127使用搜索条件生成部126生成的位置关键字来执行对移动信息、设施信息或者区域信息的搜索。
下文将描述信息管理装置10执行的处理过程。首先将描述位置关键字的生成处理。
图4是用于描述位置关键字的生成处理的处理过程的例子的流程图。虽然这一处理过程是在生成或者搜索移动信息等时从上层处理过程调用的处理过程,但是为了便于描述而将在上层处理过程之前描述这一处理过程。
在步骤S301中,位置关键字生成部125将待处理的纬度和经度中的每项从数值转换成字符串。因而生成纬度字符串和经度字符串。这里提到的纬度字符串是指示纬度的字符串。这里提到的经度字符串是指示经度的字符串。例如假设待处理的纬度和经度(35.5678,139.1234)。在这一情况下,纬度字符串是“35.5678”,而经度字符串是“139.1234”。注意假设纬度范围是+90度(北纬)至-90度(南纬)。也就是说,假设用负号(-)代表南纬。也假设纬度范围是+180度(东经)至-180度(西经)。也就是说,假设用负号(-)代表西经。注意虽然用正号(+)代表北纬和东经,但是无需向作为数值的北纬和东经显式地添加“+”。此外,在纬度和经度之中,取哪个角度范围作为“+”而取哪个角度范围作为“-”也不限于上述例子。
接着,位置关键字生成部125将纬度字符串和经度字符串转换成某一格式(S302)。首先,在整数部分由一位或者两位组成的情况下,向其头部中插入“0(零)”以便具有3位整数部分。因而纬度字符串变成“035.5678”。经度字符串仍然是“139.1234”,因为其整数部分在这一例子中原本就由三位组成。此外,基于作为原本数值的纬度和经度向纬度字符串和经度字符串的头部添加“+”或者“-”。因而纬度字符串变成“+035.5678”而经度字符串变成“+139.1234”。此外,从二者删除指示小数点的字符“.”。因而纬度字符串变成“+0355678”而经度字符串变成“+1391234”。
这是向某一格式转换的结束。
接着,位置关键字生成部125从经度字符串的最高有效位获得一个字符并且添加到工作变量的头部(S303)。工作变量是用于工作的字符串变量。因而当第一次执行步骤S303时从“+1391234”获得“+”并且将其添加到工作变量的头部。
接着,位置关键字生成部125从纬度字符串的最高有效位获得一个字符并且将该字符添加到工作变量的头部(S304)。因而当第一次执行步骤S304时从“+0355678”获得“+”并且将其添加到工作变量。注意步骤S304中的工作变量与步骤S303中的工作变量相同。因而在第一次完成步骤S303和S304的瞬间,工作变量的内容变成“++”。注意可以改变步骤S303和S303的执行顺序。
反复执行步骤S303和S304直至处理纬度字符串和经度字符串的所有位(S305)。结果获得如下一个字符串作为工作变量,其中以从纬度字符串和经度字符串中的每个字符串的最高有效位起的顺序一次一位地交替排列相同位的字符。就上例而言,获得字符串“++10339515263748”作为工作变量。这一字符串是适于作为位置关键字的字符串。因而位置关键字生成部125向用于执行上层处理过程的处理部返回工作变量(即位置关键字中)中存储的值(S306)。在注册或者搜寻移动信息等时向用于执行上层处理过程的处理部返回位置关键字。
就将如上文描述的那样生成的位置关键字而言,在与一个位置关键字前向一致的另一位置关键字的情况下,这意味着在根据该一个位置关键字的范围中包括根据另一位置关键字的范围。后文将描述这一点。注意这里提到的根据位置关键字的范围是具有矩形区域,该矩形区域以增量(这些增量根据这一位置关键字的纬度和精度的精确度)作为一边。
接着将关于用于移动信息的注册处理的处理过程进行描述。图5是用于描述移动信息的注册处理的处理过程例子的流程图。
在步骤S101中,移动信息接收部121接收针对移动信息的注册请求(S101)。移动信息包括位置信息和属性信息。属性信息例如包括移动设备ID、代表性的位置的位置信息、移动设备的大小信息等。可以在移动信息中包括关于移动设备的其它属性信息。移动设备ID是标识信息。
大小信息是如下信息,其中用一组一个或者多个矩形区域代表移动设备占据的关于纬度和经度二维坐标系的范围。用于指定矩形区域(这些矩形区域组成移动设备的范围)的方法的例子包括比如图6中所示三种方法。
图6是图示了用于指定矩形区域(这些矩形区域组成移动设备的范围)的方法的例子的图。在图6中,以恰当方式,附图中的水平方向代表经度,而附图中的竖直方向代表纬度。在附图中以三种方法I至III为例。
I中的方法是用于指定一组纬度和经度的方法。在这一情况下,指定如下矩形区域,该矩形区域以这一纬度和经度取为左下顶点p1而增量(这些增量根据这一纬度和经度的精确度(在小数点以下的有效位数))取为一边。例如在纬度和经度精确度为1/1000的情况下,指定一边为1/1000度的矩形区域。此外,在纬度和经度精确度为1/10000的情况下,指定一边为1/10000度的矩形区域。注意就本实施例而言,这里提到的关于某一范围的左下顶点是纬度最小值和经度最小值在这一范围中指示的位置。这里提到的关于某一范围的右上顶点也是纬度最大值和精度最大值在这一范围中指示的位置。
II中的方法是用于指定两组纬度和经度的方法。在这一情况下,指定如下矩形区域,该矩形区域以第一组纬度和经度取为左下顶点p2而第二组纬度和经度取为右上顶点p3。
III中的方法是用于指定一组纬度和经度以及半边的方法。在这一情况下,指定如下矩形区域,该矩形区域以这一组纬度和经度取为中心点p4(对角线的交点)而这一半边r取为从中心点到四个方向的距离。例如设想米作为指定为半边的距离的增量。
注意可以通过除了上述I至III之外的方法指定矩形区域。在以大小信息指定多个矩形区域的情况下(即在移动设备的范围是一组多个矩形区域的情况下),也可以组合上述I至III中的指定方法。因而大小信息录入具有如图7中所示的数据结构。
图7是图示了大小信息的数据结构例子的图。如附图中所示,就大小信息而言,针对每个矩形区域管理位置和大小。大小是有代表性的位置的位置。管理用于大小和值的指定方法作为大小。注意大小的指定方法例如是与上述I至III之一等效的指定方法。值例如是与上述I至III对应的值。
代表性的位置的位置信息是移动设备的代表性的位置的纬度和经度。这里提到的代表性的位置在用一点代表移动设备的情况下是这一点的位置。
接着,位置关键字生成部123执行每个单元格的位置关键字的生成处理(S102)。单元格是如下归一化区域,这些区域组成大小信息指示的矩形区域组。就本实施例而言,单元格也是用于代表某一范围的增量区域。单元格是在纬度与经度之间的二维坐标系中用相同位(精确度)的纬度和经度网或者网格或者交点形成的方形。基于单元格的左下顶点的纬度和经度精确度确定单元格的一边的长度。例如在用1/1000度指定左下顶点的纬度和经度的精确度的情况下,指定具有1/1000度的一边的矩形区域。在用1/10000度指定左下顶点的纬度和经度精确度的情况下,也指定具有1/10000度的一边的矩形区域。此外,单元格组的归一化是在有如下单元格组的情况下执行合并,可以将这些单元格组合并成具有某一精确度的关于单元格组的高位。可以合并成高位的单元格组例如在有具有1/10000的单元格组的情况下是以1/1000的增量在单元格中包括的100个单元格组。单元格的位置关键字或者与单元格对应的位置关键字也意味着将基于单元格的左下顶点的纬度和经度生成的位置关键字。
因而在步骤S102中,将矩形区域(该矩形区域组成大小信息指示的范围)转换成一个或者多个单元格,并且针对每个单元格生成左下顶点的位置关键字。注意在单元格的数目多于一个的情况下,单元格的精确度(增量或者大小)未必是共同的。如上文描述的那样,这是因为可以执行单元格组的归一化。
接着,注册部124针对每个生成的位置关键字以相关方式在移动信息存储单元131中注册移动设备ID、代表性的位置、大小信息、属性信息等(S103)。
图8是图示了移动信息存储单元的配置例子的图。如附图中所示,移动信息存储单元131以与关键字相关的方式存储值。在关键字中存储基于纬度字符串和经度字符串生成的位置关键字。后文将描述位置关键字生成方法。值包括一行或者多行。每行对应于一个移动设备并且包括id、数据以及注册日期和时间这三项(列)。在id中存储移动设备ID,该移动设备ID可以唯一标识每个移动设备。在数据中存储纬度和经度(该纬度和经度指示代表性的位置)、大小信息、其它属性信息等。注册日期和时间是当注册行时的日期和时间。大小信息可以包括图7中例示的数据结构。注意多行可以与一个位置关键字相关的原因是因为可以关于相同纬度和经度对多个移动设备定位。
此外,关于范围跨越多个单元格的移动设备,针对每个单元格以与这一单元格的左下顶点对应的位置关键字相关的方式存储值。在附图中,图示如下例子,在该例子中,关于移动设备ID为“id6666”的移动设备,分配三个位置关键字。
注意图8中所示配置是例子并且可以适当地改变值的配置。
每当接收移动信息时执行图5中的处理。因而关于多个移动设备中的每个设备,每秒接收移动信息并且以图8中所示形式在移动信息存储单元131中注册该移动信息。
另一方面,设置移动信息存储单元131以便根据KVS引擎在注册已经过去某一时间之后删除数据。因而将在某一时间过去之后删除移动信息存储单元131中注册的数据。这意味着基本上在移动信息存储单元131关于每个移动设备管理最新接收的位置信息。
注意虽然已经在图5中描述用于移动信息的注册处理,但是在注册请求接受部122也已经接受针对设施信息或者区域信息的注册请求情况下,基本上执行相同处理过程。然而关于设施信息,移动设备ID替换为用于设施的标识信息(设施ID)。用于设施信息的注册目的地也是设施信息存储单元132。关于区域信息,移动设备ID也替换为区域的标识信息(区域ID)。用于区域信息的注册目的地是区域信息存储单元133。另外设置设施信息存储单元132和区域信息存储单元133以免在注册过去某一时间之后执行数据的自动删除。这是因为就设施和区域而言其位置信息基本上不像移动设备那样每秒改变。
接着将描述步骤S102的细节。图9至图12是用于描述每个归一化单元格(该归一化单元格组成矩形区域组)的位置关键字的生成处理的处理过程例子的流程图。
在步骤S201中,位置关键字生成部从用如图7中所示数据结构指定的矩形区域组之中取出一个矩形区域作为待处理的对象。待处理的矩形区域将称为“对象矩形区域”。
现在假设已经指定如图13中所示的矩形区域组。图13是图示了矩形区域组的例子的图。在附图中,假设在纬度方向和经度方向二者上的最小刻度为1/10000度。在附图中,矩形区域R1、矩形区域R2、矩形区域组R3、矩形区域组R4、矩形区域R5、矩形区域R6、矩形区域R7和矩形区域组R8组成指定的矩形区域组。
矩形区域R1是用1/10000度取为一边的矩形区域。就R1而言,用精确度为1/10000度的两组纬度和经度指定矩形区域。矩形区域R2是如下矩形区域,其中在纬度方向上的长度取为1/1000度而经度方向的长度取为8/10000度。就R2而言,用1/1000度指定一组纬度和经度,而用1/10000度指定两组纬度和经度。矩形区域组R3是一组四个矩形区域。就R3而言,用精确度为1/10000度的一组纬度和经度指定每个矩形区域。矩形区域组R4是一组20个矩形区域。就R4而言,用精确度为1/10000度的一组纬度和经度指定每个矩形区域。矩形区域R5是一个矩形区域。就R5而言,用精确度为1/10000度的一组纬度和经度指定矩形区域。矩形区域组R6是一组九个矩形区域。就R6而言,用精确度为1/10000度的一组纬度和经度指定每个矩形区域。矩形区域R7是用一边取为1/1000度来指定的矩形区域。用中心点p5和半边r5指定R7。矩形区域组R8是一组99个矩形区域。也就是说,在矩形区域组R8中未包括用B指示的部分。就R8而言,用精确度为1/10000度的一组纬度和经度指定每个矩形区域。
在步骤S201中,取这样的矩形区域之一作为对象矩形区域。也关于在矩形区域组R3、R4、R6和R8中包括的多个矩形区域,一次取其每个矩形区域作为待处理的对象。
接着,位置关键字生成部123确定是否已经用中心点和半边指定对象矩形区域(S202)。在已经用中心点和半边指定对象矩形区域(在S202中为是)的情况下,位置关键字生成部123计算关于用中心点的纬度、中心点的经度和半边(米)而确定的范围的左下顶点的纬度以及经度和右下顶点的纬度和经度(S203)。其计算方法遵循已知方法就足够了。
另一方面,在尚未用中心点和半边指定对象矩形区域(在S202中为否)的情况下,位置关键字生成部123确定是否已经用一组纬度和经度指定对象矩形区域(S204)。在已经用一组纬度和经度指定对象矩形区域(在S204中为是)的情况下,位置关键字生成部123取这一纬度和经度作为左下顶点。另外,位置关键字生成部123获得适于作为如下单元格的右上顶点的纬度和经度,该单元格以根据左下顶点的纬度和经度的准确度的长度取为一边(S205)。
在尚未用一组纬度和经度指定对象矩形区域(在S204中为否)的情况下,在这一情况下,位置关键字生成部123未执行特定处理。就本实施例而言,已经用两组纬度和经度指定对象矩形区域。
也就是说,在步骤S206和随后步骤中,用左下顶点和右上顶点中的每个顶点的纬度和经度确定对象矩形区域。
接着,位置关键字生成部123用通过从对象矩形区域的右上顶点的纬度减去左下顶点的纬度而获得的值代替变量WLAT(下文称为“纬度宽度WLAT”)。接着,位置关键字生成部123用通过从对象矩形区域的右上顶点的经度减去左下顶点的经度而获得的值代替变量WLON(下文称为“经度宽度WLON”)(S207)。接着,位置关键字生成部123用在纬度WLAT的小数点以下的位数代替变量KLAT(S208)。接着,位置关键字生成部123用在经度WLON的小数点以下的位数代替变量KLON(S209)。接着,位置关键字生成部123用变量KLAT的值和KLON的值中的最大值代替变量KMAX(下文称为“有效位数KMAX”)(S210至S212)。
接着,在有效位数KMAX大于在小数点以下的位数的限制值(例如5等)(在S213中为是)的情况下,位置关键字生成部123校正有效位数KMAX的值以反映这一限制值(S214)。
接着,在步骤S215至S222中,位置关键字生成部123将对象矩形区域划分成具有根据有效位数KMAX的精确度的大小)的单元格组并且关于每个单元格执行位置关键字的生成。关于这一点,将参照附图进行描述。
图14是图示了如下例子的图,在该例子中,将矩形区域划分成单元格组。例如在矩形区域R2是对象矩形区域的情况下,有效位数KMAX为4(即1/10000)。因而将矩形区域R2划分成粒度大小为1/10000度的80个单元格组。此外,在矩形区域R5是对象矩形区域的情况下,有效位数KMAX为5(即/100000)。因而将矩形区域R5划分成粒度大小为1/100000度的100个单元格组。在步骤S215至S222中执行这样的划分处理。
在步骤S215中,位置关键字生成部123用对象矩形区域的左下顶点的经度代替变量LLON(下文称为“对象经度LLON”)。接着,位置关键字生成部123用左下顶点的纬度代替变量LLAT(下文称为“对象纬度LLAT”)(S216)。接着,位置关键字生成部123基于对象纬度LLAT和对象经度LLON执行位置关键字的生成处理(图4)(S217)。
接着,位置关键字生成部123向列表L添加生成的位置关键字(S218)。列表L是其中存储有位置关键字的暂时存储区域。例如可以用存储器设备103或者辅助存储设备102实现列表L。接着,位置关键字生成部123将通过0.1的有效位数KMAX次幂相乘的值与对象纬度LLAT相加(S219)。例如就图14中的矩形区域R2而言,加上0.1的四次幂=0.0001。接着,位置关键字生成部123确定对象纬度LLAT的值是否达到对象矩形区域的右上顶点的纬度(S220)。在对象纬度LLAT的值未达到对象矩形区域的右上顶点的纬度(在S220中为否)的情况下,位置关键字生成部123重复步骤S217和随后步骤。
接着,在对象纬度LLAT的值达到对象矩形区域的右上顶点的纬度(在步骤S220中为是)的情况下,位置关键字生成部123将0.1的有效位数KMAX次幂与对象经度LLOT相加(S221)。就图14中的矩形区域R2而言,0.1的有效位数KMAX次幂为0.0001。接着,位置关键字生成部123确定对象经度LLON的值是否达到对象矩形区域的右上顶点的经度(S222)。在对象经度LLON的值未达到对象矩形区域的右上顶点的经度(在S222中为否)的情况下,位置关键字生成部123重复步骤S216和随后步骤。
在对象经度LLON的值达到对象矩形区域的右上顶点的经度(在S222中为是)的情况下,比如就图14中的矩形区域而言,对象矩形区域被划分成具有根据有效位数KMAX的精确度的大小的单元格并且处于如下状态中,在该状态中,在列表L中记录与每个单元格的左下顶点对应的位置关键字。
接着,在图10A中的步骤S223至S245中,位置关键字生成部123执行用于合并上述生成的单元格组中的如下单元格的处理,这些单元格可以合并成精确度为高位的单元格。例如在矩形区域R5是对象矩形区域的情况下,将图14中的矩形区域R5中包括的100个单元格组合并成具有1/10000度的一个单元格。因而将原先用1/100000度的精确度指定的矩形区域R5转换成精确度为1/10000度的单元格。在步骤S223至S225中执行这样的处理。
在步骤S223中,位置关键字生成部123用1.0代替变量CSIZE(S223)。变量CSIZE具有待合并的单元格的粒度大小(一边的长度)。具体而言,首先关于是否可以将一边合并成具有1.0度的单元格进行尝试。下文将把变量CSIZE称为“完整粒度大小CSIZE”。接着,位置关键字生成部123用0代替变量i(S224)。变量i是用于保持步骤S225至S244中的执行次数的变量。注意将步骤S225至S244重复有效位数KMAX指示的次数。
接着,位置关键字生成部123用通过将纬度宽度WLAT除以完整粒度大小CSIZE而获得的值的整数部分代替变量WLATSIZE(S225)。也就是说,关于纬度宽度WLAT,以完整粒度大小CSIZE作为增量的大小代替变量WLATSIZE。接着,位置关键字生成部123用通过将经度宽度WLON除以完整粒度大小CSIZE而获得的值的整数部分代替变量WLONSIZE(S226)。也就是说,关于经度宽度WLON,以完整粒度大小CSIZE作为增量的大小代替变量WLONSIZE。
接着,位置关键字生成部123确定变量WLATSIZE的值和变量WLONSIZE的值中的每个值是否等于或者大于1(S227、S228)。也就是说,关于对象矩形区域是否具有如下大小进行确定,该大小包括完整粒度大小CSIZE的单元格。在变量WLATSIZE的值和变量WLONSIZE的值中的任一个值少于1(在S227中为否或者在S228中为否)的情况下,该处理继续到步骤S243,其中位置关键字生成部123将完整粒度大小CSIZE的值除以10.0。接着,位置关键字生成部123将变量i加1(S244)。接着,位置关键字生成部123确定变量i的值是否达到有效位数KMAX(S245)。在变量i的值未达到有效位数KMAX(在S245中为否)的情况下,位置关键字生成部123重复步骤S225和随后步骤。因而每当重复步骤S225和随后步骤时,完整粒度大小CSIZE的值变成1/10。
就其中重复步骤S225和随后步骤的过程而言,在变量WLATSIZE和变量WLONSIZE二者的值变成等于或者大于1(在S227中为并且在S228中也为是)的情况下,关于结果(其中完整粒度大小CSIZE与对象矩形区域的左下顶点的纬度相加),位置关键字生成部123用通过在完整粒度大小CSIZE的增量以下(在完整粒度大小的有效位以下)截断而获得的值代替变量SLAT(S229)。也就是说,将完整粒度大小CSIZE的增量(精确度)的最小值(该值是与对象矩形区域的左下顶点的经度相等或者更大的值)存储于变量SLAT(下文称为“完整左下纬度SLAT”)中。例如在完整粒度大小CSIZE的值为“0.001”并且对象矩形区域的左下顶点的纬度为“139.1219”的情况下,以“139.122”代替完整左下纬度SLAT。
接着关于已经将完整粒度大小CSIZE与对象矩形区域的右上顶点的纬度相加的结果,位置关键字生成部123用在完整粒度大小CSIZE的增量以下(在完整粒度大小的有效位以下)截断而获得的值代替变量ELAT(S230)。也就是说,将完整粒度大小CSIZE的增量(精确度)的最大值(该值是与对象矩形区域的右上顶点的纬度相等或者更小的值)存储于变量ELAT(下文称为“完整右上纬度ELAT”)中。例如在完整粒度大小CSIZE的值为“0.001”并且对象矩形区域的右上顶点的纬度为“139.1231”的情况下,以“139.123”代替完整右上纬度ELAT。
接着关于对象矩形区域的左下顶点的经度,位置关键字生成部123用在完整粒度大小CSIZE的增量以下(在完整粒度大小的有效位以下)截断而获得的值代替变量SLON(S231)。也就是说,将完整粒度大小CSIZE的增量(精确度)的最小值(该值是比对象矩形区域的左下顶点的经度更大的值)存储于变量SLON(下文称为“完整左下经度SLON”)中。例如在完整粒度大小CSIZE的值为“0.001”并且对象矩形区域的左下顶点的经度为“35.5609”的情况下,“35.561”代替完整左下经度SLON。
接着关于对象矩形区域的右上顶点的经度,位置关键字生成部123用在完整粒度大小CSIZE的增量以下(在完整粒度大小的有效位以下)截断而获得的值代替变量ELON(S232)。也就是说,将完整粒度大小CSIZE的增量(精确度)的最大值(该值是与对象矩形区域的右上顶点的经度相等或者更小的值)存储于变量ELON(下文称为“完整右上经度ELON”)中。例如在完整粒度大小CSIZE的值为“0.001”并且对象矩形区域的右上顶点的经度为“35.5621”的情况下,以“35.562”代替完整右上经度ELON。
接着,位置关键字生成部123确定完整右上纬度ELAT-完整左下纬度SLAT的值是否为0或者完整右上经度ELON-完整左下经度SLON的值是否为0(S233)。在这一确定为肯定(在S233中为是)的情况下,该处理继续步骤S243。在这一确定为否定(在S233中为否)的情况下,以(完整左下纬度SLAT,完整左下经度SLON)取为左下顶点而以(完整右上纬度ELAT,完整右上经度ELON)取为右上顶点的矩形区域包括增量为完整粒度大小CSIZE的一个或者多个单元格。因此,在步骤S234和随后步骤中,位置关键字生成部123将这一矩形区域中包括的单元格组合并成增量为完整粒度大小CSIZE的单元格。
在步骤S234中,位置关键字生成部123用完整左下经度SLON代替变量K1(下文称为“对象左下经度K1”)。接着,位置关键字生成部123用完整左下纬度SLAT代替变量K2(下文称为“对象左下纬度K2”)(S235)。接着,位置关键字生成部123基于对象纬度K2和对象经度K1执行位置关键字的生成处理(图4)(S236)。接着,位置关键字生成部123从列表L删除与生成的位置关键字前向一致的位置关键字组(S237)。也就是说,从列表L删除在生成的位置关键字指示的单元格中所包括的单元格组的位置关键字。接着,位置关键字生成部123向列表L添加生成的位置关键字(S238)。
接着,位置关键字生成部123将完整粒度大小CSIZE与对象左下纬度K2相加(S239)。接着,位置关键字生成部123确定对象左下纬度K2是否达到完整右上纬度ELAT(S240)。在对象左下纬度K2未达到完整右上纬度ELAT(在S240中为否)的情况下,位置关键字生成部123重复步骤S236和随后步骤。
在对象左下纬度K2达到完整右上纬度ELAT(在S240中为是)的情况下,位置关键字生成部123将完整粒度大小CSIZE与对象左下经度K1相加(S241)。接着,位置关键字生成部123确定对象左下经度K1是否达到完整右上经度ELON(S242)。在对象左下经度K1未达到完整右上经度ELON(在S242中为否)的情况下,位置关键字生成部123重复步骤S235和随后步骤。
在对象左下经度K1达到完整右上经度ELON(在S242中为是)的情况下,位置关键字生成部123执行上述步骤S243至S245。在改变完整粒度大小CSIZE上至比对象矩形区域的纬度和经度的精确度高一位的同时执行合并成完整粒度大小CSIZE的单元格。
在关于待处理的所有矩形区域执行步骤S201至S246时(在S246中为是),在对象矩形区域中包括的单元格组之中,可以合并成高位的单元格组变成合并到高位单元格组中的状态。
然而例如虽然可以将矩形区域(其中组合了图14中的矩形区域R2和R4)合并成增量为1/1000度的一个矩形区域,但是在步骤S201至S246中未合并这些区域。这是因为在步骤S201至S246中,针对每个指定矩形区域执行处理,因而未执行对跨越矩形区域(换而言之,超过矩形区域)的单元格组的合并。
因此,位置关键字生成部123在图11的步骤S247和随后步骤中执行对跨越指定矩形区域的单元格组的合并处理。
在步骤S247中,位置关键字生成部123获得如下最小矩形区域,该最小矩形区域包括与在列表L中包括的位置关键字对应的所有单元格组。也就是说,获得包括所有指定矩形区域的最小矩形区域。
图15是用于描述包括所有指定矩形区域的最小矩形区域的图。如附图中所示,包括指定矩形区域的最小矩形区域是如下矩形区域,该矩形区域以指定矩形区域的左下顶点的最小纬度和经度取为左下顶点Pa。此外,最小矩形区域是如下矩形区域Ra(下文称为“包含区域Ra”),该矩形区域Ra以指定矩形区域的右上顶点的最大纬度和经度取为右上顶点Pb。在步骤S247中,获得左下顶点Pa的纬度和经度以及右上顶点Pb的纬度和经度。
在图11中的随后步骤S248至图12B中的282中,除了图12B中的虚线包围的步骤之外,关于包含区域Ra执行与图9A中的步骤S206至图10B中的步骤S245相同的处理。因而在已经在图12A中的步骤S267中确定为否(对应于在图10A中的步骤S233中为否)的情况下,已经确定如图16中所示状态。
图16是图示了在包含区域中确定的、增量为完整粒度大小CSIZE的单元格例子的图。如附图中所示,确定在如下矩形区域中包括增量为1/1000度的三个单元格Ca、Cb和Cc,该矩形区域以(完整左下纬度SLAT,完整左下经度SLON)取为左下顶点而以(完整右上纬度ELAT,完整右上经度ELON)取为右上顶点。
因而针对这三个单元格中的每个单元格确定是否可以关于在单元格中包括的单元格组执行合并成单元格。现在将描述图12中的虚线包围的步骤。
在步骤S270中,位置关键字生成部123基于对象纬度K2和对象经度K1执行位置关键字的生成(图4)。就图16中的例子而言,对象纬度K2在第一次执行步骤S270时的值是完整左下纬度SLAT的值,而对象经度K1的值是完整左下经度SLON的值。也就是说,对象纬度K2和对象经度K1是单元格Ca的左下顶点的纬度和经度。
接着,位置关键字生成部123从列表L提取与生成的位置关键字前向一致的位置关键字组(S271)。就本实施例而言,在与一个位置关键字前向一致的另一位置关键字的情况下,这意味着在根据一个位置关键字的单元格中包括根据另一位置关键字的单元格。因而提取在单元格Ca中包括的单元格组的位置关键字组。接着,位置关键字生成部123从在步骤S271中提取的位置关键字组去除与生成的位置关键字完全一致的位置关键字和比生成的位置关键字长四个字符的位置关键字(S272)。接着,位置关键字生成部123确定剩余位置关键字组的数目是否为100(S273)。也就是说,在将精确度比单元格Ca高一位(低一位粒度大小)的单元格组合并到单元格Ca中的情况下,在合并之后必须在单元格Ca中包括比单元格C高一位精确度的10×10=100个单元格。因而关于在单元格Ca内是否有100个单元格组进行确定。
注意在步骤S272中的比生成的位置关键字长四个字符的位置关键字是比与生成的位置关键字对应的单元格高至少两位的位置关键字(换而言之,具有小至少两位的粒度大小的单元格的位置关键字)。去除至少高两位的单元格的原因例如是鉴于如下情况,在该情况下,有精确度高一位的99个单元格并且在剩余一个单元格的区域中有精确度高两位的至少一个单元格。作为试验,在有精确度高至少两位的一个单元格的情况下,进行在待合并的单元格中包括100个单元格的确定。也就是说,为了关于待合并的单元格获得精确度高一位的单元格组的数目,去除比生成的位置关键字长四个字符的位置关键字。此外,根据与生成的位置关键字完全一致的位置关键字的单元格相对于待合并的单元格不是高一位的单元格。因而也去除与生成的位置关键字完全一致的位置关键字。
在剩余位置关键字组的数目为100(在S273中为是)的情况下,位置关键字生成部123从列表L删除与生成的位置关键字前向一致的位置关键字(S274)。接着,位置关键字生成部123向列表L添加生成的位置关键字(S275)。另一方面,在剩余位置关键字组的数目不是100(在S273中为否)的情况下,不执行步骤S274和S275。
根据如上文描述的处理,比如如图17中所示合并图15中所示的单元格组。
图17是图示了跨越指定矩形区域的单元格组的合并结果例子的图。如附图中所示,将图16中的单元格Ca中包括的具有1/10000度的100个单元格组合并成一个单元格Ca。另一方面,在单元格Cc中包括的具有1/10000度的单元格组的数目为99,因而不将单元格组合并成单元格Cc。
以这一方式,根据图9至图12中的处理,将图13中所示矩形区域组划分成比如图17中所示单元格组。
注意在步骤S283中,位置关键字生成部123返回列表L,该列表包括适于作为处理结果的位置关键字组。
接着将描述移动信息搜索处理。图18是用于描述移动信息搜索处理的处理过程的例子的流程图。
在步骤S501中,搜索请求接受单元125接受来自服务部111的移动信息搜索请求。注意例如响应于来自移动终端20或者未图示的固定终端的搜索请求,服务部11向搜索请求接受部125输入搜索请求。
用搜索请求指定如下信息和这一搜索范围的含义,该信息指示移动信息的搜索范围。用与移动设备的大小信息相同的格式指定搜索范围。也就是说,用一组矩形区域指定搜索范围。每个矩形区域的指定方法也与大小信息的情况相同。因而用比如图7中所示数据结构代表搜索范围。
搜索范围的含义是这一搜索范围包括的某物(即指示是否搜寻在搜索范围中包括的某物的信息)或者是包括这一搜索范围的某物(即指示是否搜寻包括搜索范围的某物的信息)。注意后者在关于设施信息或者区域信息进行搜索时有效。例如在执行搜索(比如哪一个是在某一XX区域内的移动设备)的情况下,这一情况对应于后一种搜索。
接下来,搜索条件生成部126生成与在搜索请求中指定的搜索范围对应的一个或者多个位置关键字(S502)。具体而言,在根据在搜索请求中指定的纬度和经度的精确度将搜索范围划分成单元格的情况下生成每个单元格的左下顶点的一组纬度和经度。此外,在搜索范围中包括具有比在搜索请求中指定的纬度和经度精确度高一位的单元格的情况下,用这一高位单元格替换更低位的单元格组。也就是说,执行单元格组的归一化。因而每个位置关键字在转换之后的精确度(即在小数点以下的有效位数)未必是共同的。
生成的位置关键字是用于搜索的关键字。为了避免混淆这一位置关键字与在移动信息存储单元131中注册的适于作为被搜索信息的位置关键字,下文将把生成的位置关键字称为“搜索关键字”。注意如后文将描述的那样,在待生成的一组搜索关键字中包括的搜索关键字根据在搜索请求中指定的搜索范围的含义而不同。
接着,搜索条件生成部126基于在搜索请求中指定的搜索范围的含义确定搜索范围是否为搜寻该搜索范围包括的移动设备或者搜寻其中包括搜索范围的移动设备(S503)。在搜寻该搜索范围包括的移动设备(在S503中为是)的情况下,搜索部127执行搜索范围包括的移动设备的搜索处理(S504)。另一方面,在搜寻其中包括搜索范围的移动设备(在S503中为否)的情况下,搜索部127执行其中该包括搜索范围的移动设备的搜索处理(S505)。接着,搜索部127向服务部11返回结果数据作为搜索结果(S506)。这里提到的结果数据是如下数据,在步骤S504或者S505中的搜索处理中在该数据中存储作为搜索结果的移动信息。随后向移动终端20或者未图示的固定终端等(其为服务部11的搜索请求源)返回搜索结果。然而无需无改变地返回搜索结果。根据服务部11,可以执行搜索结果的处理,或者基于这一搜索结果,可以向搜索结果源返回在低级部12上执行的进一步搜索的结果。
接着将描述步骤S502的细节。图19是用于描述与搜索范围对应的搜索关键字的生成处理的处理过程例子的流程图。
在步骤S511中,搜索条件生成部126基于在搜索请求中指定的搜索范围的含义确定搜索范围是否为搜寻该搜索范围包括的移动设备或者搜寻其中包括搜索范围的移动设备。在搜寻该搜索范围包括的移动设备(在S511中为是)的情况下,位置关键字生成部123执行每个归一化单元格(该归一化单元格组成根据搜索范围的一组矩形区域)的位置关键字的生成处理(S512)。也就是说,关于根据搜索范围的一组矩形区域,执行图9至图12中描述的处理。作为其结果,针对在归一化单元格组(该归一化单元格组组成根据搜索范围的矩形区域)中包括的每个单元格生成位置关键字并且在列表中L中存储该位置关键字。使用这一位置关键字作为用于搜寻该搜索范围包括的移动设备的搜索关键字。
另一方面,在搜寻其中包括搜索范围的移动设备(在S511中为否)的情况下,搜索条件生成部126执行位置关键字(该位置关键字用于搜寻其中包括搜索范围的移动设备)的生成处理(S531)。使用生成的位置关键字作为用于搜寻其中包括搜索范围的移动设备的搜索关键字。
接着,搜索条件生成部126返回其中存储有在在步骤S512或者S513中生成的位置关键字组(搜索关键字组)的列表L(S514)。
接着将描述图19中的步骤S513的细节。图20是用于位置关键字(该位置关键字用于搜寻其中包括搜索范围的移动设备)的生成处理的处理过程例子的流程图。
在步骤S521中,位置关键字生成部123执行每个归一化单元格(该归一化单元格组成根据搜索范围的一组矩形区域)的位置关键字的生成处理。也就是说,关于根据搜索范围的一组矩形区域,执行图9至图12中描述的处理。作为其结果,针对在归一化单元格组(该归一化单元格组组成根据搜索范围的矩形区域)中包括的每个单元格生成位置关键字并且在列表中L中存储该位置关键字。
接着,搜索条件生成部126取列表中包括的位置关键字组的一个位置关键字(下文称为“对象关键字”)作为待处理的对象(S522)。接着,搜索条件生成部126用在对象关键字-2的小数点以下的部分的字符数目代替变量KMAX(S523)。就根据本实施例的位置关键字而言,整数部分由六个字符(三个纬度字符+三个精度字符)组成,而符号部分(“++”)由两个字符组成。因而用通过从对象关键字的字符数目减去8并且进一步从其减去2而获得的值代替变量KMAX。
接着搜索条件生成部126在用于工作的存储区域(工作区域)中记录从对象关键字的头部到8+变量KMAX的字符数目的字符串作为位置关键字(S524)。因而首先向工作区域添加如下位置关键字,已经从该位置关键字去除对象关键字的尾端的相当于两个字符。注意位置关键字(已经从该位置关键字去除尾端的相当于两个字符)是与在去除对象关键字指示的纬度和经度的尾端的一位之后的纬度和经度对应的位置关键字,即与比对象关键字高一位的位对应(向该位舍入)的位置关键字。
接着,搜索条件生成部126从变量KMAX减去2(S525)。重复步骤S524和S525直至变量KMAX的值变成小于0(S526)。作为其结果,关于对象关键字的纬度和经度,针对每位(上至整数部分的位)生成位置关键字并且向工作区域添加位置关键字。作为具体例子,如果假设对象关键字是“++10339515262132”,则向列表L进一步添加以下位置关键字。
++10339515262132++103395152621++1033951526++10339515++103395
在关于列表L中包括的所有位置关键字执行步骤S522至S526时(在S527中为是),搜索条件生成部126向列表L添加工作区域中记录的位置关键字组(S528)。也就是说,取在步骤S522至S526中新生成的位置关键字作为搜索关键字。
以这一方式,在搜寻包括搜索范围的移动设备的情况下,就列表L而言,除了在列表L中原本包括的位置关键字组之外还取其中向高位舍入其每个位置关键字的位置关键字组作为搜索关键字。后文将描述其原因。注意在区分列表L中原本包括的位置关键字与舍入的位置关键字的情况下,将把前者称为“原有搜索关键字”而将把后者称为“舍入搜索关键字”。
接着将描述图18中的步骤S504的细节。图21是用于描述用于搜寻移动设备(搜索范围包括该移动设备)的处理的处理过程例子的流程图。
在步骤S531中,搜索部127取在图18的步骤S502中生成的列表L中包括的搜索关键字组的一个搜索关键字作为待处理的对象。接着,搜索部127从移动信息存储单元131搜寻与搜索关键字前向一致的位置关键字(S532)。注意这里提到的与搜索关键字前向一致的位置关键字是如下位置关键字,这些位置关键字的部分或者全部包括来自前向的这一搜索关键字。在来自前向的所有搜索关键字中包括这一搜索关键字的情况下,这一情况等同于完全一致。
与搜索关键字前向一致的位置关键字等效于与组成移动设备(搜索关键字指示的范围(单元格)包括该移动设备)的单元格的左下顶点对应的位置关键字。将关于与搜索关键字前向一致的位置关键字导致这一搜索关键字指示的范围(单元格)包括根据这一位置关键字的单元格的原因进行描述。
图22是用于描述与搜索关键字的前向一致的含义的图。在附图中,图示了如下例子,在该例子中,与搜索关键字对应的纬度和经度是(35.561,139.122)而存储于移动信息存储单元131中的与移动设备的位置关键字对应的纬度和经度是(35.5612,139.1223)。在这一情况下,搜索关键字指示的单元格等同于附图中的粗线所包围的单元格c1。另一方面,移动设备的位置关键字指示的单元格等效于附图中的黑矩形指示的单元格c2。如从图可见,单元格c1包括单元格c2。
此外,当将(35.561,139.122)转换成位置关键字(即共享关键字)时,其变成“++103395152621”。当将(35.5612,139.1223)转换成位置关键字时,其变成“++10339515262132”。这一位置关键字与这一搜索关键字前向一致。
以这一方式,在位置关键字与搜索关键字前向一致的情况下,在这一搜索关键字指示的单元格中包括这一位置关键字指示的单元格或者这一位置关键字指示的单元格与这一搜索关键字指示的单元格一致。根据位置关键字的这样的性质,就本实施例而言,可以高速搜索在某一范围中包括的移动设备。
换而言之,就本实施例而言,在取纬度和经度作为KVS中的关键字的情况下,在搜寻某一范围中包括的关键字时,为了实现根据前向一致的这样的高速搜索,纬度和经度被转换成位置关键字的格式并且取为KSV中的关键字。作为试验,在取以纬度和经度为序简单连接的字符串作为位置关键字的情况下,如上文描述的根据前向一致的高速搜索是困难的。就以纬度和经度为序简单连接的字符串而言,就图22中的例子而言,搜索关键字变成“+35561+139122”。移动设备的位置关键字也变成“+355612+1391223”。这一位置关键字未与这一搜索关键字前向一致。根据KVS的性质,也难以根据规则表达式(比如“+35561*+139122*”)执行关键字搜索。注意这里提到的“*”指示通配符。
注意如上文描述的那样,单元格的大小依赖于这一单元格的左下顶点指示的纬度和经度的精确度。关于单元格c1而言,左下顶点的纬度和经度以1/1000度为增量。因而单元格c1等同于如下矩形区域,该矩形区域的一边为1/1000度。另一方面,关于单元格c2,左下顶点的纬度和经度以1/10000度为增量。因而单元格c2等效于如下矩形区域,该矩形区域的一边为1/10000度。作为试验,在指示如下单元格、该单元格以与单元格c1相同的位置取为左下顶点而以一边为/10000度的情况下,必须指定这一单元格的左下顶点为(35.5610,139.1220)。另一方面,在指定具有与单元格c1相同的大小的范围(该范围以左下顶点取为(35.5611,139.1221))的情况下,用在具有与单元格c1相同的大小的矩形区域中包括的100个单元格(以这一维度和经度取为左下顶点而以一边为1/10000度)指定这一范围。
接着,搜索部127取搜索的位置关键字组之一作为待处理的对象(下文称为“对象关键字”)(S533)。接着,搜索部127从移动信息存储单元131获得与对象关键字对应的值(S534)。接着,搜索部127从获得的值提取移动设备ID的列表(S535)。也就是说,从这一个值中包括的每行获得id的值。接着,搜索部127从这一移动设备ID组列表取一个移动设备ID作为待处理的对象(S536)。接着,搜索部127获得与待处理的移动设备ID相关的代表性的位置(S537)。接着,搜索部127获得与取为待处理的对象的移动设备ID相关的大小信息(S538)。接着,搜索部127获得与取为待处理的对象的移动设备ID相关的属性信息(S539)。接着,搜索部127向结果数据添加在步骤S537至S539中获得的数据(S540)。结果数据是用于存储搜索结果的数据。关于在步骤S535中提取的所有移动设备ID执行步骤S536至S540(S541)。也关于在步骤S532中搜索的所有位置关键字执行步骤S533至S541(S542)。
在关于所有搜索关键字执行步骤S531至S542(在步骤S543中为是)时,结束图21中的处理。因而在图18中的步骤S506中返回在这一瞬间点的结果数据。
接着将描述图18中的步骤S505的细节。图23A和23B是用于描述搜寻移动设备(在该移动设备中包括搜索范围)的处理的处理过程例子的流程图。
在步骤S551中,搜索部127取在图18中的步骤S502中生成的列表L中包括的搜索关键字组的一个搜索关键字作为待处理的对象。接着,搜索部127从移动信息存储单元131搜寻与搜索关键字完全一致的位置关键字(S552)。
根据图20中描述的处理,除了原本的搜索关键字之外,在列表L中还包括舍入搜索关键字。因而例如舍入搜索关键字是步骤S552中的搜索关键字的情况下,与这一搜索关键字完全一致的位置关键字是与单元格(该单元格包括与原本的搜索关键字对应的单元格)对应的位置关键字。在原本的搜索关键字是步骤S552中的搜索关键字的情况下,与这一搜索关键字完全一致的位置关键字是与单元格(该单元格与对应于原本的搜索关键字的单元格一致)对应的位置关键字。
注意与一个搜索关键字对应的单元格不限于如下区域,该区域包括作为搜索范围而指定的所有矩形区域组。与一个搜索关键字对应的单元格是包括至少部分搜索范围的单元格。因而在步骤S552中,搜索与包括至少部分搜索范围的单元格对应的位置关键字。后续步骤S553至S559与图21中的步骤S533至S539相同。
接着,搜索部127在管理表中注册适于作为待处理的对象的移动设备ID(S560)。
图24是图示了管理表的配置例子的图。在附图中,管理表中的一个记录可以存储移动设备ID、计数器、属性信息等。计数器的初始值为“0”。注意管理表是待暂时生成的存储区域并且例如可以通过使用存储器设备103或者辅助存储设备102等来实现。
在步骤S560中,在不存在移动设备ID与适于作为待处理对象的移动设备ID相同的记录的情况下,生成新记录,并且在这一记录中记录待处理的移动设备ID。此外,在这一记录中记录在步骤S557至S559中获得的信息作为属性信息等。
另一方面,在存在移动设备ID与适于作为待处理对象的移动设备ID相同的记录的情况下,不进行记录的生成。也就是说,关于相同移动设备ID将记录在管理表中的记录数目最大为一。
接着,搜索部127从列表L提取与搜索关键字前向一致的位置关键字。接着,搜索部127向管理表中的记录(该记录与适于作为待处理的对象的移动设备ID对应)的计数器添加提取的位置关键字之中的具有最大字符数目的位置关键字(最长位置关键字)的数目。提取的位置关键字之外的具有最大字符数目的位置关键字是关于这一搜索关键字的原本的搜索关键字。因而向计数器添加关于这一搜索关键字的原本的搜索关键字的数目。
接着将描述步骤S560至S562中的处理的含义。就搜寻其中包括搜索范围的移动设备而言,必须搜索包括所有单元格(这些单元格组成搜索范围)的移动设备。与组成搜索范围的单元格对应的搜索关键字是原本的搜索关键字。因而在有移动设备(该移动设备以与所有原本的搜索关键字对应的单元格取为其范围的部分或者全部)的情况下,这是既定的移动设备。然而用原本的搜索关键字难以高速搜寻包括搜索范围的移动设备。
因此就本实施例而言,采用舍入搜索关键字。舍入搜索关键字的存在意义在于舍入搜索关键字包括与原本的搜索关键字对应的单元格并且高速搜索移动设备的比这一单元格更大的单元格。也就是说,已经与舍入搜索关键字完全一致的某一位置关键字意味着与这一位置关键字对应的单元格(包括与原本的搜索关键字(该原本的搜索关键字是这一舍入搜索关键字的起源)对应的单元格)。因而可以认为根据舍入搜索关键字的搜索结果是原本的搜索关键字的搜索结果。
因此,在已经针对每个移动设备记录了基于舍入搜索关键字的搜索命中的次数的情况下,可以认为其次数的累计值与原本的搜索关键字的总数一致的移动设备是包括组成搜索范围的所有单元格的移动设备。用于记录这一搜索命中的次数的项目是管理表的计数器。
然而一个舍入搜索关键字可以如图25中所示是多个原本的搜索关键字共有的。
图25是图示了如下例子的图,在该例子中,一个舍入搜索关键字是多个原本的搜索关键字共有的。
在这一附图中,图示有用附图中的黑方块指示的单元格c21、c22和c23(这些单元格适于作为增量为1/10000度的单元格)和包括这些单元格的用附图中的粗线指示的单元格c11(该单元格适于作为增量为1/1000度的单元格)。如果认为单元格c21、c22和c23中的每个单元的位置关键字是原本的搜索关键字,则单元格c11的位置关键字是与单元格c21、c22和c23共有的舍入搜索关键字之一。
因而已经命中根据单元格c11的舍入搜索关键字的搜索意味着已经命中基于三个原本的搜索关键字的搜索。
在步骤S562中,鉴于这样的情况,向计数器添加提取的位置关键字之中的具有最大字符数目的位置关键字的数目(即最长的位置关键字的数目)而不是简单地向计数器加一。注意具有最大字符数目的位置关键字意味着原本的搜索关键字。具体而言,就单元格c21、c22和c23而言,在图25中生成增量为1/1000度、1/100度、1/10度或者1度的舍入搜索关键字。作为试验,假设适于作为待处理的对象的搜索关键字是具有1/100度的舍入搜索关键字。在这一情况下,在从列表L提取的位置关键字组中不仅包括根据单元c21、c22或者c23的原有搜索关键字而且包括各自为1/100度和1/1000度的舍入搜索关键字作为与这一舍入搜索关键字前向一致的位置关键字。在这样的位置关键字组之中,根据单元格c21、c22或者c23的原有搜索关键字的字符数目必须最长。因而在步骤S562中,在提取的位置关键字之中,向计数器添加具有最大字符数目的位置关键字的数目(即最长位置关键字的数目),这意味着仅向计数器添加原本的搜索关键字的数目。
后续步骤S563至S565与图21中的步骤S541至S543相同。也就是说,关于在步骤S555中提取的所有移动设备ID执行步骤S556至S562(S563)。也关于在步骤S552中搜索的所有位置关键字执行步骤S553至S563(S564)。另外关于在列表L中包括的所有搜索关键字执行步骤S551至S564(S565)。
接着,搜索部127确定管理表中的记录数目是否等于或者大于1(S566)。在管理表中的记录数目等于或者大于1(在步骤S566中为是)的情况下,搜索部127取一个记录作为待处理的对象(S567)。接着,搜索部127确定这一记录计数器的值是否与原本的搜索关键字的数目相同(S568)。如关于步骤S560至S562描述的那样,这一计数器的值原本的搜索关键字的数目相同,这意味着根据这一记录中记录的移动设备ID的移动设备包括搜索范围(即意味着在这一移动设备中包括这一搜索范围)。因而在这一计数器的值与原本的搜索关键字的数目相同(在S568中为是)的情况下,搜索部127向结构数据添加这一记录中的属性信息等(S569)。在关于在管理表中记录的所有记录执行步骤S567至S569(在S570中为是)时,结束图23A和23B中的处理。
注意虽然上文已经描述用于移动信息的搜索处理,但是在搜索请求接受部125也已经接受针对设施信息或者区域信息的搜索请求的情况下,除了搜索目的地变成设施信息存储单元132或者区域信息存储单元133之外执行基本上相同的处理过程。也就是说,将一个人或者一个车辆携带的移动终端20表示为本系统中的具有最高精确度的矩形区域。因而相同概念可以应用于甚至搜寻具有比移动设备更宽的面积的商店或者区域。
将参照具体例子描述用于移动信息的搜索处理。图26A至图26D是图示了用于移动信息的搜索处理的第一具体例子的图。在附图中,图示了如下例子,就搜索请求Req1而言,已经指定(139.1219,35.5609)作为搜索范围A1的左下顶点,以及已经指定(139.1231,35.5621)作为右上顶点,并且已经请求搜寻这一搜索范围包括的移动设备。
在这一情况下,有效位数KMAX变成“4”。也就是说,搜索范围A1的精确度为0.0001度。因而如附图中的(1)所示,将搜索范围A1划分成144个单元格组(这些单元格组的一边取为0.0001度)。然而将单元格(该单元格取(35.561,139.122)为左下顶点而取(35.562,139.123)为右上顶点)中包括的单元格组合并成附图中的(2)所示单元格C1a。也就是说,向列表L添加与单元格C1a的左下顶点(35.561,139.122)对应的一个位置关键字和分别与44个单元格组C1b的左下顶点对应的44个位置关键字作为搜索关键字。
作为其结果,从移动信息存储单元131搜索与在列表L中包括的任何搜索关键字前向一致的位置关键字。例如如附图中的(3)中所示,在三个移动设备A、B和C的移动信息存储于移动信息存储单元131中的情况下,定位于搜索范围A1中的移动设备A的位置关键字和移动设备B的位置关键字与在列表L中包括的任何搜索关键字前向一致。另一方面,定位于搜索范围A1以外的移动设备C的位置关键字不与在列表L中包括的任何搜索关键字前向一致。因而在结果数据Res1中包括移动设备A的位置关键字和移动设备B的位置关键字。
图27A至27D是图示了用于移动信息的搜索处理的第二具体例子的图。在附图中,图示了如下例子,在该例子中,就搜索请求Req2而言,已经指定(139.122,35.561)作为搜索范围A2的左下顶点的纬度和经度,以及已经指定(139.123,35.562)作为右上顶点,并且已经请求搜寻这一搜索范围包括的移动设备。
在这一情况下,有效位数KMAX变成“3”。也就是说,搜索范围A2的精确度为0.001度。因而如附图中的(2)中所示将搜索范围A2视为一个单元格C2(该单元格的一边取为0.001度)。也就是说,向列表L添加与单元格C2的左下顶点(139.122,35.561)对应的一个位置关键字作为搜索关键字。
作为其结果,从移动信息存储单元131搜索与在列表L中包括的任何搜索关键字前向一致的位置关键字。例如,如附图中的(3)中所示,在三个移动设备A、B和C的移动信息存储于移动信息存储单元131中的情况下,定位于搜索范围A2中的移动设备A的位置关键字和移动设备B的位置关键字与在列表L中包括的搜索关键字前向一致。另一方面,定位于搜索范围A2以外的移动设备C的位置关键字不与在列表L中包括的搜索关键字前向一致。因而在结果数据Res2中包括移动设备A的位置关键字和移动设备B的位置关键字。
图28A至28D是图示了用于移动信息的搜索处理的第三具体例子的图。在附图中,图示了如下例子,在该例子中,就搜索请求Req3而言,已经指定(139.1221,35.5611)作为搜索范围A3的左下顶点的纬度和经度,以及已经指定(139.123,35.562)作为右上顶点,并且已经请求搜寻这一搜索范围包括的移动设备。
在这一情况下,有效位数KMAX变成“4”。也就是说,搜索范围A3的精确度为0.0001度。因而如附图中的(2)中所示将搜索范围A3划分成81个单元格组C3(这些单元格组的一边取为0.0001度)。也就是说,向列表L添加与在单元格组C3中包括的单元格对应的81个位置关键字作为搜索关键字。
作为其结果,从移动信息存储单元131搜索与在列表L中包括的任何搜索关键字前向一致的位置关键字。例如如附图中的(3)中所示,在三个移动设备A、B和C的移动信息存储于移动信息存储单元131中的情况下,定位于搜索范围A3中的移动设备A的位置关键字和移动设备B的位置关键字与在列表L中包括的任何搜索关键字前向一致。另一方面,定位于搜索范围A3以外的移动设备C的位置关键字不与在列表L中包括的任何搜索关键字前向一致。因而在结果数据Res3中包括移动设备A的位置关键字和移动设备B的位置关键字。
图29A至29D是图示了用于移动信息的搜索处理的第四具体例子的图。在附图中,图示了如下例子,在该例子中,就搜索请求Req4而言,已经指定(139.1221,35.5611)作为搜索范围A4的左下顶点的纬度和经度,以及已经指定(139.1225,35.5614)作为右上顶点,并且已经请求搜寻这一搜索范围包括的移动设备。
在这一情况下,有效位数KMAX变成“4”。也就是说,搜索范围A4的精确度为0.0001度。因而如附图中的(2)中所示将搜索范围A4划分成12个单元格组C4(这些单元格组的一边取为0.0001度)。也就是说,向列表L添加与在单元格组C4中包括的与单元格对应的12个位置关键字作为搜索关键字。
作为其结果,从移动信息存储单元131搜索与在列表L中包括的任何搜索关键字前向一致的位置关键字。例如如附图中的(3)中所示,在三个移动设备A、B和C的移动信息存储于移动信息存储单元131中的情况下,定位于搜索范围A4中的移动设备A的位置关键字与在列表L中包括的任何搜索关键字前向一致。另一方面,定位于搜索范围A3以外的移动设备B的位置关键字和移动设备C的位置关键字不与在列表L中包括的任何搜索关键字前向一致。因而在结果数据Res4中包括移动设备A的位置关键字。
图30A至30D是图示了用于移动信息的搜索处理的第五具体例子的图。在附图中,图示了如下例子,在该例子中,就搜索请求Req5而言,已经指定(139.1219,35.5609)作为搜索范围A5的左下顶点的纬度和经度,以及已经指定(139.1225,35.5614)作为右上顶点,并且已经请求搜寻这一搜索范围包括的移动设备。
在这一情况下,有效位数KMAX变成“4”。也就是说,搜索范围A5的精确度为0.0001度。因而如附图中的(2)中所示将搜索范围A5划分成30个单元格组C5(这些单元格组的一边取为0.0001度)。也就是说,向列表L添加与在单元格组C5中包括的单元格对应的30个位置关键字作为搜索关键字。
作为其结果,从移动信息存储单元131搜索与在列表L中包括的任何搜索关键字前向一致的位置关键字。例如如附图中的(3)中所示,在三个移动设备A、B和C的移动信息存储于移动信息存储单元131中的情况下,定位于搜索范围A5中的移动设备A的位置关键字与在列表L中包括的任何搜索关键字前向一致。另一方面,定位于搜索范围A5以外的移动设备B的位置关键字和移动设备C的位置关键字不与在列表L中包括的任何搜索关键字前向一致。因而在结果数据Res6中包括移动设备A的位置关键字。
图31A至31D是图示了用于移动信息的搜索处理的第六具体例子的图。在附图中,图示了如下例子,在该例子中,就搜索请求Req6而言,已经指定(139.1219,35.5609)作为搜索范围A6的左下顶点的纬度和经度,以及已经指定(139.1225,35.5614)作为右上顶点,并且已经请求搜寻这一搜索范围包括的移动设备。
在这一情况下,有效位数KMAX变成“4”。也就是说,搜索范围A6的精确度为0.0001度。因而如附图中的(2)中所示将搜索范围A6划分成30个单元格组C6(这些单元格组的一边取为0.0001度)。也就是说,向列表L添加与在单元格组C6中包括的单元格对应的30个位置关键字作为搜索关键字。
作为其结果,从移动信息存储单元131搜索与在列表L中包括的任何搜索关键字前向一致的位置关键字。例如如附图中的(3)中所示,假设两个移动设备A和B的移动信息存储于移动信息存储单元131中。移动设备A的范围包括五个单元格。因而关于移动设备A,五个位置关键字存储于移动信息存储单元131中。另一方面,移动设备B的范围包括三个单元格。因而关于移动设备B,三个位置关键字存储于移动信息存储单元131中。
在搜索范围A6中包括一个单元格Aa(该单元格组成移动设备A的范围)。因而单元格Aa的位置关键字与在列表L中包括的任何搜索关键字前向一致。另一方面,另一单元格(该单元格组成定位于搜索范围A6以外的移动设备A)的位置关键字和组成移动设备B的所有单元格的位置关键字未不与在列表L中包括的任何搜索关键字前向一致。因而在结果数据Res6中包括单元格Aa的位置关键字。单元格Aa是组成移动设备A的单元格,因而取移动设备A作为在搜索范围中包括的移动设备。
也就是说,就本实施例而言,在搜索结果中不仅包括完全包括在搜索范围中的移动设备而且包括其部分与搜索范围重叠的移动设备。作为试验,当尝试仅取完全包括在搜索范围中的移动设备作为搜索结果时,在组成这一移动设备的所有单元格的位置关键字与搜索关键字前向一致的情况下,搜索部127必须取所有单元格的位置关键字作为搜索结果。
图32A-32D是图示了用于移动信息的搜索处理的第七具体例子的图。在附图中,图示了如下例子,在该例子中,就搜索请求Req7a而言,已经指定(139.1223,35.5612)作为搜索范围A7的左下顶点的纬度和经度,以及已经指定(139.1224,35.5613)作为右上顶点,并且已经请求搜寻这一搜索范围包括的移动设备。注意如在搜索请求Req7b中指示的那样,在也已经指定(139.1223,35.5612)作为增量为1/10000度的一组纬度和经度的情况下,因而已经指定与搜索范围A7相同的矩形区域。
在这一情况下,有效位数KMAX变成“4”。也就是说,搜索范围A6的精确度为0.0001度。因而关于搜索范围A7,如附图中的(2)所示,生成一个单元格C7(该单元格的一边取为0.0001度)。这是搜寻包括搜索范围A7的移动设备,因而向列表L添加与单元格C7对应的原本的搜索关键字而且也添加舍入搜索关键字(其中一次一位地删除在原本的搜索关键字的小数点以下的部分)。注意一次一位地删除在搜索关键字的小数点以下的部分,这造成将适于作为原本的搜索关键字的字符串被删除两个字符。在附图中,图示了比单元格C7高一位的单元格C8和比单元格高两位的单元格C9。虽然为了方便而省略比那些单元格更高位的单元格,但是向列表L添加与这样的每个高位单元格对应的位置关键字作为舍入搜索关键字。
作为其结果,从移动信息存储单元131搜索与在列表L中包括的任何搜索关键字完全一致的位置关键字。例如,如附图中的(3)中所示,在两个移动设备M和N的移动信息都存储于移动信息存储单元131中的情况下,包括搜索范围A7的移动设备M的位置关键字与在列表L中包括的具有1/1000度的舍入搜索关键字完全一致。在搜索范围A7中的单元格数目为“1”之时,关于移动设备M的位置关键字,与在列表L中包括的搜索关键字完全一致的次数为一次。另一方面,未包括搜索范围A7的移动设备N的位置关键字不与在列表L中包括的任何搜索关键字完全一致。因而在结果数据Res7中包括移动设备M的位置关键字。
如上文描述的那样,根据本实施例,以位置关键字格式在KVS中注册纬度和经度作为关键字。因而针对与这一位置关键字对应的对应性信息,可以执行高速搜索。对应性信息是用于移动信息、设施信息、区域信息等的一般名称。具体而言,例如在搜寻在搜索范围中包括的移动信息的情况下,可以通过搜寻与对应于指定搜索范围的任何位置关键字组前向一致的位置关键字组来搜索既定的移动信息。
注意就本实施例而言,对于位置关键字的格式,虽然指示如下例子,在该例子中,以纬度和经度的顺序交替排列纬度和经度的每位,但是纬度和经度的序列可以反转。
此外,未必必须交替排列纬度经度的所有位。也就是说,并非必须交替排列比在搜索时的精确度(搜索关键字的精确度)更高的位。例如就图22中的例子而言,搜索关键字的精确度是在小数点以下的第三位。因而可以以经度字符串和纬度字符串的顺序排列比在小数点以下的第三位更高的位。具体而言,根据图22中的例子,搜索关键字在这一情况下变成“+3556+1391221”。此外,移动设备的位置关键字变成“+3556+139122132”。就这些位置关键字中的任一位置关键字而言,关于在小数点以下的第三位以下,交替排列纬度字符串和经度字符串的字符。在这一情况下,这一位置关键字与这一搜索关键字前向一致。
因此,根据本实施例的位置关键字是字符串,其中关于所有纬度和经度或者以从最低有效位计数的一些高位起的顺序,一次一位地交替排列相同位。这里提到的从最低有效位起的一些位就紧接前例而言意味着在小数点下的第三位以下的位。
也就本实施例而言,已经取纬度范围为+90度(北纬)至-90度(南纬),并且已经取经度范围为+180度(东经)至-180度(西经)。然而可以取纬度范围为0度至180度,并且可以取纬度范围为0度至360度。在这一情况下,无需在位置关键字的头部两个字符中包括指示符号(+或者-)的字符。
注意就关于矩形区域组(该矩形区域组组成搜索范围)而生成的单元格组而言,执行合并成高位单元格的原因是:无论在移动信息存储单元131中注册的位置关键字的精确度如何,都使用根据搜索关键字一致的搜索来一致地实现搜索该搜索范围包括的移动设备。例如假设已经在移动信息存储单元131中注册移动设备(该移动设备具有图26B中的(2)中所示单元格C1a的范围)的移动信息。在这一情况下,关于单元格C1a的位置关键字以/1/1000度为增量。
另一方面,如果假设已经以1/10000度为增量指定组成位置范围A1的矩形区域,则首先如附图中的(1)所示将这一矩形区域划分成增量为1/10000度的单元格组。即使在原样搜寻与对应于每个单元格组的位置关键字(搜索关键字)前向一致的位置关键字的情况下,仍然不搜索与单元格C1a对应的位置关键字。这是因为搜索关键字比待搜索的位置关键字更长。
为了排除这样的情形,尽可能多地将组成矩形区域组(该矩形区域组组成搜索范围)的单元格组合并成高位单元格。
另一方面,在注册移动信息时关于将针对矩形区域组(该矩形区域组指示移动设备的大小信息(移动设备的范围))而生成的单元格组执行合并成高位的原因是:为了在搜索包括搜索范围的移动设备时通过与搜索关键字的完全一致来一致地实现对包括搜索范围的移动设备的至少部分的搜索。
例如,假设已经指定用图26A中的A1指示的矩形区域作为指示移动设备的大小信息(范围)的矩形区域,并且也已经请求注册。在这一情况下,虽然用A1指示的矩形范围是位置范围A1,但是现在假设其为移动设备的范围A1。在这一情况下,如果假设已经以1/10000度为增量指定这一矩形区域,则首先如(1)中所示将这一矩形区域划分成增量为1/10000度的单元格组。如果假设尚未合并这些单元格组并且已经注册这一移动信息,则这一移动信息与精确度为1/10000度的144个位置关键字相关。
假设在这样的情况下,就针对包括搜索范围的移动设备的搜索请求而言,已经指定与图26B中的(2)中的单元格C1a的左下顶点相同的纬度和经度作为这一搜索范围的左下顶点。也就是说,假设已经指定与单元格C1a相同的范围作为搜索范围。这一纬度和经度以1/1000度为增量。因而以各自为1/1000度、1/100度、1/10度和1度的增量生成根据这一搜索范围的搜索关键字。在尝试搜索与这些搜索关键字中的任何搜索关键字完全一致的位置关键字的情况下,在与上文描述的精确度为1/10000的144个位置关键字之中无与这些搜索关键字完全一致的位置关键字。也就是说,因而尽管包括单元格C1a,但是在包括单元格C1a的搜索结果中不包括根据范围A1的移动设备。
另一方面,在如图26B中的(2)所示将范围A1中包括的一些单元格组合并成以1/1000度为增量的单元格C1a的情况下,与这一单元格C1a对应的位置关键字与在上述搜索关键字之中的具有1/1000度的搜索关键字完全一致。因而假设移动设备包括单元格C1a来搜索根据范围A1的移动设备。
虽然至此已经具体描述本公开内容的实施例,但是本公开内容不限于这样的具体实施例,并且可以在权利要求中阐述的本公开内容的范围内进行各种改变和修改。
这里记载的所有例子和条件语言是出于教导的目的以帮助阅读者理解本发明以及本发明人为了发展本领域而贡献的概念并且将理解为不限于这样的具体记载的例子和条件,这样的例子在说明书中的组织也未涉及表明本发明的优劣性。虽然已经具体描述本发明的实施例,但是应当理解可以对之进行各种改变、替换和变更而未脱离本发明的精神实质和范围。

Claims (9)

1.一种将由计算机执行的信息管理方法,所述信息管理方法包括:
接受注册请求,所述注册请求包括其中包含有纬度和经度的信息以及与位置信息对应的对应性信息;
通过交替排列所述纬度的一个字符和所述经度的另一字符来生成一个字符串,所述一个字符和所述另一字符中的每个字符关于所述纬度和所述经度中每一个的所有位是在相同位或者关于从所述纬度和所述经度中每一个的最低有效位起的一些位是在相同位;
当已经接收到所述注册请求时,根据用于指定范围的所述纬度和经度的精确度将所述范围划分成多个增量区域,所述注册请求包括指示以作为所述位置信息的纬度和经度指定的所述范围的信息;并且
生成一组在所述多个增量区域之中的每个增量区域的纬度最小值和在所述多个增量区域之中的每个增量区域的经度最小值,
其中所述生成字符串关于所述组中包括的所述纬度最小值和所述经度最小值中的每一个生成所述一个字符串,并且
以与作为关键字的所述字符串相关的方式在存储单元中存储所述对应性信息,其中所述存储是以与针对所述纬度最小值和所述经度最小值中的每一个而生成的所述字符串相关的方式,在所述存储单元中存储所述对应性信息,以及
响应于搜索请求,执行对存储的关键字的搜索,所述存储的关键字能够针对所述对应性信息进行搜索。
2.根据权利要求1所述的信息管理方法,其中所述生成组包括:
合并增量区域组作为其他增量区域,所述增量区域组组成所述范围中包括的所述多个增量区域之中以比所述精确度高的位取为增量的另一增量区域;并且
生成一组在所述增量区域组中不包括的增量区域的纬度最小值和经度最小值以及在所述多个增量区域之中的所述其他增量区域的纬度最小值和经度最小值。
3.一种将由计算机执行的信息管理方法,所述信息管理方法包括:
接受搜索请求,在所述搜索请求中指定纬度和经度;
通过交替排列所述纬度的一个字符和所述经度的另一字符来生成一个字符串,所述一个字符和所述另一字符中的每个字符关于所述纬度和所述经度中的每一个的所有位是在相同位或者关于从所述纬度和所述经度中每一个的最低有效位起的一些位是在相同位;
当已经接收到所述搜索请求时,根据用于指定范围的所述纬度和经度的精确度将所述范围划分成多个增量区域,所述搜索请求包括指示以作为位置信息的纬度和经度指定的所述范围的信息;并且
生成一组在所述多个增量区域之中的每个增量区域的纬度最小值和在所述多个增量区域之中的每个增量区域的经度最小值,
其中所述生成字符串是关于所述组中包括的所述纬度最小值和所述经度最小值中的每一个生成多个所述一个字符串,以及
从以与作为关键字的所述字符串相关的方式存储信息的存储单元搜寻与所述字符串前向一致的关键字,
其中所述搜索是搜索与关于每个所述纬度最小值和每个所述经度最小值生成的每个所述一个字符串前向一致的关键字。
4.根据权利要求3所述的信息管理方法,其中所述生成组包括:
合并增量区域组作为其他增量区域,所述增量区域组组成所述范围中包括的所述多个增量区域之中的以比所述精确度高的位取为增量的另一增量区域;并且
生成一组在所述增量区域组中不包括的增量区域的纬度最小值和经度最小值以及在所述多个增量区域之中的所述其他增量区域的纬度最小值和经度最小值。
5.一种将由计算机执行的信息管理方法,所述信息管理方法包括:
接受搜索请求,在所述搜索请求中指定纬度和经度;
通过交替排列所述纬度的一个字符和所述经度的另一字符来生成一个字符串,所述一个字符和所述另一字符中的每个字符关于所述纬度和所述经度中每一个的所有位是在相同位或者关于就所述纬度和所述经度中每一个的最低有效位而言的某一高位是在相同位;
当已经接收到所述搜索请求时,根据用于指定范围的所述纬度和经度的精确度将所述范围划分成多个增量区域,所述搜索请求包括指示以作为位置信息的纬度和经度指定的所述范围的信息;并且
生成一组在所述多个增量区域之中的每个增量区域的纬度最小值和在所述多个增量区域之中的每个增量区域的经度最小值,
其中所述生成字符串是关于所述组中包括的所述纬度最小值和所述经度最小值中的每一个生成多个所述一个字符串,以及
从以与作为关键字的所述字符串相关的方式存储信息的存储单元搜寻与所述字符串或者其它字符串中的任何字符串完全一致的关键字。
6.一种信息管理装置,包括:
执行过程的处理器,所述过程包括:
接受注册请求,所述注册请求包括其中包含有纬度和经度的信息以及与位置信息对应的对应性信息;
通过交替排列所述纬度的一个字符和所述经度的另一字符来生成一个字符串,所述一个字符和所述另一字符中的每个字符关于所述纬度和所述经度中每一个的所有位是在相同位或者关于从所述纬度和所述经度中每一个的最低有效位起的一些位是在相同位;
当已经接收到所述注册请求时,根据用于指定范围的所述纬度和经度的精确度将所述范围划分成多个增量区域,所述注册请求包括指示以作为所述位置信息的纬度和经度指定的所述范围的信息;
生成一组在所述多个增量区域之中的每个增量区域的纬度最小值和在所述多个增量区域之中的每个增量区域的经度最小值,
其中所述生成字符串关于所述组中包括的所述纬度最小值和所述经度最小值中的每一个生成所述一个字符串,
以与作为关键字的所述字符串相关的方式在存储单元中存储所述对应性信息,其中所述存储是以与针对所述纬度最小值和所述经度最小值中的每一个而生成的所述字符串相关的方式,在所述存储单元中存储所述对应性信息,以及
响应于搜索请求,执行对存储的关键字的搜索,所述存储的关键字能够针对所述对应性信息进行搜索。
7.根据权利要求6所述的信息管理装置,其中所述生成组包括:
合并增量区域组作为其他增量区域,所述增量区域组组成所述范围中包括的所述多个增量区域之中以比所述精确度高的位取为增量的另一增量区域;并且
生成一组在所述增量区域组中不包括的增量区域的纬度最小值和经度最小值以及在所述多个增量区域之中的所述其他增量区域的纬度最小值和经度最小值。
8.一种信息管理装置,包括:
执行过程的处理器,所述过程包括:
接受搜索请求,在所述搜索请求中指定纬度和经度;
通过交替排列所述纬度的一个字符和所述经度的另一字符来生成一个字符串,所述一个字符和所述另一字符中的每个字符关于所述纬度和所述经度中的每一个的所有位是在相同位或者关于从所述纬度和所述经度中每一个的最低有效位起的一些位是在相同位;
当已经接收到所述搜索请求时,根据用于指定范围的所述纬度和经度的精确度将所述范围划分成多个增量区域,所述搜索请求包括指示以作为位置信息的纬度和经度指定的所述范围的信息;并且
生成一组在所述多个增量区域之中的每个增量区域的纬度最小值和在所述多个增量区域之中的每个增量区域的经度最小值,
其中所述生成字符串是关于所述组中包括的所述纬度最小值和所述经度最小值中的每一个生成多个所述一个字符串,以及
从以与关键字相关的方式存储信息的存储单元搜寻与所述字符串前向一致的关键字,
其中所述搜索是搜索与关于每个所述纬度最小值和每个所述经度最小值生成的每个所述一个字符串前向一致的关键字。
9.根据权利要求8所述的信息管理装置,其中所述生成组包括:
合并增量区域组作为其他增量区域,所述增量区域组组成所述范围中包括的所述多个增量区域之中的以比所述精确度高的位取为增量的另一增量区域;并且
生成一组在所述增量区域组中不包括的增量区域的纬度最小值和经度最小值以及在所述多个增量区域之中的所述其他增量区域的纬度最小值和经度最小值。
CN201210343176.8A 2011-09-15 2012-09-14 信息管理方法和信息管理装置 Expired - Fee Related CN102999546B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-202442 2011-09-15
JP2011202442A JP5782948B2 (ja) 2011-09-15 2011-09-15 情報管理方法及び情報管理装置

Publications (2)

Publication Number Publication Date
CN102999546A CN102999546A (zh) 2013-03-27
CN102999546B true CN102999546B (zh) 2016-08-03

Family

ID=47076038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210343176.8A Expired - Fee Related CN102999546B (zh) 2011-09-15 2012-09-14 信息管理方法和信息管理装置

Country Status (6)

Country Link
US (1) US9223801B2 (zh)
EP (2) EP2570941B1 (zh)
JP (1) JP5782948B2 (zh)
CN (1) CN102999546B (zh)
CA (1) CA2789739C (zh)
TW (1) TWI454166B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5915335B2 (ja) * 2012-03-30 2016-05-11 富士通株式会社 情報管理方法及び情報管理装置
CN105989280A (zh) * 2015-02-10 2016-10-05 富泰华工业(深圳)有限公司 应用程序权限管理系统、管理装置及方法
TWI606369B (zh) * 2016-07-21 2017-11-21 昆盈企業股份有限公司 設定功能鍵方法和輸入裝置
US10706106B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree modifications for maintenance operations
US10706105B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree garbage metrics
US10719495B2 (en) 2017-02-09 2020-07-21 Micron Technology, Inc. Stream selection for multi-stream storage devices
US10725988B2 (en) 2017-02-09 2020-07-28 Micron Technology, Inc. KVS tree
CN107105010B (zh) * 2017-03-23 2020-02-07 福建省汽车工业集团云度新能源汽车股份有限公司 基于gps位置信息的汽车用户快速登入方法及装置
US10915546B2 (en) 2018-10-10 2021-02-09 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US11100071B2 (en) 2018-10-10 2021-08-24 Micron Technology, Inc. Key-value store tree data block spill with compaction
US11048755B2 (en) 2018-12-14 2021-06-29 Micron Technology, Inc. Key-value store tree with selective use of key portion
US10852978B2 (en) 2018-12-14 2020-12-01 Micron Technology, Inc. Key-value store using journaling with selective data storage format
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011494A (en) * 1994-02-04 2000-01-04 Nissan Motor Co., Ltd. Portable or vehicular navigating apparatus and method capable of displaying bird's eye view
CN1351741A (zh) * 1999-04-09 2002-05-29 丰田自动车株式会社 地图数据存储介质,地图信息检索装置和导向装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742924A (en) * 1994-12-02 1998-04-21 Nissan Motor Co., Ltd. Apparatus and method for navigating mobile body using road map displayed in form of bird's eye view
US5893093A (en) * 1997-07-02 1999-04-06 The Sabre Group, Inc. Information search and retrieval with geographical coordinates
US6701307B2 (en) * 1998-10-28 2004-03-02 Microsoft Corporation Method and apparatus of expanding web searching capabilities
JP3598986B2 (ja) * 2001-03-22 2004-12-08 日産自動車株式会社 地図情報提供装置及び地図情報提供方法
US7302343B2 (en) * 2003-07-31 2007-11-27 Microsoft Corporation Compact text encoding of latitude/longitude coordinates
EP1763799A1 (en) * 2004-05-19 2007-03-21 Metacarta, Inc. Systems and methods of geographical text indexing
US7446655B2 (en) * 2004-06-18 2008-11-04 Qualcomm Incorporated Tracking lost and stolen mobile devices using location technologies and equipment identifiers
US9501669B2 (en) * 2004-12-17 2016-11-22 Intel Corporation Method and apparatus for location-based recovery of stolen mobile devices
US20060271281A1 (en) * 2005-05-20 2006-11-30 Myron Ahn Geographic information knowledge systems
JP3885157B2 (ja) * 2005-08-02 2007-02-21 直生 上田 地理的座標変換方法、装置、プログラム、ならびに地理的座標コードを記した情報担持体および地図
US7574291B2 (en) * 2007-01-03 2009-08-11 Yun-Feng Hsieh Apparatus and method using compressed codes for comprising latitude/longitude information
JP4446201B2 (ja) * 2007-03-30 2010-04-07 アイシン・エィ・ダブリュ株式会社 画像認識装置及び画像認識方法
US7965231B2 (en) * 2007-08-04 2011-06-21 Infinity Gear, Llc Radio communication and GPS navigation device
US20090307263A1 (en) * 2008-06-06 2009-12-10 Sense Networks, Inc. System And Method Of Performing Location Analytics
US20100217525A1 (en) * 2009-02-25 2010-08-26 King Simon P System and Method for Delivering Sponsored Landmark and Location Labels
JP5409402B2 (ja) * 2010-01-06 2014-02-05 ヤフー株式会社 地域情報検索サーバ及び処理方法
US8930245B2 (en) * 2010-06-23 2015-01-06 Justin Streich Methods, systems and machines for identifying geospatial compatibility between consumers and providers of goods or services
US8819076B2 (en) * 2010-08-05 2014-08-26 Wavemarket, Inc. Distributed multidimensional range search system and method
JP2013065116A (ja) * 2011-09-15 2013-04-11 Fujitsu Ltd 情報管理方法及び情報管理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011494A (en) * 1994-02-04 2000-01-04 Nissan Motor Co., Ltd. Portable or vehicular navigating apparatus and method capable of displaying bird's eye view
CN1351741A (zh) * 1999-04-09 2002-05-29 丰田自动车株式会社 地图数据存储介质,地图信息检索装置和导向装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Neubart,Geotagging Devices and Software:Now You’ll Always know where you Took That Picture;Jack Neubart;《http://www.shutterbug.com/content/geotagging-devices-and-software-now-you%E2%80%99ll-always-know-where-you-took-picture》;20090501;第1-6页 *

Also Published As

Publication number Publication date
TWI454166B (zh) 2014-09-21
CA2789739A1 (en) 2013-03-15
US9223801B2 (en) 2015-12-29
CN102999546A (zh) 2013-03-27
US20130073553A1 (en) 2013-03-21
CA2789739C (en) 2018-02-27
JP2013065115A (ja) 2013-04-11
JP5782948B2 (ja) 2015-09-24
EP2570941A2 (en) 2013-03-20
EP2570941B1 (en) 2018-06-27
EP2711855A2 (en) 2014-03-26
EP2570941A3 (en) 2014-08-27
EP2711855B1 (en) 2019-01-02
TW201325290A (zh) 2013-06-16
EP2711855A3 (en) 2016-04-20

Similar Documents

Publication Publication Date Title
CN102999546B (zh) 信息管理方法和信息管理装置
Tessarolo et al. Uncertainty associated with survey design in species distribution models
CN104462190B (zh) 一种基于海量空间轨迹挖掘的在线的位置预测方法
Li et al. T-DesP: Destination prediction based on big trajectory data
Xu et al. Taxi-RS: Taxi-hunting recommendation system based on taxi GPS data
Lin et al. Uncertainty analysis of crowd-sourced and professionally collected field data used in species distribution models of Taiwanese moths
CA2789732C (en) Information management method and information management apparatus
US20140164415A1 (en) Systems and Methods for Matching Similar Geographic Objects
Liu et al. Compressing large scale urban trajectory data
Thomas et al. Design of high performance cluster based map for vehicle tracking of public transport vehicles in smart city
Gupta et al. Study of fuzzy logic and particle swarm methods in map matching algorithm
CN113704373B (zh) 基于移动轨迹数据的用户识别方法、装置及存储介质
Tiwari et al. Scalable prediction by partial match (PPM) and its application to route prediction
JP5915335B2 (ja) 情報管理方法及び情報管理装置
Andersen et al. An advanced data warehouse for integrating large sets of GPS data
Zhao et al. User mobility modeling based on mobile traffic data collected in real cellular networks
Necula Mining GPS data to learn driver's route patterns
Zhao et al. Integrated compression of vehicle spatio‐temporal trajectories under the road stroke network constraint
Tao Exploring massive volunteered geographic information for geographic knowledge discovery
CN116108120A (zh) 用于轨迹数据的网格索引方法、轨迹数据搜索方法和装置
Ye An indexing structure and application model for vehicles moving on road networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160803

Termination date: 20190914

CF01 Termination of patent right due to non-payment of annual fee