Location information processing system, client device and server device relating thereto

The proposed system addresses the complexity of the H3 system by integrating a hexagonal grid with a single-level index system, simplifying calculations and enhancing processing efficiency for client device location information.

JP7649926B1Active Publication Date: 2025-03-21GENERAL INC ASSOCIATION HOKKAIDO REGIONAL RESEARCH
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024543986
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-07-26
Filing Date
2024-07-23
Publication Date
2025-03-21
Estimated Expiration
2044-07-23

AI Technical Summary

Technical Problem

The existing H3 system for processing location information of client devices involves complex calculations due to the need to adjust coordinate origins, rotate grids, and scale axes with each change in grid level, especially when processing 3D position information.

Method used

A position information processing system that combines a hexagonal grid system with a single-level index system, eliminating the need for multi-level index processing and reducing calculation complexity by using a simplified indexing method based on oblique coordinates.

Benefits of technology

This approach reduces the computational load and avoids complex calculations, allowing for efficient processing of position information without the need for intricate grid level adjustments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007649926000001_ABST
    Figure 0007649926000001_ABST
Patent Text Reader

Abstract

To provide a position information processing system having freedom in aperture size and avoiding complicated calculations, and a client device and a server device associated therewith. The location information processing system combines a hexagonal grid system and a single-level index system, and calculates an index value (A,B) assigned to a hexagonal grid based on an oblique coordinate value (A,b) of the hexagonal grid corresponding to the oblique coordinate value (a,b) of the location information of the device itself. * ,B * ), and a server device 200 that identifies, based on the index value transmitted from the client device 100, the coordinate values ​​of the grid to which the client device 100 belongs, corresponding to the index value transmitted from the client device 100.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a location information processing system, and a client device and a server device associated therewith, and more particularly to a location information processing system that combines a hexagonal grid system and a single-level index system, and a client device and a server device associated therewith. [Background technology]

[0002] Uber Technologies Inc. (hereinafter referred to as "Uber") is a company that provides various services such as ride sharing, food delivery, and home delivery in many countries and regions including the United States. For example, in order to provide a better ride sharing service to passengers, Uber optimally dispatches a vehicle, taking into consideration costs, when a passenger requests a vehicle dispatch (Non-Patent Document 1).

[0003] This type of dispatch can be realized by processing the location information of client devices using a system developed by Uber called "H3" (hereinafter referred to as the "H3 system"), which combines a hexagonal grid system and a multi-level index system. The client device here refers to a device with communication capabilities, such as a car navigation system installed in a passenger vehicle under contract with Uber, or a smartphone carried by the driver.

[0004] The H3 system has already been open-sourced, and the following explanation is given regarding technical matters such as (1) grids, (2) hierarchies or levels, and (3) indexes and indexing:

[0005] <Grid> FIG. 5 is a schematic diagram showing large, medium and small regular hexagonal grids ("grids" are also called "cells" by those skilled in the art, but will be referred to as "grids" in this specification) in the H3 system superimposed on map data of the entire Earth, and is taken from FIG. 1 in Non-Patent Document 1.

[0006] Strictly speaking, it is not possible to completely cover a sphere such as the Earth with a regular hexagonal grid alone, so the grid in the H3 system also includes regular pentagons, as shown in Figure 5. However, if a hexagonal grid is overlaid on the area monitored by the H3 system, the position information of the client device in that area can be processed, so the inclusion of a regular pentagonal grid does not affect the processing.

[0007] <Level> Figures 6(a) to 6(c) are schematic diagrams in which the regular hexagonal grids of various sizes shown in Figure 5 are broken down into levels according to their size, and correspond to Figure 8 in Non-Patent Document 1. Note that Figure 6(a) corresponds to the right side of Figure 8 in Non-Patent Document 1, Figure 6(b) corresponds to the center of Figure 8 in Non-Patent Document 1, and Figure 6(c) corresponds to the left side of Figure 8 in Non-Patent Document 1. In this way, the H3 system employs multi-level grids when processing location information of client devices.

[0008] Also, for example, the multiple large grids 30 to 36 include one large central grid 30 and six large peripheral grids 31 to 36, and this configuration is similar for grids of other sizes.

[0009] 6(a) to 6(c) show three sizes of grids, large, medium, and small, but these are merely examples and the number of types may be two, four, or more. It should be noted that the designations large, medium, and small in this specification are relative.

[0010] The rotation angle θ between the coordinate system of the small grids 10 to 16 and the coordinate system of the medium grids 20 to 26 is cos -1 (√3 / 2√7), and the rotation angle θ between the coordinate system of the medium-sized grids 20 to 26 and the coordinate system of the large-sized grids 30 to 36 is also cos -1 (√3 / 2√7)).

[0011] The circle plots 17, 27, and 37 shown in Figures 6(a) to 6(c) are intended to illustrate the positions of client devices. In this example, the client device belongs to a large peripheral grid 31, also belongs to a medium peripheral grid 26 within the large peripheral grid 31, and also belongs to a small central grid 10 within the medium peripheral grid 26.

[0012] The location information of a client device may be fixed, such as when the device is stationary, or may be dynamic, such as when the device is moving. Therefore, the location information of a client device is of a nature that can change from moment to moment, but for ease of understanding, the following description will be given on the assumption that the location information is, in principle, fixed.

