System, server device, and information processing method

By associating geofence definition data with map areas, the system reduces server processing load by eliminating distance calculations, enhancing server performance in geofencing systems.

JP2026097049APending Publication Date: 2026-06-16TOYOTA JIDOSHA KK

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

Technical Problem

Existing geofencing systems impose a significant processing load on server devices due to the need for distance calculations between client devices and geofences, which increases as the number of geofences and client devices grows.

Method used

A system where the map is divided into areas, with geofence definition data associated with these areas, allowing the server device to distribute data based on the area the client device is located in, rather than calculating distances, thereby reducing the processing load.

Benefits of technology

This approach reduces the processing load on the server device by eliminating the need for distance calculations, thereby optimizing server performance in geofence-related information processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026097049000001_ABST
    Figure 2026097049000001_ABST
Patent Text Reader

Abstract

To reduce the processing load on server equipment related to geofencing information processing, we aim to alleviate the burden on the server equipment. [Solution] A system relating to one aspect of this disclosure comprises a server device and a client device. The server device has access to a database of geofence definition data. The geofence definition data is associated with a map area to which the defined geofence belongs. The server device is configured to receive current location information from the client device, extract geofence definition data from the database that is associated with at least one of the first area to which the current location belongs and a second area surrounding the first area, and return the extracted geofence definition data to the client device.
Need to check novelty before this filing date? Find Prior Art

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. 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.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Summary of the Invention

Problems to be Solved by the Invention

[0004] One object of the present disclosure is to provide a technique for reducing the processing load of a server device in information processing related to geofences.

Means for Solving the Problems

[0005] The system relating to the first aspect of this disclosure comprises a server device and a client device. The server device has access to a database of geofence definition data. The geofence definition data is configured to indicate the definition of a geofence and is associated with a map area to which the defined geofence belongs. The client device is configured to obtain the current location measured by a positioning module and to transmit the current location information relating to the obtained current location to the server device. The server device is configured to receive the current location information from the client device, extract geofence definition data from the database associated with at least one of the first area to which the current location belongs and a second area surrounding the first area, according to the current location information, and return the extracted geofence definition data to the client device.

[0006] A server device according to a second aspect of this disclosure includes a control unit and is configured to access a database of geofence definition data. The geofence definition data is configured to indicate a geofence definition and is associated with a map area to which the defined geofence belongs. The control unit is configured to receive current location information from a client device regarding the current location of the client device, extract geofence definition data from the database associated with at least one of a first area to which the current location belongs and a second area surrounding the first area, according to the current location information, and return the extracted geofence definition data to the client device.

[0007] The information processing method relating to the third aspect of this disclosure is executed by a server device. The server device has access to a database of geofence definition data. The geofence definition data is configured to indicate the definition of a geofence and the geofence to which the defined geofence belongs. It is associated with the area shown in the diagram. The information processing method includes receiving current location information about the current location of a client device from the client device, extracting geofence definition data from a database that is associated with at least one of the first area to which the current location belongs and the second area surrounding the first area, according to the current location information, and returning the extracted geofence definition data to the client device. [Effects of the Invention]

[0008] According to this disclosure, it can be expected that the processing load on the server equipment will be reduced when processing information related to geofencing. [Brief explanation of the drawing]

[0009] [Figure 1] Figure 1 schematically illustrates an example of a scenario in which this disclosure applies. [Figure 2] Figure 2 schematically shows an example of a method for defining the geometry (area) of a geofence according to this disclosure. [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 illustrates an example of the geometry integration method described herein. [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 shows an example of the configuration of geofence definition data in this disclosure. [Figure 9] Figure 9 schematically illustrates an example of how geofences are associated with areas on the map of 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] FIG. 11 schematically shows an example of a scene for updating geofence definition data held in the client device of the present disclosure. [Figure 12] FIG. 12 schematically shows an example of a scene for utilizing the priority set in the geofence definition data of the present disclosure. [Figure 13] FIG. 13 schematically shows an example of the hardware configuration of the server device of the present disclosure. [Figure 14] FIG. 14 schematically shows an example of the hardware configuration of the client device of the present disclosure. [Figure 15] FIG. 15 schematically shows an example of the software configuration of the server device of the present disclosure. [Figure 16] FIG. 16 schematically shows an example of the software configuration of the client device of the present disclosure. [Figure 17] FIG. 17 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 18] FIG. 18 is a flowchart showing an example of a processing procedure related to the determination of whether a location is inside or outside the geofence of the present disclosure.

MODE FOR CARRYING OUT THE INVENTION

