System, server device, and information processing method
By separating geofence definition data into main body and action data with identification information, the system addresses the challenge of increasing data volumes in geofence technologies, achieving reduced data redundancy and processing loads.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- TOYOTA JIDOSHA KK
- Filing Date
- 2024-12-04
- Publication Date
- 2026-06-16
AI Technical Summary
Existing geofence technologies require large volumes of data for each geofence definition, leading to increased data management complexity and processing loads as the number of geofences increases.
The system separates geofence definition data into main body data and action data, associating action data with identification information, allowing for reuse across multiple geofences, thereby reducing data duplication and volume.
This approach reduces the amount of geofence definition data required, minimizing data duplication and processing loads on server devices.
Smart Images

Figure 2026097048000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a system, a server device, and an information processing method.
Background Art
[0002] In recent years, the development of technologies using geofences has advanced. A geofence is an area surrounded by a virtual boundary line. In geofence technology, basically, it is determined whether a user (or a device) is inside or outside the geofence according to the current position of the user (or the device). This inside / outside determination may include determining whether the user (or the device) has entered or exited the geofence. Then, an arbitrary action is executed according to the result of the inside / outside determination.
[0003] For example, Patent Document 1 proposes a system that acquires the position of a user device, determines whether or not the device has entered the geofence based on the acquired position, and provides a warning when it is determined that the device has entered the geofence. Further, Patent Document 2 proposes a system in which a server device distributes definition data of a geofence existing within a predetermined range (range of threshold distance) from the current position of a client device to each client device, and each client device executes a geofence determination process according to the distributed definition data.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0005] One of the purposes of this disclosure is to provide a technology for reducing the amount of data involved in geofence definition data. [Means for solving the problem]
[0006] The system according to the first aspect of this disclosure comprises a server device and a client device. The server device is configured to provide geofence definition data in response to a request from the client device. The geofence definition data comprises action data that defines actions in the geofence, and body data that includes identification information for the action data.
[0007] A server device according to a second aspect of this disclosure includes a control unit. The control unit is configured to provide geofence definition data in response to a request from a client device. The geofence definition data includes action data that defines actions in the geofence, and body data that includes identification information for the action data.
[0008] The information processing method relating to the third aspect of this disclosure is executed by a server device. The information processing method includes providing geofence definition data in response to a request from a client device. The geofence definition data comprises action data that defines actions in the geofence, and body data that includes identification information for the action data. [Effects of the Invention]
[0009] According to this disclosure, a reduction in the amount of data required for geofence definition data can be expected. [Brief explanation of the drawing]
[0010] [Figure 1] Figure 1 schematically illustrates an example of a scenario in which this disclosure applies. [Figure 2] Figure 2 schematically illustrates an example of a method for providing geofence definition data as disclosed herein. [Figure 3]Figure 3 schematically shows an example of a method for defining the geometry (area) of a geofence according to this disclosure. [Figure 4] Figure 4 schematically shows an example of a method for defining the geometry (area) of a geofence according to this disclosure. [Figure 5] Figure 5 schematically shows an example of a method for defining the geometry (area) of a geofence according to this disclosure. [Figure 6] Figure 6 schematically illustrates an example of the geometry integration method described herein. [Figure 7] Figure 7 schematically illustrates an example of the geometry integration method described herein. [Figure 8] Figure 8 schematically illustrates an example of the geometry integration method described herein. [Figure 9] Figure 9 schematically shows an example of the configuration of geofence definition data in this disclosure. [Figure 10] Figure 10 schematically illustrates an example of how geofences are associated with areas on the map of this disclosure. [Figure 11] Figure 11 schematically illustrates an example of how geofences are associated with areas on the map of this disclosure. [Figure 12] Figure 12 schematically shows an example of updating geofence definition data held in the client device of this disclosure. [Figure 13] Figure 13 schematically illustrates an example of how the priority set in the geofence definition data of this disclosure can be utilized. [Figure 14] Figure 14 schematically shows an example of the hardware configuration of the server device of this disclosure. [Figure 15] Figure 15 schematically shows an example of the hardware configuration of the client device of this disclosure. [Figure 16] Figure 16 schematically shows an example of the software configuration of the server device of this disclosure. [Figure 17] Figure 17 schematically shows an example of the software configuration of the client device of this disclosure. [Figure 18]FIG. 18 is a sequence diagram showing an example of a processing procedure related to the request and provision of geofence definition data of the present disclosure. [Figure 19] FIG. 19 is a flowchart showing an example of a processing procedure related to the determination of inside and outside of the geofence of the present disclosure. [Figure 20] FIG. 20 schematically shows another example of a scenario to which the present disclosure is applied.
MODE FOR CARRYING OUT THE INVENTION
[0011] Conventionally, geofence definition data is prepared individually for each geofence. Therefore, as the number of geofences increases, the data volume of the geofence definition data may increase.
[0012] On the other hand, the system according to the first aspect of the present disclosure is composed of a server device and a client device. The server device is configured to provide geofence definition data in response to a request from the client device. The geofence definition data includes main body data including action data that defines an action in the geofence and identification information of the action data.
[0013] In the first aspect of the present disclosure, the geofence definition data is divided into main body data and action data. In other words, the action data is separated from the main body data. Since the main body data includes the identification information of the action data, the action data is associated with the main body data. By these, while ensuring the accessibility between the main body data and the action data, the action data can be configured to be reusable. That is, by associating the action data with another main body data, the same action defined by the action data can be set for another geofence. Therefore, according to the first aspect of the present disclosure, duplication of data for the definition of the same action can be suppressed, and thus the data volume of the geofence definition data can be reduced.
[0014] The form of this disclosure is not limited to the system described above. As another form of the system described above, one aspect of this disclosure may be an information processing device (server device, client device) that implements all or part of the above components, an information processing method, a program, or a machine-readable storage medium that stores such a program. Here, a machine-readable storage medium may be a non-temporary medium that stores information such as programs by electrical, magnetic, optical, mechanical, or chemical action. A non-temporary storage medium may include storage media (CDs, DVDs, semiconductor memory, etc.), auxiliary storage devices of a computer, external storage devices connected to a computer, etc.
[0015] For example, a server device according to a second aspect of this disclosure may include a control unit. The control unit may be configured to provide geofence definition data in response to a request from a client device. The geofence definition data may include action data that defines actions in the geofence, and body data that includes identification information for the action data.
[0016] Furthermore, for example, the information processing method relating to the third aspect of this disclosure may be executed by a server device. The information processing method may include providing geofence definition data in response to a request from a client device. The geofence definition data may include action data that defines actions in the geofence, and body data that includes identification information for the action data.
[0017] Hereinafter, embodiments relating to one aspect of this disclosure will be described with reference to the drawings. However, the embodiments described below are merely illustrative in all respects of this disclosure. Various improvements or modifications may be made without departing from the scope of this disclosure. In implementing this disclosure, specific configurations may be adopted as appropriate depending on the embodiment. In this embodiment, the data appearing is described in natural language, but more specifically, it is specified in pseudo-language, commands, parameters, machine code, electrical signals, etc., that can be recognized by machines such as computers.
[0018] [1. Application Examples] Figure 1 schematically shows an example of a scenario to which this disclosure applies. The system S according to this embodiment consists of a server device 1 and a client device 2.
[0019] The server device 1 according to this embodiment is configured to provide geofence definition data 31 in response to a request from a client device 2. The source of the geofence definition data 31 to be provided is not particularly limited and may be provided as appropriate depending on the embodiment. In one example, the server device 1 may be configured to access a database 3 of geofence definition data 30. The geofence definition data 30 is configured to show the definition of a geofence. Accordingly, the geofence definition data 31 to be provided may be obtained from the database 3 (geofence definition data 30).
[0020] Database 3 may be stored in any storage area. In one example, database 3 may be stored in the memory resources of server device 1. This allows server device 1 to be configured to access database 3. In another example, database 3 may be... The data may be stored on an external storage device, such as the storage device of another computer. The storage device of another computer may include a NAS (Network Attached Storage). In this case, the server device 1 may be configured to connect to the external storage device via a network, etc., by providing a module for connecting to the external storage device (such as the communication module 13 in Figure 14). The connection method may be appropriately selected depending on the embodiment. As a result, the server device 1 may be configured to access the database 3 held in the external storage device.
[0021] On the other hand, the client device 2 according to this embodiment is configured to perform geofence determination according to geofence definition data provided by the server device 1. The client device 2 may, as appropriate, request the server device 1 to provide geofence definition data. In response to this request, the server device 1 may appropriately extract geofence definition data 31 that conforms to the request from the database 3. The server device 1 may return the extracted geofence definition data 31 to the client device 2. As a result, the client device 2 can receive geofence definition data 31 from the server device 1.
[0022] Client device 2 may update its stored geofence definition data 32 with the received geofence definition data 31. If there is no existing geofence definition data 32, client device 2 may save the geofence definition data 31 received from server device 1 as is, as geofence definition data 32. If there is existing geofence definition data 32, client device 2 may update its stored geofence definition data 32 by adding the geofence definition data 31 received from server device 1.
[0023] Furthermore, the client device 2 according to this embodiment may be configured to acquire the current location measured by the positioning module 26. In one example, the client device 2 may have the positioning module 26 built-in (i.e., integrated). In another example, the client device 2 may be directly or indirectly connected to an externally deployed positioning module 26. Indirect connection may involve a network (such as a Controller Area Network), other computers, etc. It may be configured by connecting via a computer or similar device.
[0024] The client device 2 may acquire its current location 265, measured by the positioning module 26, at any time. The client device 2 may determine whether the acquired current location 265 is inside or outside the corresponding geofence, according to the geofence definition data 32 it holds. This geofence determination may be performed continuously. If the geofence determination is performed continuously, the client device 2 may further determine the transition state of the target relative to the geofence, according to the previous and current determination results. The types of transition states may be defined as appropriate depending on the embodiment. For example, the types of transition states may include at least one of the following: staying outside the geofence, entering inside the geofence from outside, staying inside the geofence, and exiting outside the geofence from inside. In the following description, determining whether the current location 265 is inside or outside the geofence will also be referred to as "geofence inside / outside determination." Geofence inside / outside determination will also be simply referred to as "geofence determination."
[0025] In one example of this embodiment, the geofence definition data 30(31, 32) may include action data 303 that defines actions in the geofence, and main data 301 that includes identification information (action ID) for the action data 303. By including the identification information (action ID) for the action data 303 in the main data 301, the action data 303 may be linked (associated) with the main data 301.
[0026] In one example of this embodiment, the action data 303 is separated from the main data 301. However, the main data 301 contains the identification information of the action data 303 (action By including an ID, the action data 303 is linked to the main data 301. This ensures accessibility between the main data 301 and the action data 303, while also enabling the reuse of the action data 303. In other words, by associating the action data 303 with another main data, the same action defined by the action data 303 can be set in another geofence. Therefore, according to this example, data duplication for the definition of the same action can be suppressed, thereby reducing the amount of data in the geofence definition data 30 (31, 32). By increasing the reuse rate, the reduction in the amount of data can be promoted.
[0027] Furthermore, in one example of this embodiment, the geofence definition data 30(31, 32) may further include geometry data 305 that defines the geometry that demarcates the geofence area. The main data 301 may further include identification information (geometry ID) of the geometry data 305. By including the identification information (geometry ID) of the geometry data 305 in the main data 301, the geometry data 305 may be linked to the main data 301.
[0028] In this example, similar to the action data 303, the geometry data 305 is also separated from the main data 301. The main data 301 includes the identification information (geometry ID) of the geometry data 305, thereby linking the geometry data 305 to the main data 301. This ensures accessibility between the main data 301 and the geometry data 305, while making the geometry data 305 reusable. In other words, by associating the geometry data 305 with another main data, the geometry (area definition) defined by the geometry data 305 can be applied to another geofence. Therefore, according to this example, when setting multiple geofences in the same area, data duplication for the same area definition (geometry) can be reduced. As a result, the amount of data for the geofence definition data 30 (31, 32) can be reduced.
[0029] [Providing method] The format of the request for geofence definition data by client device 2 is not particularly limited and may be determined as appropriate depending on the embodiment. The method of providing geofence definition data 31 by server device 1 is also not particularly limited and may be determined as appropriate depending on the embodiment, such as the request format from client device 2.
[0030] Figure 2 schematically shows an example of a method for providing geofence definition data 31 according to this embodiment. In one example, the map may be pre-divided into multiple areas. The geofence definition data 30 (31, 32) may be associated with the area of the map to which the defined geofence belongs. The client device 2 may acquire its current location 40 measured by the positioning module 26. The client device 2 may transmit current location information 45 related to the acquired current location 40 to the server device 1. As a result, the client device 2 may request the server device 1 to provide geofence definition data corresponding to its current location 40.
[0031] Server device 1 may receive current location information 45 from client device 2. Depending on the current location information 45, server device 1 may extract geofence definition data 31 from database 3 (geofence definition data 30) associated with at least one of the first area P1 to which the current location 40 belongs and the second area P2 that exists around the first area P1. Server device 1 may return the extracted geofence definition data 31 to client device 2. As a result, client device 2 can receive geofence definition data 31 from server device 1.
[0032] In conventional systems, the server device determines the target geofence and the current position of the client device. The system can be configured to calculate the distance between the geofence and the client device, compare the calculated distance with a threshold, and, based on the result of the comparison, decide whether or not to distribute the geofence definition data to the client device. As the number of geofences and client devices increases, this distance calculation accumulates. This may increase the processing load on the server device. In contrast, in one example of this embodiment, the map is divided into areas, and the geofence definition data 30 is associated with the area to which the geofence to be defined belongs. That is, the geofence definition data 30 is managed on a map area-by-area basis. As a result, the server device 1 can extract the geofence definition data 31 to be distributed to the client device 2 according to the area (first area P1 and second area P2) without having to calculate the distance between the current location 40 of the client device 2 and the geofence. Therefore, according to one example of this embodiment, it is possible to expect a reduction in the processing load on the server device 1 regarding geofence-related processing.
[0033] (Map / Area) Maps (map data MP) may be provided as appropriate. Map data MP may be configured as appropriate to represent a map. Known configurations may be used for the configuration of map data MP. For example, map data MP may be configured to include latitude and longitude coordinate information, road network information, facility information, etc. Road network information may include the ID (road link ID) of each road (road link). Map data MP may be stored in any storage area. Map data MP may be stored in at least one of the memory resources of server device 1, the memory resources of client device 2, and an external storage device.
[0034] In client device 2, map data MP may be used for any purpose, such as displaying a specified area or location, or providing route guidance. If client device 2 does not have map data MP stored in advance and wants to use map data MP for any purpose, it may obtain data for at least the range to be used from at least one of server device 1 and external storage device by any means. Known methods may be used to obtain map data MP. In client device 2, geofence determination processing may be performed in conjunction with processing that uses map data MP, or it may be performed independently of processing that uses map data MP.
[0035] Each area may be defined as appropriate depending on the embodiment. The method of dividing the map is not particularly limited and may be selected as appropriate depending on the embodiment. As shown in Figure 2, in one example, each area may be formed by dividing the map into a mesh. The shape of each area (first area P1, second area P2) may be rectangular. However, the shape of each area is not limited to this example and may be selected as appropriate depending on the embodiment. Any shape other than a rectangle may be used for the shape of each area. The map may be divided by a method other than a mesh. In addition, each area may be managed as appropriate. In one example, each area may be assigned identification information (area ID). Each area may be identified by the assigned area ID. The information for each area may include information indicating the coordinate range along with the area ID. The information for each area may be managed within the map data MP, or it may be managed independently of the map data MP. As long as each area is managed in such a way that the area to which the current location 40 belongs (first area P1) can be identified when the current location 40 is given, the map data MP is not necessarily provided.
[0036] (Current location information) The current location information 45 is not particularly limited and can be appropriately determined depending on the embodiment, as long as it includes information that can identify the first area (first area P1) to which the current location 40 belongs and the surrounding second area (second area P2).
[0037] In one example, the current location information 45 may be configured to indicate the current location 40. The server device 1 may identify the first area and the second area according to the current location 40 indicated by the current location information 45.
[0038] In another example, if client device 2 has access to information about each area, the first area to which the current location 40 belongs may be identified by client device 2. The current location information 45 may be configured to indicate the first area. For example, the current location information 45 may be configured to include at least one of the area ID and coordinate range information of the first area. The coordinate range may be expressed arbitrarily. For example, as illustrated in Figure 2 (Figures 10 and 11 described later), if the area is formed in the shape of a rectangle, the coordinate range may be expressed by a coordinate pair of vertices arranged diagonally, such as the bottom left vertex and the top right vertex. In this case, server device 1 may determine the first area to which the current location 40 belongs in accordance with the current location information 45 received from client device 2. Then, server device 1 may identify the surrounding second areas from the first area indicated by the current location information 45.
[0039] In another example, client device 2 may further specify at least a portion of the surrounding second area. The current location information 45 may be configured to indicate at least a portion of the second area and the first area. For example, the current location information 45 may be configured to include at least one of the area IDs and coordinate ranges of the first and second areas. The coordinate range may represent the first and second areas together, or each area individually. In this case, server device 1 may determine the first area to which the current location 40 belongs, and at least a portion of the surrounding second area, in accordance with the current location information 45 received from client device 2. If client device 2 has identified a portion of the second area, server device 1 may identify the remaining second area from the first area and the portion of the second area indicated by the current location information 45.
[0040] The current position 40 may be the position measured by the positioning module 26, a position obtained by correcting the measurement results of the positioning module 26 in any way, or a position predicted from the measurement results of the positioning module 26. The same applies to the current position 265. The positioning module 26 may also be deployed to measure the position of any object (including a person). In one example, the positioning module 26 may be deployed on the client device 2 to measure the current position of the client device 2 itself. In another example, the positioning module 26 may be deployed on an object other than the client device 2 (such as a mobile body MB) to measure the current position of the object. The current position 40 of the client device 2 may include the current position of this object other than the client device 2.
[0041] Furthermore, in the example shown in Figure 2, eight second areas (second areas P2) exist around the first area (first area P1). Each second area is defined as an adjacent area that is one area's width away from the first area in each direction. However, the definition of a second area (i.e., the surrounding area) is not limited to this example and may be modified as appropriate depending on the embodiment. A second area may include areas that are not directly adjacent to the first area. For example, a second area may include areas that are two or more areas' width away from the first area in one direction.
[0042] [Geofence] A geofence is an area enclosed by a virtual boundary set on a map. Any action can be taken in response to the detection of an event affecting the area, such as entry into the area. Therefore, in one example, a geofence may be defined by the geometry that demarcates the area (geographical extent) and the actions associated with that area.
[0043] (Geometry) The method for defining the geometry is not particularly limited and may be appropriately selected depending on the embodiment. Known methods may be used to define the geometry. This information may include any information necessary to define the area (geographical extent).
[0044] Figures 3, 4, and 5 schematically show an example of a method for defining the geometry GM (area) of a geofence according to this embodiment. In one example, as shown in Figure 3, the geometry GM may be defined by a center coordinate CC and a radius r. In this case, the geofence area may be defined as a circular area with radius r from the center coordinate CC. The circumference of a circle with radius r centered at the center coordinate CC is the boundary line of the geofence area. If a path RP is given, the intersection point BD of the geofence boundary line and the path RP is the geofence boundary on the path RP. Note that the path RP may be given in any way. The path RP may be, for example, a road, a waterway, an airway, etc. The path RP may be given in real space or virtually. The path RP may be omitted.
[0045] In one example, as shown in Figure 4, the geometry GM may be defined by a sequence of coordinates of feature points FC. In this case, the geofence area may be defined as the extent of a closed polygon formed by connecting adjacent feature points FC. The lines connecting each feature point FC are the boundaries of the geofence area. The pathway RP and boundary (intersection BD) are the same as in the example in Figure 3. Note that in the example in Figure 4, six feature points FC are defined. However, the number of feature points FC is not limited to this example and may be appropriately selected depending on the embodiment. The number of feature points FC may be any number of three or more.
[0046] In one example, as shown in Figure 5, the geometry GM may be defined by a link LC and a distance d from the link LC. In this case, the geofence area may be defined as a capsule-shaped area at a distance d from the link LC. The outer perimeter of the capsule shape at a distance d from the link LC is the boundary line of the geofence area. The pathway RP and boundary (intersection BD) are the same as in the example in Figure 3. Note that the link LC may be defined as appropriate. The link LC may be given as a pathway RP such as a road link, or it may be given independently of the pathway RP. The information of the link LC may be configured as appropriate. For example, the information of the link LC may include identification information such as a link ID. Range information indicating the range of the link LC may be associated with the identification information and stored in an arbitrary memory area. In this way, the information of the link LC may be configured to indirectly indicate the range of the link LC. Alternatively, for example, the information of the link LC may be configured to directly indicate the range of the link LC by including the above range information. For example, the range of the link LC may be defined by endpoints (LC1, LC2). The endpoints (LC1, LC2) may also be called the start point or the end point, respectively. According to this example of geometry GM, by increasing the width of the link LC by a distance d, the geofence determination process (detection of events in the area) can be made easier compared to when the geofence is constructed using only the link LC.
[0047] (Geometry integration) The geofence area may be defined by a single geometry or by multiple geometries. When the area is defined by multiple geometries, the multiple geometries may be merged (combined) as appropriate. The method of merging the geometries is not particularly limited and may be selected as appropriate depending on the embodiment. For example, the merging of geometries may be defined by logical operators such as logical OR, logical AND, or exclusive OR.
[0048] Figure 6 schematically shows an example (logical OR) of the method for integrating geometries (GM1, GM2) according to this embodiment. Figure 6 assumes a scenario in which logical OR is used as the logical operator for integrating the two geometries (GM1, GM2). In this case, the geofence area is defined as an area that includes at least one of geometry GM1 or geometry GM2. If the current location (current location 265) belongs to at least one of the areas of geometry GM1 and geometry GM2, it is determined that the current location is inside the geofence. If the current location does not belong to either area GM1 or geometry GM2, it is determined that the location is outside the geofence. As shown in Figure 6, if a pathway RP is given, the two intersection points BD between the outer perimeter (boundary line) after joining each geometry (GM1, GM2) and the pathway RP become the geofence boundary on the pathway RP.
[0049] Figure 7 schematically shows an example (logical AND) of the method for integrating geometries (GM1, GM2) according to this embodiment. Figure 7 assumes a scenario in which logical AND is used as the logical operator for integrating the two geometries (GM1, GM2). In this case, the geofence area is defined as the overlapping area of geometries GM1 and GM2. If the current location belongs to the area of both geometries GM1 and GM2, it is determined that the current location is inside the geofence. If the current location belongs to the area of only one of geometries GM1 or GM2, or does not belong to either area, it is determined that the current location is outside the geofence. As shown in Figure 7, if a path RP is given, the two intersection points BD between the outer perimeter of the overlapping range of the two geometries (GM1, GM2) and the path RP become the geofence boundary on the path RP.
[0050] Figure 8 schematically shows an example (exclusive OR) of the method for integrating geometries (GM1, GM2) according to this embodiment. Figure 8 assumes a scenario in which exclusive OR is used as the logical operator for integrating the two geometries (GM1, GM2). In this case, the geofence area is defined as the area of only one of geometry GM1 or geometry GM2. If the current location belongs to the area of only one of geometry GM1 or geometry GM2, it is determined that the current location is inside the geofence. If the current location belongs to the area where geometry GM1 and geometry GM2 overlap, or does not belong to either area, it is determined that the current location is outside the geofence. As shown in Figure 8, if a path RP is given, the two intersection points BD between the boundary lines of each geometry (GM1, GM2) and path RP, and the two intersection points BD between the outer perimeter of the overlapping range of the two geometries (GM1, GM2) and path RP become the geofence boundaries on path RP.
[0051] (action) The method for defining an action is not particularly limited and may be appropriately selected depending on the embodiment. Known methods may be used to define an action. For example, an action may be defined by the content of the action and the conditions for its execution. That is, an action may be defined to indicate "when" (execution conditions) and "what" (content of the action) to be performed for a given geographical area (geometry). That is, as shown in Figure 1, in one example, in action data 303, an action may be defined by the content of the action and the conditions for its execution.
[0052] (A) Action details The actions may be determined as appropriate depending on the embodiment, such as the context and purpose of using the geofencing. The actions may include, for example, controlling the operation of a device, generating information, and outputting information. The controlled device may be the client device 2 itself, or any device connected to the client device 2. Controlling the operation of a device may include, for example, operating in a specific mode among multiple modes, executing a predetermined operation, permitting the execution of a predetermined operation, or prohibiting the execution of a predetermined operation. Generating information may include, for example, generating information to be notified to an external computer. Outputting information may include, for example, presenting information to a user or transmitting information to an external computer.
[0053] As shown in Figure 1, in one example, the client device 2 may be deployed on a mobile unit MB. The type of mobile unit MB is not particularly limited as long as it is mobile, and depends on the embodiment. The following may be selected as appropriate. The mobile entity MB may be, for example, a person, a vehicle, an aircraft, a ship, a robotic device, etc. Vehicles may include manually driven vehicles and autonomous vehicles. Vehicles may be selected from, for example, two-wheeled vehicles, three-wheeled vehicles, four-wheeled vehicles, etc. The power source of the vehicle may be selected from, for example, electricity, fuel, etc. If the vehicle is an automobile, the size of the vehicle may be selected from large, medium, semi-medium, regular, large special, small special, etc. If the vehicle is a two-wheeled vehicle, the size of the vehicle may be selected from large, regular, etc. An aircraft may include a drone. If the mobile entity MB is a person, the client device 2 may be any computer carried by the person. If the mobile entity MB is a device such as a vehicle, aircraft, ship, or robotic device, the client device 2 may be any computer deployed in the device at least temporarily. For example, if the mobile entity MB is a vehicle, the client device 2 may be an in-vehicle device mounted on the vehicle, or it may be a terminal device (user terminal, etc.) that is temporarily deployed in the vehicle when a user uses the vehicle. The client device 2 may be a computer that constitutes at least part of the mobile body MB, or it may be a computer connected to the mobile body MB. Alternatively, the client device 2 may be deployed outside the mobile body MB and configured to control the operation of the mobile body MB. In this case, the positioning module 26 may be deployed inside the mobile body MB. When the client device 2 is deployed inside or outside the mobile body MB, the action content may include any action content related to the mobile body MB.
[0054] For example, if the mobile MB is a vehicle, the geofence will be in the Low Emission Zone. It may be installed in the Zone. The vehicle may be a hybrid vehicle. In this case, the The action may include switching the vehicle's operating mode from hybrid mode to EV (Electric Vehicle) mode when the vehicle enters the geofence and the vehicle's operating mode is hybrid mode. Furthermore, if, for example, at least one of the vehicle and client device 2 is equipped with an imaging device, the action may include prohibiting imaging by the imaging device. Also, for example, the action may include notifying an external computer (server, etc.) of the vehicle's movement status. The vehicle's movement status may include, for example, approaching the destination, arriving at the destination, staying at the destination, or departing from the destination. In one example, the vehicle may be a delivery truck, and the destination may be the delivery location (store, etc.). Also, for example, the action may include outputting an advertisement to at least one of the output devices of client device 2 (output device 25 in Figure 15) and an external output device. For example, the external output device may be an output device (display, speaker, etc.) deployed in the vehicle separately from client device 2. The advertisement may include coupon information for discounts at the target store.
[0055] Furthermore, the number of actions defined in the action description may be one or multiple. When multiple actions are defined in the action description, each action may be called a sub-action. The action description may be defined by a combination of multiple sub-actions. When the action description is defined by a combination of multiple sub-actions, each sub-action may be assigned an execution priority. In addition, there may be execution dependencies between at least some sub-actions, such as the execution of a second sub-action being controlled or the execution content of the second sub-action being determined based on the execution result of the first sub-action.
[0056] Furthermore, the action content may be determined statically in advance, or it may be determined dynamically according to predetermined conditions. Dynamic determination of the action content may be based on various conditions such as time of day, date, weather, presence or absence of an event, user status, and status of the device (client device 2, mobile device MB, vehicle, etc.). As an example, the action content may be defined to output advertisements according to the time of day (e.g., outputting cafe advertisements in the morning and restaurant advertisements in the evening).
[0057] (B) Action execution conditions Action execution conditions are conditions for determining whether or not to perform an action. Action execution conditions may be defined as appropriate to include conditions related to events on the target geofence. Events on the geofence may be detected as appropriate depending on the result of the geofence inside / outside determination. In a simple example, conditions related to events on a geofence may include at least one of being located inside the geofence and being located outside the geofence. In addition, the progression of the positional relationship to the geofence may be monitored by continuously performing geofence inside / outside determination. Accordingly, in one example, conditions related to events on a geofence may be detected depending on the result of monitoring the progression of the positional relationship to the geofence. For example, events on a geofence may include at least one of staying outside the geofence, entering inside from outside the geofence, staying inside the geofence, and leaving outside from inside the geofence. Staying inside (outside) the geofence may include at least one of staying inside (outside) the geofence for a predetermined time and performing a predetermined movement inside (outside) the geofence.
[0058] The action execution conditions may further include any conditions other than those relating to events on the geofence. For example, the action execution conditions may further include conditions relating to the environment in which the action is executed. The execution environment may include any elements relating to the circumstances under which the action is executed. For example, the execution environment may include dynamic elements such as time of day, date, weather, and the presence or absence of any events. Also, for example, the action execution conditions may further include at least one of conditions relating to the state of the device and conditions relating to the state of the device's user. The device may be client device 2 itself, or any device connected to client device 2. The device may also be a mobile MB. When determining whether any of the conditions are met, client device 2 may appropriately obtain information to be used for the determination from any source of information. For example, if the action execution conditions include conditions relating to the state of the device, client device 2 may determine whether the condition relating to the state of the device is met based on at least one of the information held within its own device and the information obtained from other devices connected to its own device. Other devices may include computers connected via a network, such as external servers. Other devices may include various sensors, such as in-vehicle sensors. The same applies when the action execution conditions include conditions related to the user's state.
[0059] As an example, in the above case where client device 2 is deployed in a vehicle, the action execution conditions may further include conditions related to the vehicle's state, and client device 2 may determine whether the conditions related to the vehicle's state are met based on the vehicle information obtained from the vehicle. For example, with respect to a geofence for a low-emission zone, the conditions related to the vehicle's state may include that the vehicle is in hybrid mode. Accordingly, if the vehicle is in EV mode before entering the geofence, client device 2 may determine that the action execution conditions are not met and omit the execution of the action to switch the vehicle's operating mode to EV mode. Also, for example, the conditions related to the vehicle's (including client device 2) state may include that the imaging device is running. Accordingly, if the imaging device is stopped before entering the geofence, client device 2 may determine that the action execution conditions are not met and omit the execution of the action to prohibit imaging by the imaging device. Also, for example, the conditions related to the vehicle's (including client device 2) state may include that no utterances are being made by applications other than the application of the action to be performed. Accordingly, client device 2 may determine that the action execution conditions are not met while another application is performing an utterance, and may omit the execution of the action. Once the utterance by the other application has finished, client device 2 may determine that the action execution conditions are met and may execute the action defined in the action content.
[0060] Furthermore, after the action execution conditions are met, the action defined in the action content may be executed at any time. For example, the action may be executed immediately when the action execution conditions are met, or it may be executed after a predetermined delay period has elapsed. Also, the number of times the action is executed in response to the fulfillment of the action execution conditions is not particularly limited and may be determined as appropriate depending on the embodiment. For example, the action may be executed only once, or it may be executed repeatedly under predetermined conditions.
[0061] An action execution condition may define one or more conditions. An action execution condition may consist of a combination of multiple conditions. When it consists of a combination of multiple conditions, the action execution condition may be determined to be satisfied depending on whether any of the conditions included in the action execution condition are satisfied. For example, an action execution condition may be determined to be satisfied depending on whether any one of the conditions is satisfied or whether at least two or more conditions are satisfied. Each condition may be assigned a priority. The priority may be set statically or dynamically depending on the execution environment, etc. In this case, the judgment process for each condition may be executed according to the priority. An action execution condition may also be called a trigger event.
[0062] [Geofence Definition Data] The geofence definition data 30 (31, 32) is configured to define geofences (geometry and actions), but its configuration is not particularly limited and may be determined as appropriate depending on the embodiment. For example, the geofence definition data 30 may be configured to include information on geometry and actions.
[0063] Figure 9 schematically shows an example of the configuration of geofence definition data 30(31, 32) according to this embodiment. In one example, geofence definition data 30(31, 32) may include main data 301, action data 303, and geometry data 305. Action data 303 may be configured as appropriate to define actions in the geofence. Geometry data 305 may be configured as appropriate to define the geometry that defines the area of the geofence. Main data 301 may include identification information (action ID, geometry ID) for action data 303 and geometry data 305.
[0064] (Main unit data) The main data 301 may be configured as appropriate to indicate a geofence. In one example, the main data 301 may be configured to indicate the definition of the geofence together with the associated action data 303 and geometry data 305 by including identification information (action ID, geometry ID) for the action data 303 and geometry data 305. As shown in Figure 9, in one example of this embodiment, the main data 301 may include fields for storing various information such as main ID, action ID, geometry ID, drawing information, judgment execution conditions, expiration date, and management information. The order of each field is not particularly limited and may be changed as appropriate depending on the embodiment. In one example, one main data 301 may correspond to one geofence.
[0065] The main unit ID may be used to identify a geofence. The main unit ID is an example of identification information in the main unit data 301. The data format of the identification information (main unit ID) is not particularly limited and may be determined as appropriate depending on the embodiment. The value of the main unit ID may be given according to the time when the geofence was registered by the creation of the main unit data 301. The time may include the year, month, and day. The unit of time may be arbitrarily selected. In this way, the main unit ID may be configured so that the registration order can be determined by the value of the main unit ID.
[0066] The Action ID is the action (Action Data 303) applied to the geofence. It is used to identify the action. The action ID is an example of identification information for action data 303. The data format of the action identification information (action ID) is not particularly limited and may be determined as appropriate depending on the embodiment. As shown in Figure 9, in one example of this embodiment, the main data 301 contains the action ID, so the action data 303 identified by the action ID may be linked to the main data 301.
[0067] The geometry ID is used to identify the geometry (geometry data 305) to which the geofence is applied. The geometry ID is an example of identification information for geometry data 305. The data format of the geometry identification information (geometry ID) is not particularly limited and may be determined as appropriate depending on the embodiment. As shown in Figure 9, in one example of this embodiment, the main data 301 contains the geometry ID, so that the geometry data 305 identified by the geometry ID is linked to the main data 301.
[0068] Here, as described above, in one example, the geofence area may be defined by one geometry or by multiple geometries (Figures 6 to 8). Accordingly, including identification information for geometry data 305 may consist of including identification information for each of the geometry data 305 of one or more geometries. If identification information for each of the geometry data 305 of multiple geometries is included, the main data 301 may further include logical operators used to integrate the multiple geometries.
[0069] In the example shown in Figure 9, one or more geometry IDs may be stored in the geometry ID field of the main data 301. This allows one or more geometry data 305 to be associated with the main data 301. By including multiple geometry IDs in the main data 301, multiple geometries may be associated with the main data 301 and used to define the area of the geofence. The main data 301 may also include a field for storing logical operators. If the main data 301 includes multiple geometry IDs, this field may store logical operators used when integrating the geometries corresponding to each geometry ID. This allows the main data 301 to include logical operators used for integrating each associated geometry.
[0070] According to one example of this embodiment, the geofence area can be defined using multiple geometry data 305 (multiple geometries). This further enhances the reusability of the geometry data 305, and thus a further reduction in data volume can be expected. In addition, complex area definitions can be easily generated not only by simple area definitions using a single geometry, but also by combining multiple geometries.
[0071] In one example, as shown in Figure 9, if the integration of multiple geometries is permitted, the main data 301 may further include a field for storing the integrated shape formed by integrating multiple geometries using logical operators. This means that if the main data 301 includes the geometry ID (identification information) of each of the geometry data 305, the main data 301 may further include the integrated shape formed by integrating the multiple geometries. The integrated shape may be used for any purpose, such as distance calculation. According to this example, by including the integrated shape in the main data 301, it becomes unnecessary to perform the geometry integration operation each time a geofence is used. This is expected to improve processing efficiency.
[0072] The drawing information is used to draw geofences on the map. In one example of this embodiment, the main data 301 may further include drawing information for drawing geofences on the map in the client device 2, by having a field for storing this drawing information. As described above, in the client device 2, the map may be used for any purpose such as displaying a specified area or location, or providing route guidance. Map data MP is used for drawing the map. It may be done. Drawing information may include any information used to draw geofences on a map. For example, drawing information may include information such as a representative point (coordinates, etc.), name, and drawing attributes. Drawing attributes may include on / off display of the geofence, fill color, border color, transparency, and icon attributes. Icon attributes may include on / off display of the icon and content information (location of the icon image, etc.). The representative point may be used as the point where the icon is displayed. In one example of this embodiment, the geometry data 305 that defines the geometry is separated from the main data 301, while the drawing information is retained in the main data 301. As a result, the client device 2 can draw geofences by referring to the drawing information in the main data 301 without referring to the geometry data 305. Therefore, according to one example of this embodiment, it is possible to expect improved efficiency in the process of drawing geofences.
[0073] The judgment execution condition is used to select whether or not to execute the geofence determination process. In one example of this embodiment, the main data 301 may further include a judgment execution condition for selecting whether or not to execute the geofence determination, by having a field for storing this judgment execution condition. While the action execution condition specifies whether or not to execute an action after performing a geofence inside / outside determination, the judgment execution condition specifies whether or not to perform a geofence inside / outside determination in the first place. According to one example of this embodiment, it is possible to decide whether or not to execute the geofence determination by referring to the judgment execution condition in the main data 301, without referring to the action data 303 (and geometry data 305). This is expected to improve the efficiency of the geofence determination process.
[0074] The judgment execution conditions are not particularly limited and may be set as appropriate depending on the embodiment. The judgment execution conditions may be set for static information or for dynamic information such as the execution environment. Static information may include, for example, the type of mobile MB (vehicle type, etc.) and user attributes. User attributes may include, for example, the user's age and gender. In one example, in the above case where the client device 2 is deployed in a vehicle, the judgment execution conditions may specify whether or not to perform a geofence inside / outside determination according to the vehicle information obtained from the vehicle. In another example, the judgment execution conditions may include a hysteresis condition that specifies that after performing an inside / outside determination, a dead zone (hysteresis) of a predetermined distance is set and the inside / outside determination process is not performed again until that distance has been traveled. By including this hysteresis condition in the judgment execution conditions, it is possible to suppress the frequent execution of determination processes near the geofence boundary.
[0075] The expiration date indicates the period during which the geofence defined by the geofence definition data 30(31, 32) is valid. In one example of this embodiment, the main data 301 may further include the geofence expiration date by providing a field for storing this expiration date. According to this example of the embodiment, the period for which the geofence is applied can be specified by the expiration date included in the main data 301. Furthermore, it is possible to determine whether the geofence is valid or not by referring to the expiration date in the main data 301, without referring to the action data 303 and geometry data 305. This is expected to improve the efficiency of the process for verifying the validity of the geofence.
[0076] The management information may include any information used for the operation of the main data 301. For example, the management information may include the creation time, update time, etc. The time may include the year, month, and day. The unit of time may be arbitrarily selected. The creation time may indicate the time when the main data 301 was created. The update time may indicate the time when the geofence definition data 30(31, 32) was updated. For example, the update time may indicate when at least one of the main data 301, the associated action data 303, and the associated geometry data 305 was updated. It may be configured to indicate the time. In this example, the main data 301 may further include an overall update time indicating the time when at least one of the main data 301, action data 303, and geometry data 305 was updated. According to this example, by aggregating the update times in the main data 301, it becomes possible to determine whether at least one of the main data 301, action data 303, and geometry data 305 has been updated simply by referring to the main data 301, without referring to the action data 303 and geometry data 305. This is expected to improve the efficiency of the process when determining whether the geofence definition data 30(31, 32) has been updated. However, the update time included in the main data 301 is not limited to this example and may be changed as appropriate depending on the embodiment. In another example, the update time may be configured to indicate the time when the main data 301 was updated, without indicating the time when the action data 303 and geometry data 305 were updated. In yet another example, the main data 301 may include the overall update time and the individual update times of the main data 301 separately.
[0077] Regarding the specific configuration of the main data 301, depending on the embodiment, components can be omitted, replaced, and added as appropriate. For example, at least one of the logical operators, integrated shapes, drawing information, judgment execution conditions, expiration dates, and management information may be omitted. Drawing information, judgment execution conditions, and expiration dates may be stored in at least one of the action data 303 and geometry data 305. At least one of the creation time and update time may be stored separately from the management information. At least one of the creation time and update time may be omitted in the management information. The management information may further include other information other than the creation time and update time (e.g., creator, updater, deletion time, deleter, etc.). The main data 301 may further include other information such as the action category, whether or not to publish, and the type of client device 2 to which the geofence definition data is provided.
[0078] (Action data) The action data 303 may be configured as appropriate to indicate the defined action by including definition information for the action. As shown in Figure 9, in one example of this embodiment, the action data 303 may include fields for storing various information such as action ID, action execution conditions, action content, and management information. The order of each field is not particularly limited and may be changed as appropriate depending on the embodiment. In one example, one action data 303 may correspond to one action definition.
[0079] The action ID is used to identify action data 303. The action execution conditions define the conditions under which the action is performed. The action content defines the content of the action to be performed. The action execution conditions and action content may be defined as described above. The action execution conditions and action content are examples of action definition information. The management information may include any information used for the operation of action data 303. The management information for action data 303 may be structured similarly to the management information for main data 301, except that the target is replaced from main data 301 to action data 303. For example, the management information may include creation time, update time, etc. The creation time may indicate the time when action data 303 was created. The update time may indicate the time when action data 303 was updated.
[0080] Regarding the specific configuration of the action data 303, depending on the embodiment, components can be omitted, replaced, and added as appropriate. For example, management information may be omitted. At least one of the creation time and update time may be kept separately from the management information. At least one of the creation time and update time may be omitted in the management information. Management information may further include other information besides the creation time and update time (e.g., creator, updater, deletion time, deleter, etc.). The action data 303 may include, for example, the action category and name. It may also include other information such as names.
[0081] (Geometry data) The geometry data 305 may be configured as appropriate to indicate the geometry to be defined by including geometry definition information (information that defines an area). As shown in Figure 9, in one example of this embodiment, the geometry data 305 may include fields for storing various information such as geometry ID, area ID, geometry (definition information), and management information. The order of each field is not particularly limited and may be changed as appropriate depending on the embodiment. In one example, one geometry data 305 may correspond to one geometry definition.
[0082] The geometry ID is used to identify the geometry data 305. The geometry (definition information) defines the area of the geofence. In one example, the geometry may be defined in the above way, such as a circle (Figure 3), a polygon (Figure 4), or a link (Figure 5). The area ID is used to identify an area on the map. The area ID is an example of area identification information. The data format of the area identification information (area ID) is not particularly limited and may be determined as appropriate depending on the embodiment. The area ID stored in the area ID field is the area ID of the area to which the geometry defined by the information in the geometry field belongs. In one example of this embodiment, since the geometry data 305 includes an area ID, the geofence definition data 30 (31, 32) may be associated with the area on the map to which the defined geofence belongs. If the defined geometry belongs to multiple areas, the area ID field may store multiple area IDs (the area ID of each of the multiple areas to which the geometry belongs). The management information may include any information used for the operation of the geometry data 305. The management information for geometry data 305 may be structured similarly to the management information for main data 301, etc., except that the target may be replaced. For example, the management information may include the creation time, update time, etc. The creation time may indicate the time when geometry data 305 was created. The update time may indicate the time when geometry data 305 was updated.
[0083] Regarding the specific configuration of the geometry data 305, depending on the embodiment, components can be omitted, replaced, and added as appropriate. For example, the area ID may be stored in other data (such as the main data 301) and may be omitted from the geometry data 305. Also, for example, management information may be omitted. At least one of the creation time and update time may be stored separately from the management information. At least one of the creation time and update time may be omitted in the management information. The management information may further include other information other than the creation time and update time (for example, creator, updater, deletion time, deleter, etc.). The geometry data 305 may further include other information such as the action category and name.
[0084] (Association of geofence definition data) The geofence definition data (30-32) may be associated with one or more areas as appropriate, depending on the positional relationship between the geofence being defined and each area. For example, if the geofence being defined is contained within one area, the corresponding geofence definition data may be associated with the single area containing the geofence being defined. If the geofence being defined spans multiple areas, the corresponding geofence definition data may be associated with all the areas that the geofence spans.
[0085] Figures 10 and 11 schematically show an example of how geofences (GF11, GF12) are associated with each area (P11-P19) on the map. In the example in Figure 10, geofence GF11 is contained within area P15. In this case, the geofence definition data that defines geofence GF11 may be associated with area P15. In the example in Figure 11, geofence GF12 spans four areas (P15, P16, P18, P19). In this case, the geofence definition data that defines geofence GF12 may be associated with the four areas ( Pages P15, P16, P18, and P19 can all be related.
[0086] Returning to Figure 9, as described above, in this example of the embodiment, the geofence area may be defined by geometry data 305 (geometry) linked to the main data 301. The geofence definition data 30(31, 32) may be associated with the corresponding area by including an area ID corresponding to the area to which the area defined by the geometry belongs. When the geofence area is defined by integrating multiple geometries, the area to which the defined area belongs (the area to which the geofence definition data is associated) may be appropriately identified from the area to which each geometry belongs.
[0087] For example, when integrating multiple geometries using a logical OR operation, the area defined by the multiple geometries belongs to all the regions to which each geometry belongs. Therefore, the region to which the defined area belongs can be identified by merging the values of the region ID fields (region IDs included in each geometry data 305) of the multiple geometry data 305 linked to the main data 301.
[0088] Furthermore, if there is overlapping range for each geometry and multiple geometries are combined using a logical AND operation, the area defined by the multiple geometries will belong to at least one of the overlapping areas among the areas to which each geometry belongs. Therefore, the area to which the defined area belongs may be identified from among the overlapping area IDs included in each of the multiple geometry data 305 linked to the main data 301. The area to which the overlapping range of each geometry belongs may be identified by any method.
[0089] Furthermore, if there is overlapping ranges among the geometries and multiple geometries are merged using exclusive OR, the area defined by the multiple geometries may no longer belong to at least one of the overlapping areas among the areas to which each geometry belongs. Specifically, if each geometry completely encompasses the target area, the area defined by merging them using exclusive OR will no longer belong to the target area. Therefore, the area to which the defined area belongs may be identified by excluding the area ID of the area that will no longer belong due to the exclusive OR merge from the area IDs contained in each of the multiple geometry data 305 linked to the main data 301. The area that will no longer belong due to the exclusive OR merge (the area to be excluded) may be identified by any method.
[0090] For example, when using at least one of logical AND and exclusive OR, the area to which the defined area belongs (area ID) may be identified by integrating each geometry with the logical operator and comparing the area defined by the integration with the coordinate range of each area. In one example, similar to the integrated shape, the area ID of the area to which the area defined by integrating each geometry (integrated shape) belongs may be stored in the main data 301, etc. In this case, the area to which the integrated area belongs can be identified by the area ID stored in the main data 301. This is expected to improve the efficiency of the process related to identifying the associated area of the geofence definition data 30.
[0091] (An example of the reference procedure during extraction) When extracting geofence definition data 31 associated with at least one of the first area P1 and the second area P2, each field of the geofence definition data 30 (main data 301, action data 303, and geometry data 305) may be referenced as appropriate.
[0092] As an example, in the first step, the server device 1 may identify the first area P1 and the second area P2 from the current location information 45 received from the client device 2. As described above, the process of identifying each area (P1, P2) from the current location 40 is carried out by the server device 1 and the client device 2. This may be performed in at least one of the following cases. When client device 2 performs the process of identifying each area (P1, P2) from its current location 40, server device 1 may identify each area (P1, P2) by referring to the current location information 45 received from client device 2.
[0093] In the second step, the server device 1 may search for geometry data 305 in the database 3 using the area IDs of the identified areas (P1, P2) as queries. This search extracts geometry data 305 of geometries belonging to at least one of the first area P1 and the second area P2.
[0094] In the third step, the server device 1 may use the geometry ID (identification information) of the extracted geometry data 305 as a query to search the database 3 for the main data 301 associated with the extracted geometry data 305. This search will extract the main data 301 that indicates a geofence belonging to at least one of the first area P1 and the second area P2. Note that there may be main data 301 associated with multiple geometry data 305 (i.e., main data 301 that indicates a geofence of an area defined by multiple geometries) among the extracted main data 301. In this case, the server device 1 may verify whether the area defined after the integration of multiple geometries belongs to at least one of the first area P1 and the second area P2. This verification may be performed as a process on the database 3. If the verification determines that the area defined after the integration of multiple geometries does not belong to either the first area P1 or the second area P2, the corresponding main data 301 may be excluded from the extraction results.
[0095] In the fourth step, the server device 1 may use the action ID (identification information) contained in the extracted main data 301 as a query to search the database 3 for action data 303 associated with the extracted main data 301. As a result of this search, geofence definition data 31 is obtained, which consists of main data 301, action data 303, and geometry data 305. In one example of this embodiment, if the geometry is common between the first geofence and the second geofence, the same geometry data 305 is used to constitute both the first geofence definition data and the second geofence definition data. That is, the geometry data 305 is shared between the first geofence definition data and the second geofence definition data. Similarly, if the actions are common between the first geofence and the second geofence, the action data 303 is shared between the first geofence definition data and the second geofence definition data. This makes it possible to reduce the amount of data in the geofence definition data 31.
[0096] In the fifth step, the server device 1 may return the obtained geofence definition data 31 (main data 301, action data 303, and geometry data 305) to the client device 2. This allows the geofence definition data 31 to be provided to the client device 2.
[0097] (An example of a reference procedure when determining whether something is internal or external) Furthermore, when the client device 2 performs geofence inside / outside determination, each field of the geofence definition data 32 (main data 301, action data 303, and geometry data 305) may be referenced as appropriate.
[0098] For example, in the first step, the client device 2 may determine whether or not the execution conditions of the main data 301 are met. In the second step, for geofences that are determined to meet the execution conditions, the client device 2 refers to the geometry ID (identification information) of the main data 301 and accesses the geometry data 305 associated with the main data 301. Good. The client device 2 may refer to the geometry of the geometry data 305 and determine whether the current position 265 is inside or outside the area defined by the geometry. In one example of this embodiment, this determination process corresponds to determining whether the location is inside or outside a geofence.
[0099] In one example, if multiple geometry data 305 are linked to main data 301, the client device 2 may identify the geofence area by integrating the geometry of each of the multiple geometry data 305 using the logical operators of the main data 301. The client device 2 may then determine whether the current position 265 is inside or outside the identified area. In another example, if the information of the area defined after the integration of multiple geometries is stored as an integrated shape in the main data 301, the client device 2 may omit accessing the geometry data 305. In this case, the client device 2 may refer to the integrated shape in the main data 301 and determine whether the current position 265 is inside or outside the area defined after the integration.
[0100] In this embodiment, for geofences that do not belong to the area to which the current location 265 belongs, the client device 2 can determine that the current location 265 is outside the geofence (the area defined by the geometry) without referring to the geometry. For example, in the second step, the client device 2 may refer to the information of each area to identify the area to which the current location 265 belongs. The client device 2 may determine whether the target geofence is associated with the area to which the current location 265 belongs, according to the area ID of the geometry data 305. If multiple geometry data 305s are linked to the main data 301, the client device 2 may determine whether the target geofence is associated with the area to which the current location 265 belongs, according to the area to which the area defined by integrating each geometry belongs. If the target geofence is not associated with the area to which the current location 265 belongs, the client device 2 may omit the referencing of the geometry and determine that the current location 265 is outside the geofence. On the other hand, if the target geofence is associated with the area to which the current location 265 belongs, the client device 2 may determine whether the current location 265 is inside or outside the geofence by referring to the geometry as described above. This allows the client device 2 to narrow down the target of inside / outside determination by comparison with the area defined by the geometry to geofences associated with the area to which the current location 265 belongs. As a result, the efficiency of the inside / outside determination process can be expected to be improved.
[0101] In the third step, client device 2 may refer to the action ID (identification information) of the main data 301 and access the action data 303 associated with the main data 301. Then, client device 2 may determine whether or not the action execution conditions of the action data 303 are met. In the fourth step, for geofences that are determined to meet the action execution conditions, client device 2 may execute the action defined by the action content of the action data 303.
[0102] (others) The data format of the geofence definition data 30(31, 32) is not particularly limited and may be appropriately selected depending on the embodiment. Also, the data structure of the geofence definition data 30(31, 32) (main data 301, action data 303, geometry data 305) may be appropriately modified depending on the embodiment.
[0103] For example, in the example shown in Figure 9, the action data 303 and geometry data 305 are separated from the main data 301. However, the configuration of the geofence definition data 30(31, 32) is not limited to this example. In another example, only one of the action data 303 or geometry data 305 is separated from the main data 301. The other may be included in (or incorporated into) the main data 301. For example, only the action data 303 may be separated from the main data 301, while the geometry data 305 may be included in the main data 301. Or, only the geometry data 305 may be separated from the main data 301, while the action data 303 may be included in the main data 301.
[0104] Furthermore, for example, in the example shown in Figure 9, the association of geofences to each area is managed by including the area ID in the geometry data 305. However, this method of managing associations is not limited to this example and may be modified as appropriate depending on the embodiment. In another example, list data may be generated that shows a list of geofence definition data 30 belonging to each area for each area. The list data may be stored in any storage area. The list data may be updated when geofence definition data 30 is generated by registering the identification information (main ID, etc.) of the generated geofence definition data 30 in the list of areas to which the corresponding geofence belongs. In this case, the server device 1 may obtain the identification information of the geofence definition data 31 associated with at least one of the first area P1 and the second area P2 by appropriately referring to the list data. The server device 1 may then extract the geofence definition data 31 by searching the database 3 with the obtained identification information.
[0105] Based on the above, one form of this disclosure may be a data structure for geofence definition data (30, 31, 32). The geofence definition data (30, 31, 32) may comprise body data 301 and action data 303. The body data 301 may comprise a first field and a second field. The first field of the body data 301 may store identification information (body ID) for allowing a computer to identify the geofence. The second field of the body data 301 may store identification information (action ID) for the action data 303 for allowing a computer to access the associated action data 303. The action data 303 may comprise fields for storing action definition information (action execution conditions, action content) for allowing a computer to execute the actions set for the geofence.
[0106] In this configuration, for example, the geofence definition data (30, 31, 32) may further include geometry data 305. The main data 301 may further include a third field that stores identification information (geometry ID) for the geometry data 305, which allows the computer to access the associated geometry data 305. The geometry data 305 may include a field that stores geometry (definition information) for defining the geofence area, which allows the computer to define the area. In another example, the third field of the main data 301 may store identification information for one or more geometries. When the third field stores identification information for multiple geometries, the main data 301 may further include a fourth field that stores a logical operator for the computer to perform an operation to integrate the multiple geometries.
[0107] Furthermore, one form of this disclosure may be a data structure for geofence definition data (30, 31, 32). The geofence definition data (30, 31, 32) may comprise body data 301 and geometry data 305. The body data 301 may comprise a first field and a second field. The first field of the body data 301 may store identification information (body ID) for allowing a computer to identify the geofence. The second field of the body data 301 may store identification information (geometry ID) for the geometry data 305 for allowing a computer to access the associated geometry data 305. The geometry data 305 may comprise a field for storing geometry (definition information) for allowing a computer to define the area of the geofence.
[0108] In this configuration, for example, the geofence definition data (30, 31, 32) may further include action data 303. The main data 301 may further include a third field that stores identification information (action ID) of the action data 303 for the computer to access the associated action data 303. The action data 303 may include fields that store action definition information (action execution conditions, action content) for the computer to execute the action set on the geofence. Also, for example, the second field of the main data 301 may store identification information for one or more geometries. When the second field stores identification information for multiple geometries, the main data 301 may further include a fourth field that stores a logical operator for the computer to execute an operation to integrate the multiple geometries.
[0109] Furthermore, when adopting any of the above configurations, the main data 301 may further include a fifth field for storing drawing information for the computer to draw geofences on the map.
[0110] Furthermore, when any of the above configurations is adopted, the main data 301 may further include a sixth field that stores a determination execution condition for causing the computer to select whether or not to perform a geofence determination.
[0111] Furthermore, when any of the above configurations are adopted, the main data 301 may further include a seventh field that stores the validity period for the computer to determine whether or not the geofence is effective.
[0112] Furthermore, when any of the above configurations is adopted, the main unit data 301 may further include an eighth field that stores the overall update time, allowing the computer to recognize the time when at least one of the main unit data 301, action data 303, and geometry data 305 was updated.
[0113] [Update retained data] As the provision of geofence definition data 31 corresponding to the current location 40 from server device 1 to client device 2 is repeatedly performed, client device 2 may update the geofence definition data 32 it holds. When the provision of geofence definition data 31 is repeated, at least a portion of the geofence definition data 32 already held by client device 2 from past provision may be extracted from database 3 as at least a portion of the candidate geofence definition data 31 for the current provision.
[0114] In one example, the provision of geofence definition data 31 may be carried out while allowing duplication with the geofence definition data 32 already held by the server device 2. That is, the server device 1 may provide the geofence definition data extracted from the database 3 as geofence definition data 31 to the client device 2 without excluding geofence definition data that duplicates the geofence definition data 32 held by the client device 2.
[0115] In another example, the server device 1 may exclude geofence definition data extracted from the database 3 that overlaps with the geofence definition data 32 held by the client device 2. The server device 1 may then provide the remaining geofence definition data, after excluding the overlapping data, to the client device 2 as geofence definition data 31. The method for excluding overlapping geofence definition data may be determined as appropriate depending on the embodiment.
[0116] Figure 12 schematically shows an example of a scenario in which the geofence definition data 32 held in the client device 2 according to this embodiment is updated. The example in Figure 12 assumes a scenario in which the provision method in Figure 2 is adopted. At time t, the area P35 to which the current position 403 belongs is the first area P1, and the areas surrounding area P35 (P31~P34, P36~P39) are the second area P2. It is assumed that the provision of geofence definition data 31 from the server device 1 to the client device 2 has been executed, and the client device 2 holds geofence definition data 320 associated with at least one of each area P31~P39. The geofence definition data 320 is an example of the geofence definition data 32 held by the client device 2 at time t. Furthermore, at time t+1, the current position 405 moves into area P33, so that area P33 becomes the first area P1, area P35 becomes the second area P2, areas P32 and P36 remain in the second area P2, and among the areas surrounding area P33 (P32, P35, P36, P51~P55), area (P51~P55) becomes the new second area P2, and areas (P31, P34, P37, P38, P39) move out of the second area P2. Current position 403 is an example of current position 40 at time t. Current position 405 is an example of current position 40 at time t+1.
[0117] In one example, when client device 2 transmits current location information 45 regarding its current location 405(40), it may also transmit a list 455 of geofence definition data 320(32) held by its device. That is, the transmission of current location information 45 by client device 2 may include the transmission of a list 455 of the geofence definition data 320(32) it holds. In the scenario of Figure 12, list 455 may consist of a list of geofence definition data associated with at least one of areas P31 to P39. List 455 may also consist of a list of geofence definition data associated with at least one of areas (P32, P33, P35, P36), excluding areas outside the second area P2 (P31, P34, P37, P38, P39). In other words, List 455 may consist of a list of remaining geofence definition data after excluding geofence definition data from the held geofence definition data 320 that are not associated with at least one of the areas (P32, P33, P35, P36) that remain as either the first area P1 or the second area P2, and that are associated with at least one of the areas (P31, P34, P37, P38, P39) that are outside of the first area P1 or the second area P2. Within the list, the geofence definition data may be represented as appropriate. For example, List 455 may consist of a list of the main IDs of the geofence definition data.
[0118] In response, server device 1 may receive list 455. Server device 1 may extract geofence definition data 310 associated with at least one of the first area P1 (area P33) and the second area P2 (P32, P35, P36, P51~P55) from database 3 according to the current location information 45. Server device 1 may exclude the geofence definition data 311 registered in list 455 from the geofence definition data 310 extracted from database 3. Then, server device 1 may return the remaining geofence definition data 315, after excluding the geofence definition data 311 registered in list 455, to client device 2. The returned geofence definition data 315 is an example of geofence definition data 31.
[0119] In other words, receiving the current location information 45 by the server device 1 may include receiving the list 455. The server device 1 returning the extracted geofence definition data 31 may consist of excluding the geofence definition data 311 registered in the list 455 from the geofence definition data 310 extracted from the database 3, and returning the remaining geofence definition data 315(31) after excluding the geofence definition data 311 registered in the list 455. In the example in Figure 12, the geofence definition data associated with at least one of the areas (P32, P33, P35, P36) is It may be excluded as geofence definition data 311. Geofence definition data associated with at least one of the areas P51 to P55 that were newly added as the second area P2 at time t+1, and new geofence definition data associated with at least one of the areas (P32, P33, P35, P36) may be provided to the client device 2 as geofence definition data 315.
[0120] According to one example of this embodiment, the efficiency of communication processing can be expected to be improved by omitting the transmission of duplicate geofence definition data 311. Furthermore, since duplicate geofence definition data 311 is identified in the list 455 provided by each client device 2, the server device 1 does not need to reserve memory space for continuously managing the geofence definition data 320 (32) held by each client device 2. This makes it possible to improve the efficiency of the memory resources of the server device 1. Note that the method for excluding duplicate geofence definition data is not limited to the example in Figure 12 and may be appropriately changed depending on the embodiment. In another example, when the server device 1 provides geofence definition data 31 to the client device 2, it may generate the list 455 by registering the geofence definition data 31 to be provided in the list 455. In this way, the server device 1 may manage the list 455 of geofence definition data 32 held by each client device 2.
[0121] (Provision of updated data) After being provided to client device 2, the geofence definition data may be updated (for example, changes to actions, modifications to geometry, etc.). It is preferable that the updated geofence definition data in the geofence definition data 32 held by client device 2 is not excluded from the data to be provided and is provided to client device 2. Therefore, in one example of this embodiment, server device 1 may perform the above process to provide geofence definition data 315(31) without excluding the updated geofence definition data from the geofence definition data registered in list 455 from the extracted geofence definition data 310. The method for providing the updated geofence definition data may be appropriately determined depending on the embodiment.
[0122] As an example, when client device 2 receives geofence definition data 320(32) from server device 1, it may record the acquisition time of the geofence definition data 320(32) in a memory resource. The acquisition time may include the year, month, and day. The unit of the acquisition time may be arbitrarily selected. Accordingly, list 455 may include the acquisition time of the geofence definition data 320(32) by client device 2. Server device 1 may use the acquisition time to determine whether there has been an update to the geofence definition data that overlaps between the geofence definition data 310 extracted from database 3 and the geofence definition data registered in list 455. The method for determining whether there has been an update may be appropriately determined depending on the embodiment. For example, if the main data 301 includes the overall update time, server device 1 may determine whether there has been an update to the geofence definition data by comparing the overall update time (value of the update time field) of the main data 301 with the acquisition time. The relationship between the comparison result and the determination result may be appropriately defined depending on the embodiment. For example, if the overall update time is before the acquisition time, the server device 1 may determine that there has been no update to the geofence definition data, and if the overall update time is after the acquisition time, it may determine that there has been an update to the geofence definition data. Also, for example, if the main data 301, action data 303, and geometry data 305 each include an update time, the server device 1 may determine whether or not there has been an update to any of the three types of data (301, 303, 305) by comparing the update time (value of the update time field) of each of the three types of data (301, 303, 305) with the acquisition time. The relationship between the comparison result and the determination result may be the same as described above.
[0123] In other words, the geofence definition data 310 extracted from the list 455 Excluding the offense definition data 311 may consist of determining whether or not there has been an update to the geofence definition data registered in list 455, depending on the acquisition time, and excluding the geofence definition data 311, which was determined not to have been updated, from the extracted geofence definition data 310, while not excluding the geofence definition data 312 that was determined to have been updated among the geofence definition data registered in list 455.
[0124] The updated geofence definition data 312 is at least a part of the geofence definition data 30 associated with at least one of the areas (P32, P33, P35, P36) that remain as either the first area P1 or the second area P2. As a result, geofence definition data 315, including the updated geofence definition data 312, is sent back from server device 1 to client device 2. If only parts of the main data 301, action data 303, and geometry data 305 have been updated, server device 1 may send back only the updated data among the three types of data as geofence definition data 315. For example, if only the action data 303 has been updated, server device 1 may send back only the action data 303 as geofence definition data 315. Alternatively, server device 1 may send back geofence definition data 315 including the data that has not been updated.
[0125] According to one example of this embodiment, updated geofence definition data 312 can be provided to the client device 2 from among the geofence definition data 320(32) held by the client device 2. This allows the geofence definition data 32(325) held by the client device 2 to be properly updated.
[0126] The method for determining whether an update has occurred is not limited to the acquisition time and may be appropriately modified depending on the embodiment. In another example, the geofence definition data 30(31, 32) may include version information. The version information may be stored in at least one of the main data 301, action data 303, and geometry data 305. The server device 1 may determine whether an update has occurred in the geofence definition data by comparing the version information between the geofence definition data 310 extracted from the database 3 and the geofence definition data registered in list 455. If the version information is different, the server device 1 may determine that an update has occurred in the geofence definition data, and if the version information matches, it may determine that there has been no update to the geofence definition data. In yet another example, the server device 1 may determine whether an update has occurred in the geofence definition data by comparing the update times between the geofence definition data 310 extracted from the database 3 and the geofence definition data registered in list 455. Server device 1 may determine that the geofence definition data has been updated if the update times differ, and may determine that the geofence definition data has not been updated if the update times match.
[0127] (Deletion of retained data) In one example, client device 2 may delete geofence definition data 321 that is not associated with areas (P32, P33, P35, P36) that remain in at least one of the first area P1 and the second area P2, and is associated with at least one of the areas (P31, P34, P37, P38, P39) that are outside of the first area P1 and the second area P2. The form of deletion may be arbitrarily selected. Known forms of deletion may be adopted. For example, deletion may consist of completely erasing the data, or making it overwritable with other data, etc.
[0128] In the example shown in Figure 12, client device 2 removes geofence definition data 321 from the geofence definition data 320 held at time t, and adds geofence definition data 315 provided by server device 1, thereby reducing the number of geofence definition data held to t+1 The geofence definition data 325 may be updated to reflect the current geofence definition data at time t+1. The geofence definition data 325 is an example of the geofence definition data 32 held by the client device 2 at time t+1. The client device 2 may not delete, but instead retain, the action data 303 and geometry data 305 that are shared with the geofence definition data 321 to be deleted, specifically those associated with at least one of the areas (P32, P33, P35, P36) that remain in either the first area P1 or the second area P2.
[0129] The timing of the deletion can be determined as appropriate depending on the embodiment. For example, the client device 2 may delete the geofence definition data 321 for areas outside the first area P1 and the second area P2 at any time before receiving new geofence definition data 31(315) from the server device 1. For example, the client device 2 may delete the geofence definition data 321 for areas outside the first area P1 and the second area P2 before requesting new geofence definition data 31(315) by sending current location information 45 to the server device 1. This makes it possible to secure memory space to accept new geofence definition data 31(315) (increase free capacity).
[0130] [Priority] In one example of this embodiment, the geofence definition data 30(31, 32) may be assigned a priority. Accordingly, the priority may be utilized in any situation, such as when providing geofence definition data or when performing inside / outside determination. For example, the server device 1 may prioritize returning geofence definition data with a higher priority from among the geofence definition data 31. That is, returning the geofence definition data 31 extracted by the server device 1 to the client device 2 may include prioritizing the return of geofence definition data with a higher priority. The form of priority return may be arbitrarily defined. In one example, priority return may consist of at least one of sending the geofence definition data 31 in order from highest priority to lowest priority, and sending a predetermined number of geofence definition data 31 starting with the highest priority. The predetermined number may be specified as appropriate. According to this example of the embodiment, prioritizing the return of high-priority geofence definition data can ensure the execution of high-priority geofences.
[0131] Figure 13 schematically shows an example of a scenario in which the priority set in the geofence definition data 30 (31, 32) according to this embodiment is utilized. The priority may be set according to any criterion. In one example, the priority may be defined according to at least one of the static and dynamic attributes of the geofence. The priority may also be defined according to a combination of multiple attributes.
[0132] Static attributes are geofence attributes that do not change numerically according to dynamic factors such as the circumstances under which the geofence is used. For example, static attributes may include impact level and registration order. The impact level may be calculated in advance based on criteria given by the geofence administrator (operator, creator, provider, etc.). The criteria may be arbitrarily specified. Changes in impact level due to changes in the criteria may be permitted. For example, a higher impact level may be assigned a higher priority, and a lower impact level may be assigned a lower priority. The registration order of geofences (geofence definition data) may also be specified as appropriate. For example, the registration order may be specified by the main ID. The relationship between registration order and priority can be set arbitrarily. For example, a newer registration may be assigned a higher priority, and an older registration may be assigned a lower priority. Conversely, an older registration may be assigned a higher priority, and a newer registration may be assigned a lower priority. According to one example of this embodiment, static attributes can ensure the execution of high-priority geofences.
[0133] On the other hand, dynamic attributes are geofence attributes whose numerical values can change depending on the dynamic elements. For example, dynamic attributes may include the distance from the current location to the geofence boundary, the update time, user selection, administrator designation, etc. In one example, geofences with a shorter distance from the current location to the geofence boundary (i.e., closer geofences) may be assigned higher priority, and those with a longer distance may be assigned lower priority. In another example, geofences with an update time closer to the current time (more recent updates) may be assigned higher priority, and those with an update time further from the current time may be assigned lower priority. The current time may be the time used to evaluate priority. In yet another example, geofences that have been selected to be accepted by the user may be assigned higher priority, and those that have not been selected to be accepted may be assigned lower priority. Geofence definition data for geofences that have not been selected to be accepted by the user does not have to be provided from server device 1 to client device 2 as geofence definition data 31. Note that the decision of whether or not to accept a target geofence may be made in any way. For example, client device 2 may accept the selection of geofences to be accepted in groups, such as by accepting the specification of the category of action to accept. Furthermore, for example, client device 2 may accept a selection of whether or not to accept each geofence. The selection results may be shared with server device 1 as appropriate. Also, in one example, geofences that have been designated for distribution by the administrator may be given a higher priority, and geofences that have not been designated for distribution may be given a lower priority. Geofence definition data for geofences that have not been designated for distribution by the administrator does not have to be provided from server device 1 to client device 2 as geofence definition data 31. Note that whether or not to distribute a target geofence may be specified by any method. For example, similar to the selection by the user described above, server device 1 may accept a selection of geofences to be distributed on a group basis via the administrator's terminal. Also, for example, server device 1 may accept a selection of whether or not to distribute each geofence. According to one example of this embodiment, the execution of high-priority geofences can be ensured by dynamic attributes.
[0134] In one example, when client device 2 transmits current location information 45, it may also transmit a request number 49 for geofence definition data 31. That is, the transmission of current location information 45 by client device 2 may include the transmission of a request number 49 for geofence definition data 31. Accordingly, server device 1 may receive a request number 49. Server device 1 may return geofence definition data 319 equal to the request number 49 to client device 2, starting with the geofence definition data with the highest priority from among the geofence definition data 310 extracted from database 3. That is, receiving current location information 45 by server device 1 may include receiving a request number 49. The return of geofence definition data 31 extracted by server device 1 to client device 2 may consist of returning geofence definition data 319 equal to the request number 49, starting with the geofence definition data with the highest priority from among the extracted geofence definition data 310. Geofence definition data 319 is an example of the geofence definition data 31 provided.
[0135] In the example shown in Figure 13, we assume a scenario where M geofence definition data entries are extracted from database 3 as geofence definition data 310 associated with at least one of the first area P1 and the second area P2. In this example, M may be the number of geofence definition data entries 310 after excluding the geofence definition data entries 311 registered in list 455. We also assume a scenario where the number of requests from client device 2 is 49, which is N. In this scenario, if M is less than or equal to N, server device 1 may return the extracted geofence definition data 310 to client device 2 as geofence definition data 319 for the number of requests (49). The number of geofence definition data entries 319 returned from server device 1 may be less than the number of requests (49). On the other hand, if M exceeds N, server device 1 may exclude (MN) geofence definition data entries in order of lowest priority, and then return the remaining N geofence definition data entries 319 to client device 2.
[0136] Here, the updated geofence definition data 312 in the example of Figure 12 above may be overwritten with the same data after being provided to the client device 2. Accordingly, the server device 1 does not need to include the updated geofence definition data 312 in the number of requests 49 (N items). The server device 1 may constitute N geofence definition data with geofence definition data other than the updated geofence definition data 312. That is, the server device 1 may count N geofences with geofences that are not associated with existing areas (P32, P33, P35, P36) and are associated with any of the new areas (P51~P55), and new geofences associated with any of the existing areas (P32, P33, P35, P36). Then, the server device 1 may provide the updated geofence definition data 312 and the N geofence definition data to the client device 2 as geofence definition data 319.
[0137] According to one example of this embodiment, the execution of high-priority geofences can be ensured. Furthermore, by limiting the number of geofence definition data 31 (319) returned by the client device 2 to a specified number, the efficiency of communication processing can be expected to be improved.
[0138] The number of requests, 49, can be specified in any way. For example, the number of requests, 49, may be determined according to the available memory resources of client device 2. Accordingly, the number of requests, 49, may be determined appropriately so as not to exceed the available memory resources. For example, client device 2 may determine the number of requests, 49, to be any number less than or equal to "(maximum number of geofences that can be held in memory resources) - (number of geofences to be maintained)". An example of geofences to be maintained is a geofence associated with at least one of the areas (P32, P33, P35, P36) that remain in at least one of the first area P1 and the second area P2 in the example in Figure 12 above. "(maximum number of geofences that can be held in memory resources) - (number of geofences to be maintained)" is an example of available capacity. Before requesting new geofence definition data 31, client device 2 may expand the available memory resources by deleting geofence definition data 321 for areas outside of the first area P1 and the second area P2. This allows for a larger maximum value for the number of requests, 49. The available memory resources may be the available capacity when determining the number of requests, 49, or the available capacity predicted when receiving new geofence definition data, 31. The prediction of available capacity may be performed by any method. According to one example of this embodiment, it is possible to suppress the provision of geofence definition data that becomes unsustainable due to exceeding the memory resources. This can be expected to improve the efficiency of communication processing. However, the method for specifying the number of requests, 49, is not limited to this example and may be changed as appropriate depending on the embodiment. In another example, the number of requests, 49, may be specified by the user.
[0139] In one example, the request number 49 may be configured to directly indicate the number of geofence definition data items being requested. However, in this example, at least one of the action data 303 and geometry data 305 may be shared between corresponding geofence definition data items, as at least one of the action data 303 and geometry data 305 may be shared between different geofences. When at least one of the action data 303 and geometry data 305 is shared, the amount of data between corresponding geofence definition data items is reduced. Also, multiple geometry data items 305 may be associated with one main data item 301. Therefore, each geofence definition data item is not necessarily the same amount of data. In another example, the request number 49 may be configured to indirectly indicate the number of items being requested by the total amount of data of the requested geofence definition data items, etc.
[0140] [Server device / Client device] Server device 1 may consist of one or more servers (computers). If the server 1 is composed of multiple servers, the multiple servers may cooperate with each other to perform information processing of the server 1 of this disclosure. In this case, the multiple servers may be counted as one server 1. The client device 2 may be one or more computers configured to monitor the location of a movable object. The number of server 1 and client device 2 may be determined arbitrarily. Any number of client devices 2 may request one server 1 to provide geofence definition data 31.
[0141] [2 Example Configurations] [Example Hardware Configuration] (Server device) Figure 14 schematically shows an example of the hardware configuration of the server device 1 according to this embodiment. In one example, the server device 1 according to this embodiment may be configured as a computer in which the control unit 11, storage unit 12, and communication module 13 are electrically connected.
[0142] The control unit 11 may include a hardware processor such as a CPU, RAM (Random Access Memory), and ROM (Read Only Memory), and is configured to perform information processing based on a program and various data. The control unit 11 (CPU) is an example of a processor resource.
[0143] The storage unit 12 may include, for example, a hard disk drive, a solid-state drive, or semiconductor memory, and is configured to hold arbitrary data. The storage unit 12, RAM, and ROM are examples of memory resources of the server device 1. In this example, the storage unit 12 may store various information such as the program 81.
[0144] Program 81 is a program that causes server device 1 to perform information processing (Figure 18, described later) related to the provision of geofence definition data to client device 2. Program 81 includes a series of instructions for said information processing.
[0145] In one example, program 81 may be stored in storage medium 91 instead of or together with storage unit 12. Storage medium 91 is configured to store various types of information (stored programs, etc.) by electrical, magnetic, optical, mechanical, or chemical means so that a machine such as a computer can read the information. Storage unit 12 and storage medium 91 are examples of non-temporary storage media. Server device 1 may retrieve program 81 from storage medium 91. Storage medium 91 may be a disk-type storage medium (CD, DVD, etc.) or a non-disk-type storage medium such as semiconductor memory (flash memory, etc.). Any drive device may be used to read the information stored in storage medium 91. The type of drive device may be selected according to storage medium 91. The drive device may be connected to server device 1 in any way. Storage medium 91 may include an external storage device. If server device 1 maintains a database 3, the database 3 may be stored in at least one of storage unit 12 and storage medium 91.
[0146] The communication module 13 is configured to perform wired or wireless communication over a network. The communication module 13 may consist of, for example, a wired LAN (Local Area Network) module, a wireless LAN module, etc. The network standard is not particularly limited and may be appropriately selected depending on the embodiment. For example, the type of network may be appropriately selected from the Internet, wireless communication network, mobile communication network, telephone network, dedicated network, etc. The server device 1 may perform data communication with other computers (for example, client device 2, other external computers, etc.) via the communication module 13.
[0147] Furthermore, regarding the specific hardware configuration of server device 1, depending on the embodiment, Components can be omitted, replaced, and added. For example, the control unit 11 may include multiple hardware processors. Hardware processors include microprocessors, FPGAs (field-programmable gate arrays), DSPs (digital signal processors), and ECUs. The server device 1 may consist of an Electronic Control Unit (ECU), a Graphics Processing Unit (GPU), an Application-Specific Integrated Circuit (ASIC), etc. The server device 1 may further include an input device and an output device. The input device is configured to accept information input. The input device may consist of, for example, a mouse, a keyboard, or an operator. The output device is configured to output information. The output device may consist of, for example, a display or a speaker. The input device and the output device may be integrated at least in part by a touch panel display or the like. The input device and the output device may be connected to the server device 1 as appropriate. The program 81 may be stored in an external storage device such as a NAS. An external storage device is also an example of a non-temporary storage medium. The server device 1 may consist of multiple computers. In this case, the hardware configuration of each computer may or may not be the same. The server device 1 may consist of a computer designed specifically for the services provided, as well as a general-purpose server device, a general-purpose PC (Personal Computer), etc. That's fine.
[0148] (Client device) Figure 15 schematically shows an example of the hardware configuration of the client device 2 according to this embodiment. In one example, the client device 2 according to this embodiment may be configured as a computer in which a control unit 21, a storage unit 22, a communication module 23, an input device 24, an output device 25, and a positioning module 26 are electrically connected.
[0149] The control unit 21 to the communication module 23 and the storage medium 92 of the client device 2 may be configured in the same way as the control unit 11 to the communication module 13 and the storage medium 91 of the server device 1. The control unit 21 (CPU) is an example of the processor resources of the client device 2. The storage unit 22, RAM, and ROM are examples of the memory resources of the client device 2. In this example, the storage unit 22 may store various information such as the program 82 and geofence definition data 32.
[0150] Program 82 is a program that causes client device 2 to perform information processing related to the request for geofence definition data from server device 1 (Figure 18 described later) and information processing related to the determination of whether an area is inside or outside a geofence (Figure 19 described later). Program 82 includes a series of instructions for said information processing. The series of instructions for information processing related to the request for geofence definition data and the series of instructions for information processing related to the determination of whether an area is inside or outside a geofence may be maintained as separate programs.
[0151] In one example, at least one of the program 81 and the geofence definition data 32 may be stored in the storage medium 92 instead of or together with the storage unit 22. The client device 2 may retrieve at least one of the program 81 and the geofence definition data 32 from the storage medium 92. The storage unit 22 and the storage medium 92 are examples of non-temporary storage media.
[0152] Client device 2 may perform data communication with other computers (for example, server device 1, etc.) via communication module 23.
[0153] The input device 24 is configured to accept information input. The input device 24 may consist of, for example, a mouse, keyboard, or controls. The output device 25 is configured to output information. The output device 25 may consist of, for example, a display or speaker. The user can use the input device 24 and the output device 25 to access the client device. The device 2 can be operated. The input device 24 and output device 25 do not have to be directly connected to the client device 2, but may be indirectly connected via at least one of the communication module 23 and the external interface. The external interface may be appropriately configured to connect to an external device by wire or wireless, for example, a USB (Universal Serial Bus) port or a dedicated port. The input device 24 and output device 25 may be integrated at least in part by a touch panel display or the like.
[0154] The positioning module 26 is configured to measure position. The type of positioning module 26 is not particularly limited as long as it is capable of measuring position, and may be appropriately selected depending on the embodiment. For example, the positioning module 26 may be a GPS (Global Positioning System) sensor. The positioning module may be composed of a GNSS (Global Navigation Satellite System) sensor or the like. For example, the positioning module 26 may be configured to estimate the distance to each base station (wireless access point) according to the signal strength received from each base station. The positioning module 26 may also be configured to measure the position using any method (such as tripoint surveying) from the estimated distance to each base station. In this case, the positioning module 26 may be at least partially common with the communication module 23. In one example, the positioning module 26 may be composed of a control unit 21 (CPU) and a communication module 23. The type of base station may be appropriately selected depending on the embodiment. Furthermore, the positioning module 26 does not have to be built into the client device 2, and may be connected to the client device 2 via at least one of the communication module 23 and an external interface.
[0155] Regarding the specific hardware configuration of the client device 2, components can be omitted, replaced, and added as appropriate depending on the embodiment. For example, the control unit 21 may include multiple hardware processors. Hardware processors may consist of microprocessors, FPGAs, DSPs, ECUs, GPUs, ASICs, etc. At least one of the input device 24 and the output device 25 may be omitted. The client device 2 may be connected to other devices (mobile body MB, various sensors, etc.) via at least one of the communication module 23 and the external interface. The client device 2 may consist of multiple computers. In this case, the hardware configuration of each computer may or may not be the same. The client device 2 may be a computer designed specifically for the service provided, or a general-purpose PC, notebook PC, terminal device, etc. Terminal devices may include user terminals such as smartphones and tablet devices. Also, in one example, when deployed in a vehicle, the client device 2 may be an in-vehicle device (in-vehicle unit, terminal device, etc.).
[0156] [Software Configuration] (Server device) Figure 16 schematically shows an example of the software configuration of the server device 1 according to this embodiment. The control unit 11 of the server device 1 executes instructions contained in the program 81 stored in the storage unit 12 using the CPU. As a result, the server device 1 operates as a computer equipped with a request receiving unit 111, a data extraction unit 112, and a data reply unit 113 as software modules. In other words, in this embodiment, each software module of the server device 1 is realized by the control unit 11 (CPU).
[0157] The request receiving unit 111 is configured to receive a request from the client device 2 for the provision of geofence definition data. In one example, the request receiving unit 111 may be configured to receive current location information 45 from the client device 2. The data extraction unit 112 is configured to extract the geofence definition data 31 to be provided from the database 3 (geofence definition data 30). In one example, the data extraction unit 112 extracts from the database 3, according to the current location information 45, the first area P1 to which the current location 40 belongs and the area surrounding the first area P1. The data reply unit 113 may be configured to extract geofence definition data 31 associated with at least one of the second area P2. The data reply unit 113 is configured to send the extracted geofence definition data 31 back to the client device 2.
[0158] (Client device) Figure 17 schematically shows an example of the software configuration of the client device 2 according to this embodiment. The control unit 21 of the client device 2 executes instructions contained in the program 82 stored in the storage unit 22 using the CPU. As a result, the client device 2 operates as a computer equipped with a position acquisition unit 211, a data request unit 212, a data storage unit 213, a determination unit 214, and an output processing unit 215 as software modules. In other words, in this embodiment, similar to the server device 1, each software module of the client device 2 is also realized by the control unit 21 (CPU).
[0159] The position acquisition unit 211 is configured to acquire the current position (40, 265) measured by the positioning module 26. The data request unit 212 is configured to send a request to the server device 1 for the provision of geofence definition data. In one example, the data request unit 212 may be configured to send current position information 45 related to the acquired current position 40 to the server device 1. The data storage unit 213 is configured to receive geofence definition data 31 from the server device 1 and store the received geofence definition data 31 (update the stored geofence definition data 32). The determination unit 214 is configured to determine whether the acquired current position 265 is inside or outside the corresponding geofence according to the stored geofence definition data 32. In other words, the determination unit 214 is configured to determine whether the current position 265 belongs within the range of the geofence defined by the stored geofence definition data 32. The output processing unit 215 is configured to output information regarding the geofence determination result.
[0160] (others) In this embodiment, an example is described in which each software module of the server device 1 and the client device 2 are implemented by a general-purpose CPU. However, some or all of the above software modules may be implemented by one or more dedicated processors or chipsets. Each of the above modules may also be implemented as a hardware module. Regarding the software configuration of the server device 1 and the client device 2, modules may be omitted, replaced, and added as appropriate, depending on the embodiment.
[0161] [3 Examples of operation] [Provision of geofence definition data] Figure 18 is a sequence diagram showing an example of a processing procedure for requesting and providing geofence definition data according to this embodiment. The example in Figure 18 assumes a scenario in which the provision method shown in Figure 2 is adopted. The following processing procedure for Server Device 1 is an example of an information processing method executed by the server device. The following processing procedure for Client Device 2 is an example of an information processing method executed by the client device. The following overall processing procedure is an example of an information processing method executed by the system. However, the following processing procedure is merely an example, and each step may be modified as much as possible. Furthermore, steps in the following processing procedure can be omitted, replaced, and added as appropriate, depending on the embodiment.
[0162] (Steps S101 and S102) In step S101, the control unit 21 of the client device 2 operates as a position acquisition unit 211 and acquires the current position 40 measured by the positioning module 26. In step S102, the control unit 21 operates as a data request unit 212 and transmits the current position information 45 related to the acquired current position 40 to the server device 1. As a result, the client device 2 The system requests the server device 1 to provide geofence definition data corresponding to the current location 40.
[0163] The current location information 45 may be configured as appropriate to include information that can identify the first area (first area P1) to which the current location 40 belongs and the surrounding second area (second area P2). In one example, the current location information 45 may be configured to indicate the current location 40. In another example, the current location information 45 may be configured to indicate the first area P1. In yet another example, the current location information 45 may be configured to indicate at least a part of the second area P2 and the first area P1. Each area (P1, P2) may be indicated by information such as an area ID and coordinate range.
[0164] For example, before executing the process in step S102, the control unit 21 of the client device 2 may delete geofence definition data 321 that are not associated with areas (P32, P33, P35, P36) that remain in at least one of the first area P1 and the second area P2, and that are associated with at least one of the areas (P31, P34, P37, P38, P39) that are outside of the first area P1 and the second area P2. This may allow the control unit 21 of the client device 2 to increase the available memory resources to accept new geofence definition data.
[0165] In one example, in step S102, the control unit 21 of the client device 2 may further transmit a list 455 of the geofence definition data 320(32) it holds. The list 455 may be configured to exclude geofence definition data for areas outside the first area P1 and the second area P2 (P31, P34, P37, P38, P39) and show a list of geofence definition data that is maintained by being associated with at least one of the areas that remain in at least one of the first area P1 and the second area P2 (P32, P33, P35, P36). In the list 455, the geofence definition data may be indicated by identification information such as the main unit ID. In addition, in one example, the list 455 may also include the acquisition time of the geofence definition data 320(32) by the client device 2. The order in which the current location information 45 and the list 455 are transmitted is not particularly limited and may be determined as appropriate depending on the embodiment.
[0166] In one example, in step S102, the control unit 21 of the client device 2 may further transmit a request number 49 for geofence definition data 31. In one example, the request number 49 may be determined according to the available memory resources of the client device 2. The upper limit of the request number 49 can be increased by performing the above process of deleting the geofence definition data for areas (P31, P34, P37, P38, P39) that are outside the first area P1 and the second area P2 before processing in step S102. The order in which the current location information 45 and the request number 49 are transmitted is not particularly limited and may be determined as appropriate depending on the embodiment.
[0167] Furthermore, the timing for executing steps S101 and S102 is not particularly limited and may be determined as appropriate depending on the embodiment. For example, the control unit 21 of the client device 2 may execute steps S101 and S102 when the device (client device 2, mobile body MB, etc.) is started up. Alternatively, the control unit 21 may execute steps S101 and S102 periodically. Alternatively, the control unit 21 may determine whether a movement satisfying predetermined conditions has occurred, such as moving beyond a predetermined distance or moving to an adjacent area. Whether a movement satisfying predetermined conditions has occurred may be determined by any method. In one example, the control unit 21 may monitor the movement (trajectory of position) of the object by repeatedly executing the process of step S101. In another example, the object (client device 2, mobile body MB, etc.) may be equipped with sensors capable of observing movement, such as a velocity sensor and an acceleration sensor. The control unit 21 may monitor the movement of the object according to the observation results of these sensors. The control unit 21 may determine, based on the results of monitoring the movement, whether or not a movement meeting predetermined conditions has occurred. For example, the control unit 21 may determine whether or not a movement meeting predetermined conditions has occurred if the amount of movement (amount of change in position, etc.) is within a threshold. If the value exceeds a certain threshold, the control unit 21 may determine that a movement satisfying a predetermined condition has occurred (movement has exceeded a predetermined distance). On the other hand, if the amount of movement is less than the threshold, the control unit 21 may determine that a movement satisfying a predetermined condition has not occurred. If the amount of movement is equal to the threshold, the control unit 21 may determine that a movement satisfying a predetermined condition has occurred, or it may determine that a movement satisfying a predetermined condition has not occurred. The threshold can be arbitrarily defined. Also, for example, the control unit 21 may determine the area to which the current position belongs at each timing by referring to the information of each area. If, as a result of the determination, the area to which the current position belongs has changed, the control unit 21 may determine that the current position has moved to an adjacent area (movement satisfying a predetermined condition has occurred). On the other hand, if the area to which the current position belongs has not changed (the state of belonging to the same area continues), the control unit 21 may determine that a movement satisfying a predetermined condition has not occurred. Then, the control unit 21 may execute the process in step S102 depending on whether it has determined that a movement satisfying a predetermined condition has occurred.
[0168] (Steps S201 to S203) In step S201, the control unit 11 of the server device 1 operates as a request receiving unit 111 and receives current location information 45 from the client device 2. In step S202, the control unit 11 operates as a data extraction unit 112. That is, the control unit 11 extracts geofence definition data 31 from the database 3 that is associated with at least one of the first area P1 to which the current location 40 belongs and the second area P2 that exists around the first area P1, according to the current location information 45. In step S203, the control unit 11 operates as a data reply unit 113 and sends the extracted geofence definition data 31 back to the client device 2. The processing in steps S201 to S203 is an example of "providing geofence definition data in response to a request from a client device".
[0169] In one example, in step S201, the control unit 11 may receive list 455 from client device 2. In this case, in step S203, the control unit 11 may exclude the geofence definition data 311 registered in list 455 from the geofence definition data 310 extracted from database 3. Then, the control unit 11 may return the remaining geofence definition data 315(31) after excluding the geofence definition data 311 registered in list 455 to client device 2.
[0170] In one example, the list 455 received in step S201 may also include the acquisition time of the geofence definition data 320(32) by the client device 2. Accordingly, in step S203, the control unit 11 may determine whether or not there has been an update to the geofence definition data registered in list 455, according to the acquisition time. The control unit 11 may not exclude the geofence definition data 312 that has been determined to have been updated from the geofence definition data registered in list 455, but may exclude the geofence definition data 311 that has been determined not to have been updated from the extracted geofence definition data 310. Then, the control unit 11 may return the remaining geofence definition data 315(31) after excluding the geofence definition data 311 that has been determined not to have been updated to the client device 2.
[0171] In addition, for example, the geofence definition data 30(31, 32) may have a priority defined. The priority may be set on any criterion. For example, the priority may be defined according to at least one of the static and dynamic attributes of the geofence. If the priority is defined according to the dynamic attribute, the control unit 11 may calculate the priority of each geofence (geofence definition data 31) at any time before executing the processing in step S203. For example, if the priority is defined according to the distance to the geofence boundary, the control unit 11 may refer to the integrated figure of the main data 301 or the geometry of the geometry data 305 in the geofence definition data 31 and calculate the distance from the current position 40 or the first area P1 (current position information 45) to the geofence boundary. The control unit 11 then calculates the priority according to the calculated distance. The priority of each geofence (geofence definition data 31) may be identified. For example, if priorities are defined, in step S203, the control unit 11 may prioritize returning the geofence definition data with the highest priority among the geofence definition data 31.
[0172] In one example, in step S201, the control unit 11 may receive a request count of 49. In this case, in step S203, the control unit 11 may return 49 requests worth of geofence definition data 319 to the client device 2, starting with the geofence definition data with the highest priority from the geofence definition data 310 extracted from the database 3. In another example, the control unit 11 may exclude geofence definition data 311 that has been determined not to have been updated, and then return 49 requests worth of geofence definition data 319 to the client device 2, starting with the geofence definition data with the highest priority. In this case, the control unit 11 may not include the updated geofence definition data 312 in the request count of 49, and may count the request count of 49 with geofences that are not associated with existing areas (P32, P33, P35, P36) and are associated with any of the new areas (P51~P55), as well as new geofences associated with any of the existing areas (P32, P33, P35, P36).
[0173] In one example, the geofence definition data 30 may consist of main data 301, action data 303, and geometry data 305. Accordingly, the processing in step S202 may consist of the processing of the first to fourth steps of the reference procedure during extraction described above. The processing in step S203 may consist of the processing of the fifth step.
[0174] (Steps S301 and S302) In step S301, the control unit 21 of the client device 2 operates as a data storage unit 213 and receives geofence definition data 31 from the server device 1. In step S302, the control unit 21 operates as a data storage unit 213 and stores the received geofence definition data 31. That is, the control unit 21 updates the stored geofence definition data 32 with the received geofence definition data 31.
[0175] For example, if geofence definition data 31 are assigned priorities, the control unit 21 may prioritize saving the geofence definition data with the highest priority among the received geofence definition data 31. For example, the control unit 21 may choose whether or not to save each geofence definition data 31 according to its priority. For instance, the control unit 21 may choose to save any number of geofence definition data 31 in order of priority, and not save any number of geofence definition data 31 with lower priority (i.e., exclude them from saving). The number of geofence definition data 31 to save may be determined arbitrarily. For example, the number of geofence definition data 31 to save may be determined according to the available memory resources of the client device 2.
[0176] Once the saving of the received geofence definition data 31 (updating the retained geofence definition data 32) is complete, the processing procedure for requesting and providing geofence definition data according to this example of operation is terminated. In one example of this embodiment, the series of processes from step S101 to step S302 may be executed in real time. Also, in one example, the series of processes from step S101 to step S302 may be executed repeatedly as appropriate. This allows the client device 2 to maintain a state in which it holds the geofence definition data 32 of the geofence defined in the current location and a predetermined range around it (first area P1 and second area P2).
[0177] [Determination of whether a geofence is inside or outside the area] Figure 19 is a flowchart showing an example of a processing procedure for determining whether an area is inside or outside a geofence according to this embodiment. The following processing procedure is performed by a computer (client device 2). This is an example of an information processing method. However, the following processing procedure is merely an example, and each step may be modified as much as possible. Furthermore, depending on the embodiment, steps in the following processing procedure may be omitted, replaced, or added as appropriate.
[0178] (Step S501) In step S501, the control unit 21 of the client device 2 operates as a position acquisition unit 211 and acquires the current position 265 measured by the positioning module 26. The processing in step S501 may be the same as the processing in step S101. Once the current position 265 is acquired, the control unit 21 proceeds to the next step S502.
[0179] (Step S502) In step S502, the control unit 21 determines whether a movement satisfying a predetermined condition (a certain movement) has occurred. The method for determining whether a movement satisfying a predetermined condition has occurred may be the same as described above. In one example, the control unit 21 may monitor the movement of the object (the trajectory of its position) using the current position 265 obtained in the processing of step S501. In another example, the control unit 21 may monitor the movement of the object according to the observation results of sensors such as a velocity sensor and an acceleration sensor. The control unit 21 may determine whether a movement satisfying a predetermined condition has occurred according to the results of monitoring the movement. If it is determined that a movement satisfying a predetermined condition has occurred, the control unit 21 proceeds to the next step S503. On the other hand, if it is determined that a movement satisfying a predetermined condition has not occurred, the control unit 21 returns to step S501 and repeatedly executes the processing of steps S501 and S502.
[0180] In one example of this embodiment, the processing in step S502 limits the timing of the geofence inside / outside determination to only when a certain amount of movement has occurred. This prevents the inside / outside determination from being repeated while stationary. As a result, the efficiency of the inside / outside determination process can be expected to be improved. Note that the timing of the processing in step S502 is not limited to this example and may be appropriately modified depending on the embodiment. If the current position is not used in the determination in step S502, the processing in step S502 may be executed before step S501. Furthermore, the processing in step S502 may be omitted.
[0181] (Step S503) In step S503, the control unit 21 operates as a determination unit 214 and determines whether the geofence determination execution conditions indicated by the geofence definition data 32 it holds are met. Whether or not the determination execution conditions are met may be determined as appropriate. For geofences that are determined to meet the determination execution conditions, the control unit 21 proceeds to the next step S504. On the other hand, for geofences that are determined not to meet the determination execution conditions, the control unit 21 omits the processing from step S504 onwards, returns to step S501, and executes the processing again from step S501. That is, if all geofences do not meet the determination execution conditions, the control unit 21 returns to step S501 and executes the processing again from step S501. If at least some geofences meet the determination execution conditions, the control unit 21 proceeds to the next step S504 and executes the processing from step S504 onwards for the geofences that meet the determination execution conditions.
[0182] For example, if geofence definition data 32 consists of main data 301, action data 303, and geometry data 305, the processing in step S503 may consist of the processing of the first step of the reference procedure for determining whether an area is inside or outside.
[0183] In one example, the geofence definition data 32 may specify a priority. In one example, the priority is specified according to at least one of the static and dynamic attributes of the geofence. Good. If priority is defined according to dynamic attributes, the control unit 21 may calculate the priority of each geofence (geofence definition data 32) at any time before executing the process in step S503. For example, if priority is defined according to the distance to the geofence boundary, the control unit 21 may refer to the integrated shape of the main data 301 or the geometry of the geometry data 305 in the geofence definition data 32 and calculate the distance from the current position 265 to the geofence boundary. The control unit 21 may identify the priority of each geofence (geofence definition data 32) according to the calculated distance.
[0184] For example, if the geofence definition data 32 has a priority assigned to it, the control unit 21 may execute the processing from step S503 using the geofence definition data 32 in order of priority. Alternatively, in another example, the control unit 21 may execute the processing from step S503 for any number of geofence definition data 32 in order of priority. The control unit 21 may omit the execution of the processing from step S503 for any number of geofence definition data 32 with low priority. In other words, the control unit 21 may perform internal / external determination for high-priority geofences and omit internal / external determination for low-priority geofences. The number of geofences to be executed may be determined appropriately depending on the embodiment. For example, the number of geofences to be executed may be determined according to the processing load of the client device 2, such as reducing the number when the processing load of the client device 2 is high and increasing the number when the processing load is low. The processing load may be evaluated by any method, such as the usage rate of the control unit 21 (CPU).
[0185] In one example, the judgment execution conditions may not be specified. Also, in one example, the judgment execution condition field may be omitted in the geofence definition data 30(31, 32). If the judgment execution conditions are not specified or are omitted, the processing in step S503 may be omitted.
[0186] (Step S504) In step S504, the control unit 21 operates as a determination unit 214 and determines whether the current location 265 is within the range of the geofence defined by the geofence definition data 32 it holds. That is, the control unit 21 determines whether the acquired current location 265 is inside or outside the geofence defined by the geofence definition data 32 it holds.
[0187] In one example, in this determination process, the control unit 21 may generate a determination result configured to indicate whether the user is located inside or outside the defined geofence. Also in one example, for at least some geofences, a previous determination result may exist because the inside / outside determination is performed continuously. If a previous determination result exists, the control unit 21 may generate a determination result configured to indicate whether the user is staying outside the geofence, has entered the geofence from outside, is staying inside the geofence, or has exited the geofence from inside to outside, depending on the previous and current determination results.
[0188] For example, if the geofence definition data 32 consists of body data 301, action data 303, and geometry data 305, the processing in step S504 may consist of the processing of the second step of the reference procedure for determining whether a location is inside or outside the area. For example, the control unit 21 may omit the determination of whether a location is inside or outside by comparing it with the area defined by the geometry for geofences not associated with the area to which the current location 265 belongs, and determine that the current location 265 is outside the geofence. In this way, the control unit 21 may narrow the target of the determination of whether a location is inside or outside by comparing it with the area defined by the geometry to geofences associated with the area to which the current location 265 belongs. For geofences for which the determination process has been completed, the control unit 21 proceeds to the next step S505.
[0189] (Step S505) In step S505, the control unit 21 operates as an output processing unit 215 and outputs information regarding the geofence determination result.
[0190] The output destination and the content of the information to be output may be appropriately selected depending on the embodiment. In one example, the control unit 21 may output the above determination result as is. The output destination may be, for example, RAM, storage unit 22, output device 25, another computer (including external storage device), etc. For example, the control unit 21 may save the current determination result to a memory resource for use in subsequent internal / external determinations. In another example, the control unit 21 may determine whether or not the geofence action execution conditions are met according to the geofence determination result. For geofences that are determined to meet the action execution conditions, the control unit 21 may execute the action defined by the action content. Outputting information regarding the geofence determination result may include determining whether or not these action execution conditions are met, and executing the action for geofences that meet the action execution conditions. In one example, if the geofence definition data 32 consists of main data 301, action data 303, and geometry data 305, the processing related to the execution of this action may consist of the processing of the third and fourth steps of the reference procedure for internal / external determination described above. Once the information output is complete, the control unit 21 proceeds to the next step S506.
[0191] (Step S506) In step S506, the control unit 21 determines whether or not to terminate the process. The criteria for this determination can be set arbitrarily. For example, the control unit 21 may determine not to terminate the process until a termination instruction is given. On the other hand, when a termination instruction is given, the control unit 21 may determine to terminate the process. The termination instruction can be given in any way, such as terminating / suspending the application or stopping the device.
[0192] If the control unit 21 determines that it is not time to terminate the process, it returns to step S501 and restarts the process from step S501. This allows the control unit 21 to continuously perform inside / outside determination for the geofence defined by the retained geofence definition data 32. On the other hand, if the control unit 21 determines that it is time to terminate the process, it terminates the processing procedure related to inside / outside determination of the geofence in this example. Note that the timing of terminating the process is not limited to this example. The control unit 21 may terminate the processing procedure related to inside / outside determination of the geofence at any time. Also, in one example, the control unit 11 may execute the series of processes from steps S501 to S506 in real time.
[0193] [Features] In this embodiment, in the geofence definition data 30(31, 32), at least one of the action data 303 and geometry data 305 is separated from the main data 301 while ensuring accessibility. This makes it possible to configure at least one of the action data 303 and geometry data 305 to be reusable. Therefore, according to this embodiment, the amount of data in the geofence definition data 30(31, 32) can be reduced. As a result, a reduction in communication volume can be expected in steps S203 and S301. In step S302, an improvement in the efficiency of the memory resources of the client device 2 can be expected.
[0194] [4. Variant] While embodiments of this disclosure have been described in detail above, the above description is merely illustrative in all respects. The processes and means described in this disclosure can be freely combined and implemented as long as no technical inconsistencies arise. Various improvements or modifications may be made as appropriate. For example, the following modifications are possible. In the following, the same reference numerals are used for components similar to those in the above embodiment, and explanations of points similar to those in the above embodiment have been omitted as appropriate. The following modifications can be combined as appropriate.
[0195] <4.1> In the above embodiment, the client device 2 acquires its current location 40 and requests the server device 1 to provide geofence definition data 31 according to the acquired current location 40 (steps S101 and S102). However, the location that serves as the basis for requesting the provision of geofence definition data 31 is not limited to the current location 40. In another example, the output device 25 of the client device 2 includes a display, and the control unit 21 of the client device 2 may display a map on the display according to map data MP. The control unit 21 may draw a geofence on the map displayed on the display according to the drawing information of the geofence definition data 32 it holds. In this case, the control unit 21 may accept a reference to any location other than the current location (such as a destination) on the map in response to the user's operation of the input device 24. Accordingly, the control unit 21 may replace the current location 40 with the arbitrary reference location and request the server device 1 to provide geofence definition data by transmitting reference location information indicating the reference location to the server device 1. The reference location information at the time of this request may be configured in the same way as the current location information 45 described above, except that the current location 40 is replaced with the reference location. The server device 1 may provide the client device 2 with geofence definition data associated with at least one of the area to which the reference location belongs and the surrounding area, by performing the same processing as in steps S201 to S203 described above, except that the current location 40 is replaced with the reference location. The client device 2 may use the received geofence definition data to draw the geofences installed at the reference location and around it on a map.
[0196] <4.2> Furthermore, in the above embodiment, the server device 1 provides geofence definition data 31 on a zone basis. However, the method of providing geofence definition data is not limited to this example and may be modified as appropriate depending on the embodiment. In another example, the server device 1 may provide the pooled geofence definition data to the client device 2 all at once. In yet another example, the server device 1 may receive the current location from the client device 2. The server device 1 may calculate the distance between the received current location and the geofence boundary and extract geofences that exist within a predetermined distance from the current location according to the calculated distance. The predetermined distance may be arbitrarily defined. The server device 1 may provide the geofence definition data of the extracted geofences to the client device 2. Note that if zones are not used, the zone-related configuration may be omitted.
[0197] <4.3> Furthermore, in the above embodiment, client device 2 performs the geofence determination process. However, the entity that performs the geofence determination process is not limited to client device 2. In another example, another computer other than client device 2 may perform the geofence determination process on client device 2. The other computer may be, for example, server device 1, an external computer other than server device 1, etc.
[0198] Figure 20 schematically illustrates another example of a scenario to which this disclosure applies. In another example, client device 2 may transmit the acquired current location 265 to server device 1. Server device 1 may appropriately extract geofence definition data 32 to be determined from database 3 according to the received current location 265. In one example, server device 1 may replace current location 265 with current location 40 and extract geofence definition data 32 to be determined in the same manner as the above method for extracting geofence definition data 31. Regarding client device 32, server device 1 may perform the geofence determination process for the target client device 2 by executing the processes in steps S503 and S504 on behalf of the target client device 2. Server device 1 may then return result information regarding the obtained determination result to client device 2. If multiple client devices 2 access server device 1, server device 1 may perform the above series of determination processes for each client device 2.
[0199] The structure of the result information may be determined as appropriate depending on the embodiment. In one example, the result information may be configured to show the obtained determination result as is. In this case, the determination of the action execution conditions may be performed on the client device 2. That is, the client device 2 may determine whether or not the action execution conditions of the geofence are met, based on the result information obtained from the server device 1. If it is determined that the action execution conditions are met, the client device 2 may execute the action defined by the action content. When this method is adopted, at least a part of the geofence definition data, including the action execution conditions and action content, may be appropriately shared with the client device 2. In another example, the determination of the action execution conditions may also be performed on the server device 1. In this case, the result information may be configured to include the determination result of the action execution conditions. For geofences that meet the action execution conditions, the result information may be configured to include a command to execute the action defined in the action content. The client device 2 may execute the action according to the command included in the result information. In this modified example, at least one of the action data 303 and the geometry data 305 is separated from the main data 301 while ensuring accessibility, thereby reducing the amount of data in the geofence definition data 30 (31, 32).
[0200] [5. Supplement] The processes and means described herein can be freely combined and implemented, provided that no technical inconsistencies arise.
[0201] Furthermore, a process described as being performed by a single device may be divided and executed by multiple devices. Conversely, a process described as being performed by different devices may be executed by a single device. In a computer system, the hardware configuration used to implement each function can be flexibly changed.
[0202] This disclosure can also be realized by supplying a computer program implementing the functions described in the embodiments above to a computer, and having one or more processors in the computer read and execute the program. Such a computer program may be provided to the computer by a non-temporary computer-readable storage medium that can be connected to the computer's system bus, or it may be provided to the computer via a network. The non-temporary computer-readable storage medium may include, for example, any type of disk, read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic card, flash memory, optical card, semiconductor drive, any type of medium suitable for storing electronic instructions, etc. Disks may include, for example, magnetic disks, optical disks, etc. Magnetic disks may include, for example, hard disk drives (HDDs), etc. Optical disks may include, for example, CD-ROMs, DVDs, Blu-ray discs, etc. Semiconductor drives may include, for example, solid-state drives, etc. [Explanation of Symbols]
[0203] S... System 1…Server equipment, 11...Control unit, 12...Storage unit, 13...Communication module, 2…Client device, 21...Control unit, 22...Storage unit, 23...Communication module, 26…Positioning module, 3…Database, 30, 31, 32... Geofence definition data, 301...Main data, 303...Action data, 305…Geometry data
Claims
1. Server equipment, and Client device A system composed of, The server device is configured to provide geofence definition data in response to requests from client devices. The aforementioned geofence definition data is Action data that defines actions in geofences, and The main data including the identification information of the aforementioned action data, Equipped with, system.
2. The geofence definition data further comprises geometry data that defines the geometry that delineates the area of the geofence. The aforementioned main data further includes identification information for the geometry data, The system according to claim 1.
3. The inclusion of identification information for the geometry data is configured to include identification information for each of the geometry data of one or more of the aforementioned geometries. If the main data includes identification information for each of the multiple geometries, the main data further includes a logical operator used to integrate the multiple geometries. The system according to claim 2.
4. The main data further includes drawing information for drawing the geofence on the map in the client device. The system according to claim 2.
5. The aforementioned main data further includes an overall update time indicating the time when at least one of the main data, the action data, and the geometry data was updated. The system according to claim 2.
6. The aforementioned main data further includes a determination execution condition for selecting whether or not to perform the geofence determination, The system according to claim 1.
7. The aforementioned main data further includes the validity period of the geofence. The system according to claim 1.
8. A server device equipped with a control unit, The control unit is configured to provide geofence definition data in response to a request from a client device. The aforementioned geofence definition data is Action data that defines actions in geofences, and The main data including the identification information of the aforementioned action data, Equipped with, Server device.
9. The geofence definition data further comprises geometry data that defines the geometry that delineates the area of the geofence. The aforementioned main data further includes identification information for the geometry data, The server device according to claim 8.
10. The inclusion of identification information for the geometry data is configured to include identification information for each of the geometry data of one or more of the aforementioned geometries. If the main data includes identification information for each of the multiple geometries, the main data further includes a logical operator used to integrate the multiple geometries. The server device according to claim 9.
11. The main data further includes drawing information for drawing the geofence on the map in the client device. The server device according to claim 9.
12. The aforementioned main data further includes an overall update time indicating the time when at least one of the main data, the action data, and the geometry data was updated. The server device according to claim 9.
13. The aforementioned main data further includes a determination execution condition for selecting whether or not to perform the geofence determination, The server device according to claim 8.
14. The aforementioned main data further includes the validity period of the geofence. The server device according to claim 8.
15. An information processing method executed by a server device, The aforementioned information processing method includes providing geofence definition data in response to a request from a client device. The aforementioned geofence definition data is Action data that defines actions in geofences, and The main data including the identification information of the aforementioned action data, Equipped with, Information processing methods.
16. The geofence definition data further comprises geometry data that defines the geometry that delineates the area of the geofence. The aforementioned main data further includes identification information for the geometry data, The information processing method according to claim 15.
17. The inclusion of identification information for the geometry data is configured to include identification information for each of the geometry data of one or more of the aforementioned geometries. If the main data includes identification information for each of the multiple geometries, the main data further includes a logical operator used to integrate the multiple geometries. The information processing method according to claim 16.
18. The main data further includes drawing information for drawing the geofence on the map in the client device. The information processing method according to claim 16.
19. The aforementioned main data further includes an overall update time indicating the time when at least one of the main data, the action data, and the geometry data was updated. The information processing method according to claim 16.
20. The aforementioned main data further includes a determination execution condition for selecting whether or not to perform the geofence determination, The information processing method according to claim 15.