[0013] FIG. 6(a) shows small grids 10-16 including a small central grid 10 and small peripheral grids 11-16 arranged adjacent to the periphery of the small central grid 10, and a medium-sized grid 26 including the small grids 10-16.

[0014] The length of one side of each of the small grids 10 to 16 (hereinafter, the term "length of one side" will be referred to as "resolution" as used by those skilled in the art) is, for example, 1 m. The medium grid 26 is a regular hexagon with a vertex at a corresponding predetermined corner of the small surrounding grids 11 to 16.

[0015] As shown in FIG. 6(a), the medium-sized grid 26 does not neatly contain all of the small grids 10 to 16, but it does include almost all of the small grids 10 to 16, and the areas of the small grids 10 to 16 and the medium-sized grid 26 are the same.

[0016] FIG. 6(b) shows medium-sized grids 20-26 including a medium-sized central grid 20 and medium-sized peripheral grids 21-26 arranged adjacent to the periphery of the medium-sized central grid 20, and a large grid 31 including the medium-sized grids 20-26.

[0017] The resolution of each of the medium-sized grids 20 to 26 is, for example, √7 m. The large-sized grid 31 has a regular hexagon shape with one corresponding predetermined corner of the surrounding medium-sized grids 21 to 26 as a vertex.

[0018] As shown in FIG. 6(b), although not all of the medium-sized grids 20 to 26 fit neatly into the large grid 31, almost all of the medium-sized grids 20 to 26 are included, and the areas of the medium-sized grids 20 to 26 and large grid 31 are the same.

[0019] Figure 6(c), like Figure 6(b), shows large grids 30-36 including a large central grid 30 and large peripheral grids 31-36 arranged adjacent to the large central grid 30, and an extra-large grid 40 including these large grids 30-36.

[0020] The resolution of each of the large grids 30 to is, for example, 7 m. The extra-large grid 40 has a regular hexagon shape with one corresponding corner of the surrounding large grids 31 to as a vertex.

[0021] As shown in FIG. 6(c), the extra-large grid 40 does not neatly contain all of the large grids 30-36, but includes almost all of the large grids 30-36, and the areas of the large grids 30-36 and the extra-large grid 40 are the same.

[0022] Here, three large grids 31, 30, 34 are arranged in the upper right and lower left direction of FIG. 6(c), and three large grids 36, 31, 32, for example, are arranged in the upper left and lower right direction of FIG. 6(c).

[0023] In Figure 6(c), it is easy to understand by considering imaginary lines extending radially from the center of the large central grid 30 to the large peripheral grids 31-36. Since the resolution of each large grid 30-36 is, for example, 7 m, it can be seen that the circular area that can be reliably monitored by the large grids 30-36 is a circular area with a radius of, for example, 14 m or less.

[0024] In addition, when the grid resolution at the first level shown in Fig. 6(a) is 1m, the grid resolution at the second level shown in Fig. 6(b) is √7m, and the grid resolution at the third level shown in Fig. 6(c) is 7m. In this way, the grid resolution increases by √7 times with each increase in the number of levels, so the resolution at the nth level is √7 (n-1) It becomes m.

[0025] Fig. 7 is a diagram showing the relationship between the grid levels in Fig. 6 and map data for the state of California in the United States. As shown in Fig. 7, the length of the shortest major route on the road connecting the center of San Francisco and the center of San Jose is about 48.4 miles (≒78 km).

[0026] In order to reliably monitor the location information of client devices in the area including these two cities, a circular area as shown in Fig. 7 would require a radius of √7 (n-1) It is necessary to prepare a grid with a level that satisfies "m>50km", i.e., to prepare a grid up to the 15th level.

[0027] <Index and Indexing> An index in the H3 system refers to a unique identification number assigned to each grid that exists at each level, and indexing refers to assigning a unique identification number to each grid.

[0028] As mentioned above, "by level," in the H3 system, which uses multi-level indexing, if a specific grid on the first level is assigned an index value of "001," then a specific grid on the second level will also be assigned an index value of "001" that is common to this grid.

[0029] Uber has not disclosed the full details of the index and indexing processes in the H3 system. However, based on the technical matters disclosed by Uber in Non-Patent Document 1 and other documents, it is assumed that the H3 system performs the following processes regarding indexes and indexing.

[0030] First, we will explain about oblique coordinates related to indexes and indexing. A client device can obtain location information indicating the latitude and longitude of the device using a Global Positioning System (GPS) function or the like. It is convenient to process location information indicating latitude and longitude in an orthogonal coordinate system, and it is usually processed in this manner.

[0031] However, in the case of the H3 system, because it uses a hexagonal grid system, it is often easier to process the position information in an oblique coordinate system with mutually intersecting axes that are 120° apart, which corresponds to the hexagonal shape of the grid, rather than processing it directly in a Cartesian coordinate system.

[0032] Fig. 8 is an explanatory diagram of an oblique coordinate system for a multi-level hexagonal grid according to the H3 system. For convenience of explanation and ease of understanding, Fig. 8 depicts the large grids 30 to 36 rotated -30 degrees from the state shown in Fig. 6(c).