[0010] When the server device executes the geofence determination process for each client device, the processing load on the server device increases. Therefore, in order to reduce the processing load on the server device, a configuration in which each client device executes the geofence determination process can be adopted. For example, in Patent Document 2, the server device distributes geofence definition data existing within a predetermined range (range of threshold distance) from the current position of the client device to each client device, and each client device executes the geofence determination process according to the distributed definition data. A system has been proposed. However, in this system, the server device calculates the distance between the target geofence and the current position of the client device, compares the calculated distance with a threshold value, and determines whether to distribute the definition data of the target geofence to the client device according to the comparison result. As the number of geofences and client devices increases, this distance calculation accumulates. As a result, the processing load of the server device may increase.

[0011] In contrast, the system according to the first aspect of the present disclosure is composed of a server device and a client device. The server device can access a database of geofence definition data. The geofence definition data is configured to indicate the definition of the geofence and is associated with the area of the map to which the defined geofence belongs. The client device is configured to acquire the current position measured by the positioning module and transmit the current position information regarding the acquired current position to the server device. The server device is configured to receive the current position information from the client device, extract the geofence definition data associated with at least any one of the first area to which the current position belongs and the second area existing around the first area from the database according to the current position information, and return the extracted geofence definition data to the client device.

[0012] In the first aspect of the present disclosure, the map is divided into areas, and the geofence definition data is associated with the area to which the defined geofence belongs. That is, the geofence definition data is managed in units of areas on the map. Thereby, the server device can extract the geofence definition data to be distributed to the client device according to the area (the first area and the second area) without calculating the distance between the current position of the client device and the geofence. Therefore, according to the first aspect of the present disclosure, it is possible to expect a reduction in the processing load of the server device for information processing related to geofences.

[0013] 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.

[0014] For example, a server device according to a second aspect of this disclosure may include a control unit and may be configured to access a database of geofence definition data. The geofence definition data may be configured to indicate a geofence definition and may be associated with a map area to which the defined geofence belongs. The control unit may be configured to receive current location information relating to the current location of a client device from the client device, extract geofence definition data from the database associated with at least one of a first area to which the current location belongs and a second area surrounding the first area, according to the current location information, and return the extracted geofence definition data to the client device.

[0015] Furthermore, for example, the information processing method relating to the third aspect of this disclosure may be executed by a server device. The server device may have access to a database of geofence definition data. The geofence definition data may be configured to indicate the definition of a geofence, and the definition The geofence may be associated with a map area to which it belongs. The information processing method may include receiving current location information about the current location of a client device from the client device, extracting geofence definition data from a database to which the current location belongs and at least one of the second area surrounding the first area, according to the current location information, and returning the extracted geofence definition data to the client device.

[0016] 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.

[0017] [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.

[0018] Server device 1 is configured to access database 3 of geofence definition data 30. 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 access database 3. In another example, database 3 may be stored in an external storage device, such as a storage device of another computer. The storage device of another computer may include NAS (Network Attached Storage). In this case, 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 13). The connection method is not particularly limited and may be appropriately selected depending on the embodiment. This allows server device 1 to access database 3 stored in the external storage device. Geofence definition data 30 is configured to show the definition of a geofence. The map is pre-divided into multiple areas. Geofence definition data 30 is associated with the area of ​​the map to which the defined geofence belongs.

[0019] The client device 2 is configured to acquire its 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 means connecting via a network (such as a Controller Area Network), another computer, etc. The system may consist of the following: The client device 2 acquires its current location 40, which is measured by the positioning module 26. The client device 2 transmits current location information 45 related to the acquired current location 40 to the server device 1. In this way, the client device 2 requests the server device 1 to provide geofence definition data corresponding to the current location 40.

[0020] Server device 1 is configured to provide geofence definition data 31 in response to a request from client device 2. In this embodiment, server device 1 receives current location information 45 from client device 2. Based on the current location information 45, server device 1 extracts geofence definition data 31 from database 3 (geofence definition data 30) 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. Server device 1 returns the extracted geofence definition data 31 to client device 2.

[0021] 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.

[0022] 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."

[0023] As described above, in 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. In other words, 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 position 40 of the client device 2 and the geofence. Therefore, according to this embodiment, it is possible to expect a reduction in the processing load on the server device 1 regarding geofence-related information processing.