[0033] In Figure 8, the origin (0,0) is set at the center coordinates of the large central grid 30, the number line extending from the origin to the right side of the drawing is the i-axis, and the number line extending from the origin in a direction at +120° to the i-axis is the j-axis.

[0034] Here, when scaling is performed so that one division on the i-axis and j-axis corresponds to the grid resolution, the central coordinate values ​​(A, B) of each of the large surrounding grids 31 to 36 can be expressed as (2, 1) for large surrounding grid 31, (1, -1) for large surrounding grid 32, (-1, -2) for large surrounding grid 33, (-2, -1) for large surrounding grid 34, (-1, 1) for large surrounding grid 35, and (1, 2) for large surrounding grid 36.

[0035] It is expected that a person skilled in the art would find it convenient to use binary values ​​for the indexes when indexing each of the large grids 30 to 36, taking into consideration the processing in the client device and server device, which are computers, and would also find it convenient to use 3-bit values ​​that can express mutually identifiable values ​​without excess or deficiency, given that the number of grids in the large grids 30 to 36 is seven.

[0036] In this case, a person skilled in the art might consider that one way to index the large grids 30-36 would be to focus on the ones digit of the codes and index them using a 3-bit binary number, such as indexing the large central grid 30 as "000", the large peripheral grid 31 as "001", the large peripheral grid 32 as "010", ... and the large peripheral grid 36 as "110".

[0037] Then, if the correspondence between the center coordinate values ​​(A, B) of each grid and the corresponding index values ​​("000" to "010") is stored in a table memory or the like provided in the client device and the server device, for example, when the client device determines that the own device belongs to the large surrounding grid 31, it can identify that the corresponding index value is "001" by referring to the table memory or the like based on the center coordinate value (A, B) (2, 1) of the large surrounding grid 31. If the client device transmits the index value "001" to the server device, the server device can identify that the grid is the large surrounding grid 31 by referring to the table memory based on the received index value "001".

[0038] What has been explained using FIG. 8 also applies to the medium-sized grids 20-26 and the small grids 10-16, so the client device can specify index values ​​that are increasingly finer in the order of the large grids 30-36, the medium-sized grids 20-26, and the small grids 10-16.

[0039] In fact, if a client device determines that the grids to which the client device belongs are the large surrounding grid 31, the medium surrounding grid 26, and the small central grid 10, as illustrated in Figure 6, and identifies the individual index values ​​as "001," "110," and "000," then the client device can transmit the concatenated overall index value, for example, "001110000," to the server device, and the server device can identify that the large, medium, and small grids to which the client device belongs are the large surrounding grid 31, the medium surrounding grid 26, and the small central grid 10.

[0040] Therefore, for example, the server device can receive a 45-digit binary value of 3 bits x 15 levels transmitted from each of the client devices related to passenger vehicles traveling in the state of California as shown in Figure 7 as an index value, and identify a passenger vehicle that is suitable for the number of passengers at the time of the vehicle dispatch request from among the passenger vehicles that are, for example, closest to the person wishing to board, and issue dispatch instructions to the driver of that passenger vehicle. [Prior art documents] [Patent documents]

[0041] [Non-Patent Document 1] https: / / www.uber.com / en-JP / blog / h3 / Summary of the Invention [Problem to be solved by the invention]

[0042] However, in the H3 system, when performing processing expected for the index, each time the number of levels of the grid to be processed is reduced, it is necessary to (1) set the coordinate origin of the oblique coordinate system to, for example, the center coordinate of the central grid of the new level, (2) rotate the grid of the new level relative to the oblique coordinate system by a rotation angle of cos(√3 / 2√7)), and (3) reduce the scale of the graduation of the oblique coordinate system by a factor of 1 / √7 to match the new level.

[0043] These position information processes involve complex calculations, including irrational numbers, so the load of the calculations on the H3 system is relatively large. In addition, the load increases as the number of levels increases because the amount of calculations increases. When processing three-dimensional position information, such as the flight position of a drone, the amount of calculations becomes enormous compared to two-dimensional cases, so it is necessary to avoid complex calculations.

[0044] In addition, in the explanation of the background art, an example was given in which the number of small grids, medium grids, and large grids contained in each of the medium grid, large grid, and extra-large grid is "7" (this number is also referred to as the "aperture size" by those skilled in the art), but it would be convenient and flexible to be able to process position information for aperture sizes other than these.

[0045] Therefore, an object of the present invention is to provide a position information processing system that has freedom in aperture size and avoids complex calculations, as well as a client device and a server device associated with the system. [Means for solving the problem]

[0046] In order to solve the above problems, the present invention provides a position information processing system that combines a hexagonal grid system and a single-level index system, comprising: Based on the coordinates (e.g., the oblique coordinates (A,B) in this specification) of a hexagonal grid corresponding to the position information of the own device (e.g., the orthogonal coordinate values ​​(x,y) or the oblique coordinate values ​​(a,b) in this specification), an index (e.g., the index (A * ,B * A client device (e.g., client device 100 of FIG. 1) that transmits a value of a server device (e.g., the server device 200 in FIG. 1 ) that identifies, based on the index value transmitted from the client device, coordinate values ​​of a grid to which the client device belongs that correspond to the index value; Equipped with.

[0047] The client device includes: An indexing means (e.g., the indexing means 120 in FIG. 1 ) for indexing the position information into values ​​of oblique coordinates (e.g., oblique coordinates (a, b) in this specification) based on the shape of the grid from values ​​of orthogonal coordinates (e.g., orthogonal coordinates (x, y) in this specification) based on latitude and longitude; A determination means (e.g., the determination means 130 in FIG. 1 ) that determines the value of the index based on the value of the oblique coordinate assigned to a grid that includes the value of the oblique coordinate determined by the determination means; It can also be provided with:

[0048] The server device includes: A receiving means (e.g., the receiving means 210 in FIG. 1) for receiving an index value transmitted from the client device; a first determination means (e.g., the determination means 220 in FIG. 1) for determining a value of the oblique coordinate assigned to a grid corresponding to a value of the index based on information (e.g., information shown in Table 1) indicating a correspondence relationship between the value of the oblique coordinate assigned to each of the plurality of grids and the value of the index assigned to each of the grids and the value of the index received by the receiving means; It can also be provided with:

[0049] Alternatively, the server device A receiving means (e.g., the receiving means 210 in FIG. 1) for receiving an index value transmitted from the client device; A second determination means (e.g., the determination means 220 in FIG. 1 ) that determines a value of an oblique coordinate assigned to a grid corresponding to the value of the index based on a remainder obtained when the value of the index received by the receiving means is divided by 3; It can also be provided with:

[0050] Furthermore, the second specifying means is configured to specify at least two values ​​constituting the value of the index (for example, "A * " and "B * It is advisable to determine the values ​​of the oblique coordinates taking into account the relative magnitudes of the two.

[0051] The aperture size of the hexagonal grid is 2 2(k-1) +1~2 2k In particular, 2k (where k is a positive integer.)

[0052] Furthermore, the client device of the present invention may be a client device used in the above-mentioned position information processing system.

[0053] Furthermore, the server device of the present invention may be a server device used in a location information processing system. Effect of the Invention

[0054] According to the position information processing system of the present invention, the process of specifying the index value for each level, which was essential in the H3 system, is not performed, and therefore (1) setting the coordinate origin, (2) rotating the grid, and (3) adjusting the scale of the coordinate axis are not required, and therefore irrational numbers do not appear in the calculation formula, and complicated calculations can be avoided.

[0055] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0056] <Composition and Overview> Fig. 1 is a block diagram showing a schematic configuration of a location information processing system according to an embodiment of the present invention. As shown in Fig. 1, the location information processing system according to the embodiment includes a client device 100, a server device 200, a database (hereinafter referred to as "DB") 300, and a network 400.

[0057] The location information processing system of this embodiment is similar to the H3 system in that it combines a hexagonal grid system with an index system, but differs in that the index system is not multi-level and the indexing method for the hexagonal grid is different from that envisioned in the H3 system.

[0058] That is, in this embodiment, index-related processing is performed using a single-level index system rather than a multi-level index system, and indexing of the hexagonal grid is devised to reduce the computational load on the location information processing system when identifying the index value assigned to the grid to which the client device belongs.

[0059] In a typical indexing method in this embodiment, the center coordinates (A, B) of the central grid are set as the origin (0, 0) of the oblique coordinate system, one division of the coordinate axis is scaled to the resolution of the grid, for example 1 m, and each of the surrounding grids is indexed based on the values ​​of their center coordinates (A, B) (the values ​​of A and B are both "integers").

[0060] In the position information processing system of this embodiment, for example, the central coordinate values ​​(A, B) of each grid and the index values ​​(A, B) indexed based on the central coordinate values ​​are stored. * ,B * ) and (A * ,B * The values ​​of are all "positive integers.") The correspondence between them is stored in a table memory or the like of the client device 100 and the server device 200.

[0061] In this way, the client device 100 acquires its own location information based on the longitude and latitude that can be specified by the orthogonal coordinate values ​​(x, y), calculates the oblique coordinate values ​​(a, b) from the orthogonal coordinate values ​​(x, y) of that location information, and when it identifies a grid that contains the oblique coordinate values ​​(a, b), it can refer to a table memory or the like based on the center coordinate values ​​(A, B) of that grid to determine the corresponding index value (A, B). * ,B * ) can be identified.

[0062] The client device 100 receives the value of the index (A * ,B *) to the server device 200 via the network 400. The server device 200 receives the index value (A * ,B * ), the center coordinate values ​​(A, B) of the corresponding grid can be identified by referring to a table memory or the like.

[0063] Note that, as there is a method to be described later, in the position information processing system of this embodiment, it is not essential to use a table memory or the like to specify the index value. Also, note that it is also possible to take, for example, one of the corners as the origin (0,0) of the oblique coordinate system, instead of the central coordinates (A,B) of the central grid.

[0064] From the above summary, it can be seen that in the location information processing system of this embodiment, index-related processing is performed at a single level, rather than at multiple levels as envisaged in the H3 system, and therefore no complex calculations are required.