[0024] [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.

[0025] 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.

[0026] 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 1, in one example, each area may be formed by dividing the map into a mesh. Each area (First area P1 The shape of the second area P2) may be rectangular. However, the shape of each area is not limited to this example and may be appropriately selected depending on the embodiment. Any shape other than a rectangle may be used for the shape of each area. The map may be divided in a way other than meshing. Also, 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 may be managed independently of the map data MP. When the current location 40 is given, the map data MP is not necessarily provided 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.

[0027] [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).

[0028] In one example, the current location information 45 may be configured to indicate the current location 40. In this case, 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.

[0029] 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 1 (Figures 9 and 10 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.

[0030] 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.

[0031] 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.

[0032] Furthermore, in the example shown in Figure 1, 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.

[0033] [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.

[0034] (Geometry) The method for defining geometry is not particularly limited and may be appropriately selected depending on the embodiment. Known methods may be used to define geometry. Geometric information may include any information for defining an area (geographic extent).

[0035] Figures 2, 3, and 4 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 2, 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.

[0036] In one example, as shown in Figure 3, 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 2. Note that in the example in Figure 3, 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.

[0037] In one example, as shown in Figure 4, 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 2. 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 referred to as the start point or end point, respectively. According to this example of geometry GM, by increasing the width of link LC by a distance d, a geofence can be constructed using only link LC. Compared to other cases, this makes it easier to perform geofencing detection (detection of events in an area).

[0038] (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.

[0039] Figure 5 schematically shows an example (logical OR) of the method for integrating geometries (GM1, GM2) according to this embodiment. Figure 5 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 the area of ​​geometry GM1 or geometry GM2, it is determined that the current location is outside the geofence. As shown in Figure 5, if a path RP is given, the two intersection points BD between the outer perimeter (boundary line) after integrating each geometry (GM1, GM2) and the path RP become the geofence boundary on the path RP.

[0040] Figure 6 schematically shows an example (logical AND) of the method for integrating geometries (GM1, GM2) according to this embodiment. Figure 6 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 6, 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.

[0041] Figure 7 schematically shows an example (exclusive OR) of the method for integrating geometries (GM1, GM2) according to this embodiment. Figure 7 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 7, 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.

[0042] (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).

[0043] (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.

[0044] As shown in Figure 1, in one example, the client device 2 may be deployed on a mobile body MB. The type of mobile body MB is not particularly limited as long as it is mobile, and may be appropriately selected depending on the embodiment. The mobile body 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 body MB is a person, the client device 2 may be any computer carried by the person. If the mobile body MB is a device such as a vehicle, aircraft, ship, or robotic device, the client device 2 may be any computer deployed at least temporarily in that device. For example, if the mobile body 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 (such as a user terminal) temporarily deployed in the vehicle when a user uses the vehicle. The client device 2 may be a computer that constitutes at least a 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 on 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.

[0045] 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. For 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 14) 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.

[0046] Furthermore, the number of actions defined in the action description may be one or multiple. Each action may be referred to as a sub-action. The content of an action may be defined by a combination of multiple sub-actions. When the content of an action is defined by a combination of multiple sub-actions, each sub-action may be assigned an execution priority. Furthermore, there may be execution dependencies between at least some sub-actions, such as the execution of a second sub-action being controlled or the content of the second sub-action being determined based on the execution result of the first sub-action.

[0047] 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).

[0048] (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.

[0049] 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.

[0050] As an example, in the above case where client device 2 is deployed in a vehicle, the action execution conditions may further include conditions relating to the vehicle's state, and client device 2 may determine whether or not the conditions relating to the vehicle's state are met, depending on the vehicle information obtained from the vehicle. For example, regarding geofences relating to low-emission zones, the conditions relating to the vehicle's state may include the vehicle The condition may include that both vehicles are in hybrid mode. Accordingly, if the vehicle is in EV mode before entering the geofence, client device 2 may determine that the action execution condition is not met and omit the action to switch the vehicle's operating mode to EV mode. Also, for example, the condition regarding the state of the vehicle (including client device 2) 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 condition is not met and omit the action to prohibit imaging by the imaging device. Also, for example, the condition regarding the state of the vehicle (including client device 2) 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 condition is not met while utterances are being made by other applications and omit the execution of the action. Once the utterances by other applications have finished, client device 2 may determine that the action execution condition is met and execute the action defined in the action content.

[0051] 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.

[0052] 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.

[0053] [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.

[0054] Figure 8 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 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 for the action data 303 in the main data 301, the action data 303 is associated with the main data 301. As the number of geofences increases, the amount of data in geofence definition data 30(31, 32) may increase. In contrast, in this example, geofence definition data 30(31, 32) is divided into main data 301 and action data 303. In other words, the action data 303 is separated from the main data 301. This makes the action data 303 reusable. That is, 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 one example of this embodiment, it is possible to suppress data duplication for the definition of the same action. Therefore, the amount of data for geofence definition data 30 (31, 32) can be reduced. By increasing the reuse rate, the reduction in data volume can be accelerated.

[0055] In one example, the geofence definition data 30(31, 32) may further include geometry data 305 that defines the geometry that delineates the geofence area. The main data 301 may further include identification information (geometry ID) for the geometry data 305. By including the identification information for the geometry data 305 in the main data 301, the geometry data 305 is associated with the main data 301. In this example, similar to the action data 303, the geometry data 305 is also separated from the main data 301. This makes the geometry data 305 reusable. In other words, by associating the geometry data 305 with another main data, the same area definition (geometry) provided 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 can be suppressed. As a result, the amount of data for the geofence definition data 30(31, 32) can be reduced.

[0056] (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 8, 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.

[0057] 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.

[0058] The action ID is used to identify the action (action data 303) applied to the geofence. 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 8, in one example of this embodiment, the main data 301 contains the action ID, so that the action data 303 identified by the action ID is linked to the main data 301.

[0059] 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 8, 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.

[0060] Here, as described above, in one example, the geofence area may be defined by one geometry or by multiple geometries (Figures 5-7). 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 the identification information for each of multiple geometry data 305 is included, the main data 301 may further include logical operators used to integrate the multiple geometries.

[0061] In the example shown in Figure 8, 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.

[0062] 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.

[0063] In one example, as shown in Figure 8, 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, since the main data 301 includes the integrated shape, it becomes unnecessary to perform the geometry integration operation each time a geofence is used. This is expected to improve processing efficiency.

[0064] 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 to store 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 may be used to draw the map. Drawing information may include any information used to draw geofences on the 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, icon attributes, etc. Icon attributes may include on / off display of the icon, content information (storage location of the icon image, etc.), 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 the geofence by referring to the drawing information of the main data 301, without having to refer to the geometry data 305. Therefore, according to this example, it is possible to expect improved efficiency in the process of drawing the geofence.

[0065] The judgment execution condition is used to select whether or not to perform the geofence judgment process. In one example of this embodiment, the main data 301 includes a field for storing this judgment execution condition, so that the judgment execution condition is used to select whether or not to perform the geofence judgment. It may further include the following. The above action execution conditions define whether or not to perform an action after performing a geofence inside / outside determination, depending on the result of that determination, etc., whereas the determination execution conditions define 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 perform a geofence determination by referring to the determination execution conditions of 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.

[0066] 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.

[0067] 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.

[0068] 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 be configured to indicate the time when at least one of the main data 301, the associated action data 303, and the associated geometry data 305 was updated. Thus, in this example of the embodiment, the main data 301 may further include an overall update time indicating the time when at least one of the main data 301, the action data 303, and the geometry data 305 was updated. In one example of this embodiment, by aggregating the update times in the main data 301, it becomes possible to determine whether or not 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 having to refer to the action data 303 and geometry data 305. This is expected to improve the efficiency of the process when determining whether or not the geofence definition data 30(31, 32) has been updated. However, the update times included in the main data 301 are not limited to this example and may be changed as appropriate depending on the embodiment. In another example, the update times may be configured to indicate the time when the main data 301 was updated, rather than the time when the action data 303 and geometry data 305 were updated. In yet another example, the main data 301 may separately include the overall update time and the individual update times of the main data 301.

[0069] Furthermore, regarding the specific configuration of the main data 301, the configuration elements may be appropriately specified depending on the embodiment. Basic elements can be omitted, replaced, and added. 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 besides 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.

[0070] (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 8, 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.

[0071] 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.

[0072] 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 other than the creation time and update time (e.g., creator, updater, deletion time, deleter, etc.). Action data 303 may further include other information such as the action category and name.

[0073] (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 8, 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.

[0074] 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 manner described above, such as a circle (Figure 2), a polygon (Figure 3), or a link (Figure 4). 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 vary depending on the embodiment. This may be determined as appropriate. 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 of ​​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 the geometry data 305 may be configured in the same way as the management information for the main data 301, etc., except that the target is replaced. In one example, the management information may include the creation time, update time, etc. The creation time may indicate the time when the geometry data 305 was created. The update time may indicate the time when the geometry data 305 was updated.

[0075] 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.

[0076] (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.

[0077] Figures 9 and 10 schematically illustrate an example of how geofences (GF11, GF12) can be associated with each area (P11-P19) on a map. In the example in Figure 9, 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 10, geofence GF12 spans four areas (P15, P16, P18, P19). In this case, the geofence definition data that defines geofence GF12 may be associated with all four areas (P15, P16, P18, P19).

[0078] Returning to Figure 8, 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.

[0079] 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.

[0080] 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.

[0081] 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.

[0082] 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.

[0083] (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.

[0084] For example, in the first step, server device 1 may identify the first area P1 and the second area P2 from the current location information 45 received from client device 2. As described above, the process of identifying each area (P1, P2) from the current location 40 may be performed in at least one of server device 1 and client device 2. When client device 2 performs the process of identifying each area (P1, P2) from the 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.

[0085] 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.

[0086] 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 the main data associated with multiple geometry data 305 Data 301 (i.e., main data 301 indicating the geofence of an area defined by multiple geometries) may exist in 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.

[0087] 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.

[0088] 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.

[0089] (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.

[0090] As an 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 may refer to the geometry ID (identification information) of the main data 301 and access the geometry data 305 associated with the main data 301. 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 this example of the embodiment, this determination process corresponds to the determination of whether the location is inside or outside a geofence.

[0091] 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.

[0092] In this example, the geofence not belonging to the area to which the current location 265 belongs is located. Therefore, the client device 2 can determine that the current location 265 is outside the geofence (an area defined by 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 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 above-mentioned referencing of 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.

[0093] 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.

[0094] (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.

[0095] For example, in the example shown in Figure 8, 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 may be separated from the main data 301, while the other is included in the main data 301. For example, only the action data 303 may be separated from the main data 301, and 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, and the action data 303 may be included in the main data 301. In yet another example, if the reusability of the actions and geometries is not to be ensured, both the action data 303 and geometry data 305 may be included in the main data 301.

[0096] Furthermore, for example, in the example shown in Figure 8, the geofence association 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 The server device 1 may obtain identification information for 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.

[0097] [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.

[0098] 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.

[0099] 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.

[0100] Figure 11 schematically shows an example of a scenario in which geofence definition data 32 held in the client device 2 according to this embodiment is updated. In the example in Figure 11, 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 the areas P31-P39. Geofence definition data 320 is an example of 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.

[0101] 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 11, list 455 may consist of a list of geofence definition data associated with at least one of areas P31 to P39. List 455 excludes areas outside the second area P2 (P31, P34, P37, P38, P39) and associates with at least one of areas (P32, P33, P35, P36) The list may consist of a list of geofence definition data. That is, the 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, the list 455 may consist of a list of the main IDs of the geofence definition data.

[0102] 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.

[0103] In other words, receiving the current location information 45 from 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 11, geofence definition data associated with at least one of the areas (P32, P33, P35, P36) may be excluded as geofence definition data 311. Geofence definition data associated with at least one of the areas P51~P55 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.

[0104] 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 11 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.

[0105] (Provision of updated data) After being provided to client device 2, the geofence definition data may be updated (e.g., 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 provision and is provided to client device 2. Therefore, in this example, server device 1 selects from the geofence definition data registered in list 455 and updates the data. The above process may be performed to provide geofence definition data 315(31) without excluding the newly updated geofence definition data from the extracted geofence definition data 310. The method for providing the updated geofence definition data may be determined as appropriate depending on the embodiment.

[0106] 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.

[0107] In other words, excluding geofence definition data 311 registered in list 455 from the extracted geofence definition data 310 may be performed by determining whether or not there has been an update to the geofence definition data registered in list 455, depending on the acquisition time, and by not excluding geofence definition data 312 that has been determined to have been updated from the geofence definition data registered in list 455, but excluding geofence definition data 311 that has been determined not to have been updated from the extracted geofence definition data 310.

[0108] 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.

[0109] 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.

[0110] Furthermore, the method for determining whether an update has been made is not limited to the acquisition time, but rather the method of implementation. The format may be modified as appropriate depending on the form. 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. Server device 1 may determine whether or not the geofence definition data has been updated by comparing the version information between the geofence definition data 310 extracted from 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 version information is different, and that there has been no update to the geofence definition data if the version information matches. In yet another example, server device 1 may determine whether or not the geofence definition data has been updated by comparing the update times between the geofence definition data 310 extracted from 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 are different, and that there has been no update to the geofence definition data if the update times match.

[0111] (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.

[0112] In the example shown in Figure 11, client device 2 may update its geofence definition data to the geofence definition data at time t+1 by removing geofence definition data 321 from the geofence definition data 320 held at time t and adding geofence definition data 315 provided by server device 1. Geofence definition data 325 is an example of geofence definition data 32 held by client device 2 at time t+1. Client device 2 may not delete, but continue to retain, the action data 303 and geometry data 305 that are shared with the geofence definition data 321 to be deleted, which are 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.

[0113] 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).

[0114] [Priority] In one example of this embodiment, the geofence definition data 30(31, 32) may have a priority assigned to it. 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 preferentially return the geofence definition data with the highest priority among the geofence definition data 31. That is, when the server device 1 returns the geofence definition data 31 extracted to the client device 2, it may preferentially return the geofence definition data with the highest priority. This may include the following. The form of preferential replying may be arbitrarily defined. For example, preferential replying may consist of at least one of the following: sending geofence definition data 31 in order of 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, prioritizing the reply of high-priority geofence definition data can ensure the execution of high-priority geofences.

[0115] Figure 12 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.

[0116] 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.

[0117] On the other hand, dynamic attributes are geofence attributes that can change numerically depending on 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. For example, geofences with a shorter distance from the current location to the geofence boundary (i.e., closer geofences) may be assigned a higher priority, and those with a longer distance may be assigned a lower priority. Also, for example, geofences with an update time closer to the current time (more recent updates) may be assigned a higher priority, and those with an update time further from the current time may be assigned a lower priority. The current time may be the time used to evaluate priority. Also, for example, geofences that have been selected to be accepted by the user may be assigned a higher priority, and those that have not been selected may be assigned a 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.

[0118] 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.

[0119] In the example shown in Figure 12, 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.

[0120] Here, the updated geofence definition data 312 in the example of Figure 11 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.

[0121] 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.

[0122] 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 maintain)". An example of geofences to maintain is at least one of the areas (P32, P33, P35, P36) that remain in either the first area P1 or the second area P2 in the example in Figure 11 above. These are geofences associated with either of the above. "(Maximum number of geofences that can be held in memory resources) - (Number of geofences to maintain)" is an example of available capacity. Before requesting new geofence definition data 31, client device 2 may increase the available capacity of memory resources by deleting geofence definition data 321 for areas outside the first area P1 and the second area P2. This increases the maximum value of the number of requests 49. The available capacity of memory resources may be the available capacity when determining the number of requests 49, or it may be the available capacity predicted when receiving new geofence definition data 31. The prediction of available capacity may be done 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 of 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.

[0123] 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.

[0124] [Server device / Client device] Server device 1 may consist of one or more servers (computers). If server device 1 consists of multiple servers, the multiple servers may cooperate with each other to perform information processing of server device 1 as disclosed herein. In this case, the multiple servers may be counted as one server device 1. Client device 2 may consist of one or more computers configured to monitor the location of a movable object. The number of server devices 1 and client devices 2 may be determined arbitrarily. Any number of client devices 2 may request one server device 1 to provide geofence definition data 31.

[0125] [2 Example Configurations] [Example Hardware Configuration] (Server device) Figure 13 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.

[0126] 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.

[0127] 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.

[0128] Program 81 is a program that causes server device 1 to perform information processing (Figure 17, 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.

[0129] 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.

[0130] 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.

[0131] Regarding the specific hardware configuration of the server device 1, components can be omitted, replaced, and added as appropriate depending on the embodiment. 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.

[0132] (Client device) Figure 14 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.

[0133] The control unit 21 to the communication module 23 and the storage medium 92 of the client device 2 are, respectively, The control units 11 to 13 and the storage medium 91 may be configured similarly to those of the server device 1 described above. 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.

[0134] 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 17 described later) and information processing related to the determination of whether an area is inside or outside a geofence (Figure 18 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.

[0135] 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.

[0136] Client device 2 may perform data communication with other computers (for example, server device 1, etc.) via communication module 23.

[0137] The input device 24 is configured to accept information input. The input device 24 may consist of, for example, a mouse, keyboard, or control. 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 operate the client device 2 by using the input device 24 and the output device 25. The input device 24 and the 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 via wired or wireless connection, for example, a USB (Universal Serial Bus) port or a dedicated port. The input device 24 and the output device 25 may be integrated at least in part by a touch panel display or the like.

[0138] 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.

[0139] Furthermore, 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. The hardware processors are microprocessors, It may be composed of 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 be composed 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 to be provided, or it may be a general-purpose PC, notebook PC, terminal device, etc. The terminal device 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 device, terminal device, etc.).

[0140] [Software Configuration] (Server device) Figure 15 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).

[0141] The request receiving unit 111 is configured to receive current location information 45 from the client device 2. The data extraction unit 112 is configured to extract geofence definition data 31 from the database 3 (geofence definition data 30) 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. The data reply unit 113 is configured to send the extracted geofence definition data 31 back to the client device 2.

[0142] (Client device) Figure 16 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).

[0143] 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 transmit 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 to the range of the geofence defined by the stored geofence definition data 32. The output processing unit 215 is configured to output information related to the geofence determination result.

[0144] (others) In this embodiment, we describe an example in which both the server device 1 and the client device 2 software modules are implemented using 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 be implemented as a hardware module. With respect to the software configuration of server device 1 and client device 2, modules may be omitted, replaced, and added as appropriate, depending on the embodiment.

[0145] [3 Examples of operation] [Provision of geofence definition data] Figure 17 is a sequence diagram showing an example of a processing procedure for requesting and providing geofence definition data according to this embodiment. The following processing procedure for Server Device 1 is an example of an information processing method performed by the server device. The following processing procedure for Client Device 2 is an example of an information processing method performed by the client device. The following overall processing procedure is an example of an information processing method performed 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.

[0146] (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 current position information 45 related to the acquired current position 40 to the server device 1. As a result, the client device 2 requests the server device 1 to provide geofence definition data corresponding to the current position 40.

[0147] 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.

[0148] 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.

[0149] 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.

[0150] In another example, in step S102, the control unit 21 of the client device 2 The number of requests 49 for the offense definition data 31 may be further transmitted. In one example, the number of requests 49 may be determined according to the available memory resources of the client device 2. The upper limit of the number of requests 49 can be increased by performing the above process to delete 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 step S102. The order in which the current location information 45 and the number of requests 49 are transmitted is not particularly limited and may be determined as appropriate depending on the embodiment.

[0151] 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 movement, whether or not a movement satisfying predetermined conditions has occurred. For example, the control unit 21 may determine that a movement satisfying predetermined conditions has occurred (movement beyond a predetermined distance) if the amount of movement (amount of change in position, etc.) exceeds a threshold. On the other hand, if the amount of movement is less than the threshold, the control unit 21 may determine that a movement satisfying predetermined conditions has not occurred. If the amount of movement is equal to the threshold, the control unit 21 may determine that a movement satisfying predetermined conditions has occurred, or it may determine that a movement satisfying predetermined conditions 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 (a movement satisfying predetermined conditions 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 predetermined conditions has not occurred. The control unit 21 may then execute the process in step S102 if it determines that a movement satisfying predetermined conditions has occurred.

[0152] (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.

[0153] 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.

[0154] In another example, the list 455 received in step S201 is sent to client device 2 The acquisition time of the geofence definition data 320(32) may also be included. 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 send back 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.

[0155] In addition, for example, the geofence definition data 30(31, 32) may have a priority defined. The priority may be set according to 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 may identify the priority of each geofence (geofence definition data 31) according to the calculated distance. 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.

[0156] 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).

[0157] 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.

[0158] (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.

[0159] For example, if priorities are set for the geofence definition data 31, 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 piece of geofence definition data 31 according to its priority. For example, the control unit 21 may prioritize saving the highest priority pieces. You may choose to save any number of geofence definition data 31 in order from highest priority, and choose not to save any number of lower priority geofence definition data 31 (i.e., exclude them from saving). The number of geofence definition data 31 to save can 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.

[0160] 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).

[0161] [Determination of whether a geofence is inside or outside the area] Figure 18 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 an example of an information processing method executed by a computer (client device 2). 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 can be omitted, replaced, and added as appropriate.

[0162] (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.

[0163] (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.

[0164] 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.

[0165] (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.

[0166] 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.

[0167] For example, the geofence definition data 32 may specify a priority. For example, the priority may be specified according to at least one of the static and dynamic attributes of the geofence. If the priority is specified according to the dynamic attribute, the control unit 21 may calculate the priority of each geofence (geofence definition data 32) at any time before executing the processing in step S503. For example, if the priority is specified according to the distance to the geofence boundary, the control unit 21 may refer to the integrated figure 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 specify the priority of each geofence (geofence definition data 32) according to the calculated distance.

[0168] 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).

[0169] 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.

[0170] (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.

[0171] 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.

[0172] 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.

[0173] (Step S505) In step S505, the control unit 21 operates as an output processing unit 215 and outputs information regarding the geofence determination result.

[0174] 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.

[0175] (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.

[0176] If the control unit 21 determines that it is not time to terminate the process, it returns to step S501 and executes the process again 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 the inside / outside determination of the geofence in this example. The timing of terminating the process is... The examples are not limited to those shown. The control unit 21 may terminate the processing procedure related to determining whether an area is inside or outside the geofence at any time. Also, in one example, the control unit 11 may execute the series of processes from step S501 to step S506 in real time.

[0177] [Features] In this embodiment, the geofence definition data 30 is managed on a map-based area basis. This allows the server device 1 to 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 in step S202. Therefore, according to this embodiment, a reduction in the processing load on the server device 1 regarding geofence-related information processing can be expected.

[0178] [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. Furthermore, various improvements or modifications may be made to the above embodiments 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 embodiments, and explanations of points similar to those in the above embodiments have been omitted as appropriate. The following modifications can be combined as appropriate.

[0179] 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.

[0180] [5. Supplement] The processes and means described herein can be freely combined and implemented, provided that no technical inconsistencies arise.

[0181] 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.

[0182] This disclosure provides a computer program that implements the functions described in the above embodiments. This can also be achieved by supplying the program 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. 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, or any type of medium suitable for storing electronic instructions. 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]

[0183] 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, 40...Current location, 45...Current location information, P1…Region 1, P2…Region 2

Claims

1. Server equipment, and Client device, A system composed of, The server device is capable of accessing the database of geofence definition data. The geofence definition data is configured to show the definition of a geofence and is associated with the area of ​​the map to which the defined geofence belongs. The aforementioned client device To obtain the current location measured by the positioning module, and To transmit the acquired current location information relating to the current location to the server device. It is configured to perform, The server device is Receiving the current location information from the client device, In accordance with the current location information, geofence definition data is extracted from the database that is associated with at least one of the first area to which the current location belongs and the second area surrounding the first area, and To return the extracted geofence definition data to the client device, Configured to perform, system.

2. The client device transmitting the current location information includes transmitting a list of geofence definition data it holds. Receiving the current location information by the server device includes receiving the list, The geofence definition data extracted by the server device is returned as follows: The geofence definition data registered in the list is excluded from the geofence definition data extracted from the database, and To return the remaining geofence definition data after excluding the geofence definition data registered in the aforementioned list. Composed of, The system according to claim 1.

3. The above list includes the time at which the client device acquires the geofence definition data, Excluding geofence definition data registered in the list from the extracted geofence definition data is: In accordance with the acquisition time, determine whether or not the geofence definition data registered in the list has been updated, and Of the geofence definition data registered in the aforementioned list, geofence definition data that has been determined to have been updated will not be excluded, while geofence definition data that has not been updated will be excluded from the extracted geofence definition data. Composed of, The system according to claim 2.

4. The aforementioned geofence definition data has a defined priority. Sending the geofence definition data extracted by the server device back to the client device includes prioritizing the return of high-priority geofence definition data. The system according to claim 1.

5. The aforementioned priority is determined according to the static attributes of the geofence. The system according to claim 4.

6. The aforementioned priority is determined according to the dynamic attributes of the geofence. The system according to claim 4.

7. The client device transmitting the current location information includes transmitting the number of requests for geofence definition data. Receiving the current location information by the server device includes receiving the number of requests, The process of returning the geofence definition data extracted by the server device to the client device is comprised of returning the requested number of geofence definition data to the client device in order of priority, starting with the geofence definition data with the highest priority. The system according to claim 4.

8. The number of requests is determined according to the available memory resources of the client device. The system according to claim 7.

9. A server device equipped with a control unit and configured to access a database of geofence definition data, The geofence definition data is configured to show the definition of a geofence and is associated with the area of ​​the map to which the defined geofence belongs. The control unit, Receiving current location information regarding the current location of the client device from the said client device. In accordance with the current location information, geofence definition data is extracted from the database that is associated with at least one of the first area to which the current location belongs and the second area surrounding the first area, and To return the extracted geofence definition data to the client device, Configured to perform, Server device.

10. Receiving the current location information includes receiving a list of geofence definition data held by the client device. The extracted geofence definition data is returned as follows: The geofence definition data registered in the list is excluded from the geofence definition data extracted from the database, and To return the remaining geofence definition data after excluding the geofence definition data registered in the aforementioned list. Composed of, The server device according to claim 9.

11. The above list includes the time at which the client device acquires the geofence definition data, Excluding geofence definition data registered in the list from the extracted geofence definition data is: The geofence definition data registered in the list is updated according to the acquisition time. To determine whether or not such an event occurred, and Of the geofence definition data registered in the aforementioned list, geofence definition data that has been determined to have been updated will not be excluded, while geofence definition data that has not been updated will be excluded from the extracted geofence definition data. Composed of, The server device according to claim 10.

12. The aforementioned geofence definition data has a defined priority. Sending the extracted geofence definition data back to the client device includes prioritizing the return of high-priority geofence definition data. The server device according to claim 9.

13. Receiving the aforementioned current location information includes receiving the number of requests for geofence definition data, Sending the extracted geofence definition data back to the client device is performed by sending back the requested number of geofence definition data to the client device in order of priority, starting with the geofence definition data with the highest priority. The server device according to claim 12.

14. The number of requests is determined according to the available memory resources of the client device. The server device according to claim 13.

15. An information processing method executed by a server device, The server device is capable of accessing the database of geofence definition data. The geofence definition data is configured to show the definition of a geofence and is associated with the area of ​​the map to which the defined geofence belongs. The aforementioned information processing method is Receiving current location information regarding the current location of the client device from the said client device. In accordance with the current location information, geofence definition data is extracted from the database that is associated with at least one of the first area to which the current location belongs and the second area surrounding the first area, and To return the extracted geofence definition data to the client device, including, Information processing methods.

16. Receiving the current location information includes receiving a list of geofence definition data held by the client device. The extracted geofence definition data is returned as follows: The geofence definition data registered in the list is excluded from the geofence definition data extracted from the database, and To return the remaining geofence definition data after excluding the geofence definition data registered in the aforementioned list. Composed of, The information processing method according to claim 15.

17. The above list includes the time at which the client device acquires the geofence definition data, Excluding geofence definition data registered in the list from the extracted geofence definition data is: In accordance with the acquisition time, determine whether or not the geofence definition data registered in the list has been updated, and Of the geofence definition data registered in the aforementioned list, geofence definition data that has been determined to have been updated will not be excluded, while geofence definition data that has not been updated will be excluded from the extracted geofence definition data. Composed of, The information processing method according to claim 16.

18. The aforementioned geofence definition data has a defined priority. Sending the extracted geofence definition data back to the client device includes prioritizing the return of high-priority geofence definition data. The information processing method according to claim 15.

19. Receiving the aforementioned current location information includes receiving the number of requests for geofence definition data, Sending the extracted geofence definition data back to the client device is performed by sending back the requested number of geofence definition data to the client device in order of priority, starting with the geofence definition data with the highest priority. The information processing method according to claim 18.

20. The number of requests is determined according to the available memory resources of the client device. The information processing method according to claim 19.