[0065] Next, the configuration of the position information processing system of this embodiment will be described. From the hardware aspect, the client device 100 may be, for example, a car navigation system provided in a passenger vehicle under contract with Uber, a smartphone owned by a driver of the passenger vehicle, or a smartphone owned by a passenger who shares the passenger vehicle. Therefore, although only one client device 100 is shown in FIG. 1, a plurality of devices are actually present in the network 400.

[0066] However, the client device 100 is not limited to the above examples as long as it has at least a position detection function such as a global navigation satellite system (GNSS) including a global positioning system (GPS) function and a communication function such as a fifth or sixth generation mobile communication system that enables transmission and reception of data and information. Therefore, the client device 100 can also be a notebook computer, a personal digital assistant (PDA), a tablet terminal, a wearable device such as a smart watch, etc.

[0067] From the software perspective, the client device 100 includes an acquisition means 110, an indexing means 120, a specification means 130, a transmission means 140, and a reception means 150, which will be described below. The processing in each of these means can be realized, for example, by cooperation between a central processing unit (CPU) and a memory included in the client device 100.

[0068] The acquisition means 110 receives radio waves transmitted from GPS satellites or GNSS satellites at each of predetermined sampling times that are consecutive in time, and acquires the Cartesian coordinate values ​​(x, y) of location information indicating the latitude and longitude of the device itself.

[0069] The latitude and longitude may be based on the general equator or the international reference meridian, or may be based on a local position such as a specific region in a country.

[0070] The indexing means 120 sequentially indexes each oblique coordinate value (a, b) mechanically by a known method from each orthogonal coordinate value (x, y) sequentially acquired by the acquisition means 110, and also indexes the oblique coordinate value (A, B), which is, for example, the center coordinate of the grid to which each oblique coordinate value (a, b) belongs. The oblique coordinate value (A, B) may also be, for example, the value of the lower left corner of the small grid.

[0071] The oblique coordinate value (a, b) is not necessarily an integer, since it is simply calculated mechanically from the orthogonal coordinate values ​​(x, y) that indicate latitude and longitude information. In contrast, the oblique coordinate value (A, B) will always be an integer if one graduation on the oblique coordinate axis is an integer multiple of the grid resolution, which is taken as one unit. To avoid complex calculations, it is advisable to set both one graduation on the oblique coordinate axis and the grid resolution to, for example, 1m, but the grid resolution may also be, for example, 2m or 0.5m.

[0072] The identification means 130 indexes the grid based on the oblique coordinate values ​​(A, B) of the grid to which the own device belongs, which are determined by the determination means 120, and determines the index value (A * ,B * ) is identified.

[0073] This determination process will be described in detail later with reference to FIGS. 2 to 4 and Tables 1 to 3, but will be briefly outlined here. However, if the oblique coordinate axes are scaled under the above conditions, the oblique coordinate values ​​(A, B) will become decimal values ​​that can be expressed as positive or negative integers, and a binary value using two's complement representation can be determined. A decimal value expressed as a positive integer can also be determined from the value of a certain number of lower-order bits of these binary values. In this embodiment, the decimal value expressed as a positive integer is calculated as the index value (A * ,B * )

[0074] The "lower specified number of bits" is the grid aperture size divided by 2. 2(k-1) +1~2 2k(where k is a positive integer.) For example, if the aperture size is "7" like the H3 system, then k = 2.

[0075] For example, if the oblique coordinate value (A,B) is (-1,1), using two's complement representation of these values ​​results in (111,001). (This value in complement representation is expressed as a 3-bit binary number, but when processed by a processor with a word length of 32 bits, a 32-bit two's complement representation can be used, and an additional 29 bits of 1 or 0 can be added to the upper bits.) Then, the decimal value (3,1) expressed as a positive integer corresponding to the value (11,01) of the last two digits (lower two bits) of these values ​​is defined as the index value (A,B) in this embodiment. * ,B * )

[0076] The transmission means 140 transmits the value of the index (A * ,B * ) and the corresponding sampling time in its payload, and a packet including in its header a unique ID that can indicate a source assigned to the device itself and a server ID that can indicate a destination assigned to server device 200, is transmitted to server device 200 via network 400.

[0077] The manner in which the transmitting means 140 transmits information to the server device 200 is not important. Therefore, for example, the value of the index specified by the arrival of the sampling time (A * ,B * ) may be sent immediately thereafter in a pair with the sampling time, or several pairs of these may be sent together, or they may be sent in some other manner (for example, a packet without an ID if the ID can be identified by the server device 200).

[0078] The receiving means 150 of the client device 100 on the passenger vehicle side receives dispatch instructions, etc., sent from the server device 200 via the network 400 to the client device 100 on the passenger side, and receives information identifying the passenger vehicle that has been instructed to dispatch the vehicle.

[0079] Note that the client device 100 may also include means other than those shown in Fig. 1. The client device 100 may also include, for example, a storage means for storing an object to be transmitted to the server device 200 in a memory or the like (not shown), and a retransmission means for retransmitting the object to be transmitted stored in the memory or the like in response to a request from the server device 200 or when an ACK signal from the server device 200 cannot be received.

[0080] In this way, if the pair of index value and corresponding sampling time to be transmitted from client device 100 to server device 200 is lost or corrupted on network 400 for some reason and cannot be received correctly by server device 200, a retransmission process can be performed.

[0081] From the viewpoint of hardware, the server device 200 can be a business computer, and from the viewpoint of software, the server device 200 includes a receiving means 210, a specifying means 220, a calculating means 230, a storing means 240, and a transmitting means 250, which will be described below. The processing in each of these means can be realized, for example, by cooperation between a central processing unit (CPU) and a memory included in the client device 100.

[0082] It should be noted that the server device 200 does not necessarily have to integrate all of these means into one device, and may be separated into multiple devices, and the server device 200 may also be provided with other means not shown.

[0083] The receiving means 210 receives the value of the index (A* ,B * ) and the corresponding sampling time, etc.

[0084] The identifying means 220 determines the value of the index (A * ,B * ), or by referring to a table memory or the like (not shown) based on the value (A * +B * ) by 3 and based on the remainder, the corresponding oblique coordinate value (A, B) is determined.

[0085] The calculation means 230 calculates trajectory data of the client device 100 based on the values ​​(A, B) of a plurality of oblique coordinates that are consecutive in time and that are identified by the identification means 220 .

[0086] The storage means 240 stores in the DB 300 a part or all of the various data included in the packets received by the reception means 210 and the trajectory data of the client device 100 calculated by the calculation means 230 .

[0087] For example, when a dispatch request is sent from a client device 100 owned by a person wishing to board, the transmission means 250 refers to the DB 300 based on the oblique coordinate values ​​(A, B) of the client device 100 of the person wishing to board, selects as the vehicle to be dispatched a passenger vehicle related to the client device 100 that is, for example, closest to the position and that is suitable for the number of passengers at the time of the dispatch request, and transmits a dispatch instruction to that passenger vehicle.

[0088] The DB 300 stores, for each client device 100, the above-mentioned ID, sampling time, trajectory data, and the like as a set of data.

[0089] The network 400 is a general term for various networks that mutually connect the client device 100, the server device 200, and the DB 300, including a mobile phone line, an Internet line, an intranet line, and the like.

[0090] Figure 2 is an explanatory diagram of processing related to a single-level index in the position information processing system of Figure 1. The aperture size of the large grid shown in Figure 2 is 7. Note that in this specification, in the oblique coordinate system shown in Figure 2, the regions divided by the coordinate axes with coordinate values ​​of (+,+), (-,+), (-,-), (+,-) will be referred to as the first quadrant, second quadrant, third quadrant, and fourth quadrant, following the orthogonal coordinate system.

[0091] First, please refer to the compact central grid 10 shown in Figure 2. (0,0) means the diagonal coordinate value (A,B) of the center point of the compact central grid 10, and (000,000) means that the diagonal coordinate value (0,0) is expressed in binary using two's complement notation.

[0092] In addition, for the small surrounding grids 15 and 16 in the first quadrant shown in Figure 2, the center coordinate values ​​(A, B) of the small surrounding grids 15 and 16 are (1, 2) and (2, 1), and the values ​​expressed in binary using two's complement notation are (001, 010) and (010, 001).

[0093] Table 1 summarizes the explanations of the coordinates shown in Figure 2. First, refer to the third line of Table 1. It explains that when the center coordinate value (A,B) is (0,0), the binary value expressed as a binary number using two's complement notation for these values ​​(0,0) is (000,000), the last two digits of these numbers are (00,00), and the index value (A * ,B * ) is (0,0) and the index value (A * +B * ) by 3 gives a remainder of "0", meaning that the center coordinates (A, B) are in the "first quadrant".

[0094] Strictly speaking, when the center coordinate value (A, B) is (0, 0), this part does not belong to any of the first to fourth quadrants, so to speak, it is a special part. However, since it has been found that the calculation process of the position information becomes smoother if this part is treated as belonging to the first quadrant, this embodiment will treat it as such. [Table 1]

[0095] In addition, in the first and second rows of Table 1, when the center coordinate values ​​(A,B) are (1,2) and (2,1) in the first quadrant, the binary values ​​expressed using two’s complement notation are (001,010) and (010,001), and the last two digits of these numbers are (01,10) and (10,01), and the index value (A * ,B * ) are (1,2) and (2,1), and the index values ​​(A * +B * ) by 3 gives a remainder of "0", meaning that the center coordinates (A, B) are in the "first quadrant".

[0096] Furthermore, in the fourth row of Table 1, when the center coordinate value (A,B) is (-1,1) in the second quadrant, the binary value expressed by using two's complement notation for (-1,1) is (111,001), and the last two digits of this value are (11,01), and the index value (A * ,B * ) is (3,1), and the index value (A * +B * ) by 3, the remainder is "1", and the center coordinates (A, B) are in the "second quadrant".

[0097] Similarly, Table 1 also provides corresponding descriptions of the coordinates for each of the small surrounding grids in the third and fourth quadrants shown in FIG.

[0098] Here, the values ​​shown in the items of oblique coordinates (A,B) in Table 1 are mutually unique, and the index (A * ,B * ) are also unique to each other, and there is a 1:1 correspondence between the values ​​in the same row.

[0099] Therefore, as mentioned above, the oblique coordinate values ​​(A,B) and index values ​​(A * ,B * If the client device 100 and the server device 200 are provided with a table memory or the like in which a set of the index value (A, B) and the oblique coordinate value (A, B) corresponding to the position of the client device 100 is stored, the client device 100 can obtain the index value (A, B) based on the oblique coordinate value (A, B) corresponding to the position of the client device 100. * ,B * ) can be sent to the server device 200, and the server device 200 can receive the value of the index (A * ,B * ) can be used to identify the oblique coordinate values ​​(A,B) corresponding to the

[0100] Now, if we look at Table 1, especially the remarks column, we see that "(A * +B * )mod3=0, then (A,B) belongs uniquely to the first quadrant in the oblique coordinate system, and (A * +B * )mod3=2, then (A,B) belongs uniquely to the third quadrant. * +B * )mod3=1, then (A,B) belongs to either the second quadrant or the fourth quadrant.

[0101] That is, "(A * +B * If "(A,B)" is a quadrant that belongs to, then the quadrant is uniquely determined. * +B *If "(A,B)" is 1, the quadrant to which "(A,B)" belongs cannot be uniquely determined. * " value is always "B * On the other hand, in the fourth quadrant, the value of A * " value is always "B * " is smaller than the value of "(A * +B * )mod3" is "1", then "A * " and "B * By checking the size of "(A,B)", you can easily identify the quadrant to which "(A,B)" belongs.

[0102] In addition, "(A * +B * )mod3=1, "(A,B)" belongs to the "2nd quadrant" or "4th quadrant", so "A * " or "B * This corresponds to the fact that the relationship between "" and "A" or "B" is not "1:1" but "1:2".

[0103] Specifically, the correspondence between "1:2" in the case of Table 1 is as follows: "A * " etc. has a value of "3": "A" etc. has a value of "3" or "-1", "A * " etc. has a value of "2": "A" etc. has a value of "2" or "-2", "A * " etc. has a value of "1": "A" etc. has a value of "1" or "-3", "A * " etc. has a value of "0": "A" etc. has a value of "0" or "-4", In the cases of Tables 2 and 3, depending on which quadrant (A, B) is in, "A * " or "B * " and "A" or "B" have a correspondence relationship of "1:1" or "1:2."

[0104] When the correspondence is "1:1", it means that "(A * +B *)mod3" is synonymous with "0" and "1" in both Tables 2 and 3, so the quadrant to which "(A,B)" belongs is uniquely determined. On the other hand, when the correspondence is "1:2", "(A * +B * )mod3" is the same as "2" in both Tables 2 and 3, so "A * " and "B * By checking the size of "(A,B)", you can easily identify the quadrant to which "(A,B)" belongs.

[0105] Fig. 3 is an explanatory diagram of processing related to a single-level index of a different aperture size in the position information processing system of Fig. 1. Fig. 2 shows an example in which the aperture size of the large grid is 7, whereas Fig. 3 shows an example in which the aperture size of the large grid is 25.

[0106] Table 2 summarizes the explanations of the coordinates shown in FIG. 3 and corresponds to Table 1. [Table 2]

[0107] Looking at Table 2, we can see that in the grid with aperture size 25, just as in Table 1, the values ​​shown in the diagonal coordinates (A,B) are mutually unique, and the index (A * ,B * ) are mutually unique, and there is a 1:1 correspondence between the values ​​in the same row.

[0108] In addition, in the case of Table 2, "(A * +B * )mod3" is "2", the quadrant in the oblique coordinate system to which "(A,B)" belongs is not uniquely determined. However, the quadrant to which "(A,B)" belongs is determined by "(A * +B * )mod3" is "2", then "A * " and "B * This can be identified by simply performing the simple process of checking the magnitude relationship with "."

[0109] By the way, as can be seen by comparing Table 1 and Table 2, the "(A * +B * The difference is that the value of "(A ) mod 3" is "1" in Table 1, whereas it is "2" in Table 2. This difference comes from the even or odd value of "k" related to the aperture size of the grid as mentioned above. * +B * ) mod 3 is equal to 1 if k is odd and 2 if k is even.

[0110] Therefore, if the value of “k” related to the grid aperture size or whether it is even or odd is shared between the client device 100 and the server device 200, the server device 200 can easily recognize the value of the index (A * ,B * Based on "(A * +B * ) mod 3" is calculated, and if the value is "1" or "2", it is determined whether the center coordinates (A, B) of the corresponding grid belong to the second or fourth quadrant, or to the third quadrant, taking into account the even or odd value of "k" related to the grid aperture size. In the former case, "A * " and "B * By checking the size of "," it is possible to determine whether the quadrant to which the client device 100 belongs is the second quadrant or the fourth quadrant.

[0111] Fig. 4 is an explanatory diagram of processing related to indexes of other aperture sizes at a single level in the position information processing system of Fig. 1. Fig. 2 shows an example in which the aperture size of the large grid is 7, whereas Fig. 3 shows an example in which the aperture size of the large grid is 49.

[0112] Table 3 summarizes the explanations of the coordinates shown in FIG. 4 and corresponds to Table 1. [Table 3]

[0113] Looking at Table 3, we can see that in the grid with aperture size 49, just as in Table 1, the values ​​shown in the diagonal coordinates (A,B) are mutually unique, and the index (A * ,B * ) are mutually unique, and there is a 1:1 correspondence between the values ​​in the same row.

[0114] Therefore, the server device 200 receives the values ​​of (A, B) in each row of Table 2 or Table 3 and the value (A * ,B * ) is stored in a table memory or the like. Alternatively, according to the above-mentioned identification method, regardless of whether the aperture size transmitted from the client device 100 is 7, 25, or 49, the client device 100 receives an index value (A, B) based on the oblique coordinate value (A, B) corresponding to the position of the client device. * ,B * ) can be sent to the server device 200, and the server device 200 can receive the index (A * ,B * ) can be used to identify the oblique coordinate values ​​(A,B) corresponding to the [Brief description of the drawings]

[0115] [Figure 1] 1 is a block diagram showing a schematic configuration of a position information processing system according to an embodiment of the present invention. [Diagram 2] 1. FIG. 4 is an explanatory diagram of processing related to a single-level index in the location information processing system of FIG. [Diagram 3] 1. FIG. 4 is an explanatory diagram of processing related to a single-level index of another aperture size in the position information processing system of FIG. [Figure 4] 1. FIG. 4 is an explanatory diagram of processing related to a single-level index of another aperture size in the position information processing system of FIG. [Diagram 5] This is a schematic diagram showing how large, medium and small hexagonal grids in the H3 system are overlaid on map data for the entire Earth. [Figure 6] This is a schematic diagram in which the various sizes of hexagonal grids shown in Figure 5 are decomposed and represented at levels according to their size. [Figure 7] FIG. 7 is a diagram showing the relationship between the levels of the grids in FIG. 6 and map data of the state of California in the United States. [Figure 8] FIG. 1 is an illustration of an oblique coordinate system for a multi-level hexagonal grid according to the H3 system. [Explanation of symbols]

[0116] 100 client devices 110 Acquisition means 120 Indexing means 130 Specific means 140 Transmission means 150 Receiving means 200 Server device 210 Receiving means 220 Specific means 230 Calculation Method 240 Storage means 250 Transmission Method 300 DB (database) 400 Network

Claims

1. A position information processing system that combines a hexagonal grid system and a single level index system, a client device that transmits an index value assigned to a hexagonal grid based on coordinate values ​​of the grid corresponding to location information of the client device; a server device that identifies, based on the index value transmitted from the client device, coordinate values ​​of a grid to which the client device belongs that correspond to the index value; A location information processing system comprising:

2. The client device includes: an indexing means for indexing values ​​of oblique coordinates based on the shape of the grid from values ​​of orthogonal coordinates based on latitude and longitude that can identify the position information; a determination means for determining a value of the index based on values ​​of oblique coordinates assigned to a grid including the values ​​of the oblique coordinates determined by the determination means; The position information processing system according to claim 1 .

3. The server device includes: a receiving means for receiving an index value transmitted from the client device; a specifying means for specifying a value of the oblique coordinates assigned to a grid corresponding to a value of the index based on information indicating a correspondence between values ​​of the oblique coordinates based on a shape of the grid, the oblique coordinates being calculated from values ​​of orthogonal coordinates based on latitude and longitude that can specify the position information, and values ​​of the index assigned to each of the grids, and based on the value of the index received by the receiving means; The position information processing system according to claim 1 .

4. The server device includes: a receiving means for receiving an index value transmitted from the client device; a determination means for determining, based on a remainder when the index value received by the receiving means is divided by 3, a value of an oblique coordinate assigned to a grid corresponding to the index value; The position information processing system according to claim 1 .

5. 2. The position information processing system according to claim 1, wherein the aperture size of the hexagonal grid is 22(k-1)+1 to 22k.

6. A client device for use in the position information processing system according to claim 1, an indexing means for indexing values ​​of oblique coordinates based on the shape of the grid from values ​​of orthogonal coordinates based on latitude and longitude that can identify the position information; a determination means for determining a value of the index based on values ​​of oblique coordinates assigned to a grid including the values ​​of the oblique coordinates determined by the determination means; A client device comprising:

7. A server device for use in the position information processing system according to claim 1, a receiving means for receiving an index value transmitted from the client device; a specifying means for specifying a value of the oblique coordinates assigned to a grid corresponding to a value of the index based on information indicating a correspondence between values ​​of the oblique coordinates based on a shape of the grid, the oblique coordinates being calculated from values ​​of orthogonal coordinates based on latitude and longitude that can specify the position information, and values ​​of the index assigned to each of the grids, and based on the value of the index received by the receiving means; A server device comprising:

Citation Information

Patent Citations

  • Vector data drawing method on full-sphere hexagon discrete grid

    CN102096946A

  • Working and living space analysis method and device, electronic equipment and readable storage medium

    CN113535785A

  • System and method for identifying a grid of geographic regions in a map

    JP2021508856A

  • Icosahedral modified generalized balanced ternary and aperture 3 hexagon tree

    US20050193365A1

  • Hexagon clustering of spatial data

    US20200320108A1