System, server apparatus, and information processing method

CN122160422APending Publication Date: 2026-06-05TOYOTA JIDOSHA KK

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
TOYOTA JIDOSHA KK
Filing Date
2025-12-03
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

In existing technologies, server devices are overloaded when processing geofence determination, especially when the number of geofences and client devices increases, the computational distance leads to an increased processing load.

Method used

By dividing the map into regions, geofencing defines the association between data and regions, and client devices can obtain the necessary data based on the regions to make decisions, thereby reducing the computational load on server devices.

Benefits of technology

This effectively reduces the processing load on the server, lowers the computational pressure for geofencing determination, and improves system efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122160422A_ABST
    Figure CN122160422A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a system, a server apparatus, and an information processing method. In relation to information processing concerning a geo-fence, the processing load of the server apparatus is alleviated. A system according to one aspect of the present disclosure includes a server apparatus and a client apparatus. The server apparatus has access to a database of geo-fence definition data. The geo-fence definition data is associated with a region of a map to which a defined geo-fence belongs. The server apparatus is configured to receive current position information from the client apparatus, extract, from the database, geo-fence definition data associated with at least any one of a first region to which a current position belongs and a second region existing around the first region, based on the current position information, and return the extracted geo-fence definition data to the client apparatus.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to systems, server devices, and information processing methods. Background Technology

[0002] In recent years, the development of geofencing technology has progressed. A geofencing is a segment enclosed by an imaginary boundary line. Essentially, geofencing technology determines whether a user (or device) is inside or outside the geofencing based on their current location. This inside / outside determination can include determining whether the user (or device) has entered or exited the geofencing. Then, based on the result of the inside / outside determination, any action is performed. For example, Patent Document 1 proposes a system that obtains the location of a user's device, determines whether the user has entered the geofencing based on the obtained location, and issues a warning if the user has entered the geofencing.

[0003] Existing technical documents

[0004] Patent documents

[0005] Patent Document 1: Japanese Patent Publication No. 2016-528564

[0006] Patent Document 2: Japanese Patent Publication No. 2018-507568 Summary of the Invention

[0007] One object of this disclosure is to provide a technique for reducing the processing load on server devices for information processing related to geofencing.

[0008] The system according to the first aspect of this disclosure includes a server device and a client device. The server device is capable of accessing a database of geofence definition data. The geofence definition data is configured to represent the definition of a geofence and is associated with the area of ​​the map to which the defined geofence belongs. The client device is configured to perform: obtaining the current location determined by a positioning module; and sending current location information related to the obtained current location to the server device. The server device is configured to perform: receiving the current location information from the client device; extracting, based on the current location information, geofence definition data associated with at least one of the first area to which the current location belongs and the second area existing around the first area from the database; and returning the extracted geofence definition data to the client device.

[0009] The server device according to the second aspect of this disclosure includes a control unit, which is configured to access a database of geofence definition data. The geofence definition data is configured to represent geofence definitions and is associated with the map region to which the defined geofence belongs. The control unit is configured to perform the following actions: receiving current location information related to the current location of a client device; extracting geofence definition data from the database based on the current location information, which is associated with at least one of a first region to which the current location belongs and at least one of a second region surrounding the first region; and returning the extracted geofence definition data to the client device.

[0010] The information processing method according to the third aspect of this disclosure is performed by a server device. The server device has access to a database of geofence definition data. The geofence definition data is configured to represent the definition of a geofence and is associated with the area of ​​the map to which the defined geofence belongs. The information processing method includes: receiving current location information related to the current location of the client device from a client device; extracting geofence definition data associated with at least one of a first area to which the current location belongs and a second area existing around the first area from the database based on the current location information; and returning the extracted geofence definition data to the client device.

[0011] According to this disclosure, the processing of information related to geofencing can be expected to reduce the processing load on server devices. Attached Figure Description

[0012] Figure 1 An example of a scenario in which this disclosure is applied is illustrated schematically.

[0013] Figure 2 This schematically illustrates an example of a method for defining the geometry (segment) of a geofence according to this disclosure.

[0014] Figure 3 This schematically illustrates an example of a method for defining the geometry (segment) of a geofence according to this disclosure.

[0015] Figure 4 This schematically illustrates an example of a method for defining the geometry (segment) of a geofence according to this disclosure.

[0016] Figure 5 An example of the method for merging the geometry of this disclosure is shown schematically.

[0017] Figure 6 An example of the method for merging the geometry of this disclosure is shown schematically.

[0018] Figure 7An example of the method for merging the geometry of this disclosure is shown schematically.

[0019] Figure 8 This illustration schematically shows an example of the structure of the geofence definition data of this disclosure.

[0020] Figure 9 An example of the association method for region-associated geofences of this disclosure is illustrated schematically.

[0021] Figure 10 An example of the association method for region-associated geofences of this disclosure is illustrated schematically.

[0022] Figure 11 This illustration schematically depicts an example of a scenario where updated geofence definition data is maintained in a client device.

[0023] Figure 12 This illustration shows an example of a scenario in which the present disclosure utilizes the prioritization of data settings for geofencing definitions.

[0024] Figure 13 An example of the hardware structure of the server apparatus of this disclosure is schematically shown.

[0025] Figure 14 An example of the hardware structure of the client device of this disclosure is schematically shown.

[0026] Figure 15 An example of the software architecture of the server apparatus of this disclosure is schematically shown.

[0027] Figure 16 An example of the software architecture of the client device of this disclosure is schematically shown.

[0028] Figure 17 This is a sequence diagram illustrating an example of the request for and provision of geofence definition data in this disclosure, as well as the related processing procedures.

[0029] Figure 18 This is a flowchart illustrating an example of the processing procedure related to the determination of whether a geofence is inside or outside, as disclosed in this disclosure. Detailed Implementation

[0030] When a server device performs geofence determination processing on each client device, the processing load on the server device increases. Therefore, to reduce the processing load on the server device, a structure can be adopted in which each client device performs the geofence determination processing. For example, Patent Document 2 proposes a system in which a server device distributes geofence definition data existing within a predetermined range (a threshold distance range) from the current location of a client device to each client device, and each client device performs geofence determination processing according to the distributed definition data. However, in this system, the server device calculates the distance between the geofence of the target and the current location of the client device, compares the calculated distance with a threshold, and decides whether to distribute the geofence definition data of the target to the client device based on the comparison result. As the number of geofences and client devices increases, the distance calculation accumulates. Therefore, there is a possibility that the processing load on the server device will increase.

[0031] In contrast, the system according to the first aspect of this disclosure includes 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 represent the definition of a geofence and is associated with the area of ​​the map to which the defined geofence belongs. The client device is configured to perform: obtaining the current location determined by a positioning module; and sending current location information related to the obtained current location to the server device. The server device is configured to perform: receiving the current location information from the client device; extracting, based on the current location information, geofence definition data associated with at least one of the first area to which the current location belongs and the second area existing around the first area from the database; and returning the extracted geofence definition data to the client device.

[0032] In the first aspect of this disclosure, the map is divided into regions, and geofence definition data is associated with the region to which the defined geofence belongs. That is, geofence definition data is managed in regional units on the map. Therefore, even without calculating the distance between the current location of the client device and the geofence, the server device can extract and distribute geofence definition data to the client device based on the regions (region 1 and region 2). Thus, according to the first aspect of this disclosure, the processing load on the server device regarding geofence-related information is expected to be reduced.

[0033] Furthermore, the present disclosure is not limited to the systems described above. As another aspect of the system described above, one aspect of this disclosure may be an information processing apparatus (server apparatus, client apparatus) that implements all or part of the above-described components, an information processing method, a program, or a machine-readable storage medium such as a computer storing such a program. Here, a machine-readable storage medium refers to a non-transitory medium that stores information such as programs through electrical, magnetic, optical, mechanical, or chemical action. Non-transitory storage media may include storage media (CDs, DVDs, semiconductor memories, etc.), auxiliary storage devices for computers, external storage devices connected to computers, etc.

[0034] For example, the server device involved in the second aspect of this disclosure may include a control unit and may be configured as a database capable of accessing geofence definition data. The geofence definition data may be configured to represent geofence definitions and may be associated with the map region to which the defined geofence belongs. The control unit may be configured to perform: receiving current location information related to the current location of a client device; extracting, based on the current location information, geofence definition data from the database that is associated with at least one of a first region to which the current location belongs and a second region existing around the first region; and returning the extracted geofence definition data to the client device.

[0035] Alternatively, for example, the information processing method involved in the third aspect of this disclosure can be executed by a server device. The server device can access a database of geofence definition data. The geofence definition data can be configured to represent the definition of a geofence and can be associated with the area of ​​the map to which the defined geofence belongs. The information processing method may include: receiving current location information related to the current location of the client device from a client device; extracting geofence definition data associated with at least one of a first area to which the current location belongs and a second area existing around the first area from the database based on the current location information; and returning the extracted geofence definition data to the client device.

[0036] Hereinafter, with reference to the accompanying drawings, an embodiment relating to one aspect of this disclosure will be described. However, the embodiments described below are merely illustrative in all respects. Various modifications or variations can be made without departing from the scope of this disclosure. When implementing this disclosure, specific structures corresponding to the embodiments may also be appropriately adopted. Furthermore, in this embodiment, the data presented is described using natural language, but more specifically, it is specified using virtual language, instructions, parameters, machine language, electrical signals, etc., which are recognizable by machines such as computers.

[0037] [1 Application Example]

[0038] Figure 1 An example of a scenario in which this disclosure is applied is illustrated schematically. The system S involved in this embodiment consists of a server device 1 and a client device 2.

[0039] Server device 1 is configured to access geofence definition data 30 in a database 3. Database 3 can be stored in any storage area. In one example, database 3 can be stored in the storage resources of server device 1. Thus, server device 1 can be configured to access database 3. In another example, database 3 can be stored in an external storage device such as the storage device of another computer. The storage device of the other computer may include NAS (Network Attached Storage). In this case, server device 1 can be configured to have a module for connecting to an external storage device ( Figure 13 The communication module 13, etc., can be connected to an external storage device via a network or the like. The connection method is not particularly limited and can be appropriately selected depending on the implementation method. Thus, the server device 1 can be configured to access the database 3 stored on the external storage device. The geofence definition data 30 is configured to represent the definition of a geofence. The map is pre-divided into multiple areas. The geofence definition data 30 is associated with the area of ​​the map to which the defined geofence belongs.

[0040] Client device 2 is configured to obtain the current location determined by positioning module 26. In one example, client device 2 may also have positioning module 26 internally (i.e., it may be built-in). In another example, client device 2 may be directly or indirectly connected to positioning module 26, which is provided externally. Indirect connection can be established via a network (such as a Controller Area Network), other computers, etc. Client device 2 obtains the current location 40 determined by positioning module 26. Client device 2 sends current location information 45 related to the obtained current location 40 to server device 1. Thereby, client device 2 requests server device 1 to provide geofence definition data corresponding to the current location 40.

[0041] Server device 1 is configured to provide geofence definition data 31 upon 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 region P1 to which the current location 40 belongs and the second region P2 existing around the first region P1. Server device 1 returns the extracted geofence definition data 31 to client device 2.

[0042] Client device 2 can update the maintained geofence definition data 32 with the received geofence definition data 31. If there is no existing maintained geofence definition data 32, client device 2 can save the geofence definition data 31 received from server device 1 as geofence definition data 32. If there is existing geofence definition data 32, client device 2 can update the maintained geofence definition data 32 by appending the geofence definition data 31 received from server device 1.

[0043] Client device 2 can acquire the current location 265 determined by positioning module 26 at any time interval. Client device 2 can determine whether the acquired current location 265 is inside or outside the corresponding geofence based on the maintained geofence definition data 32. The geofence determination can continue. While continuing the geofence determination, client device 2 can also determine the migration status of the object relative to the geofence based on the previous and current determination results. The categories of migration status can be appropriately defined according to the implementation method. In one example, the categories of migration status can include at least one of staying outside the geofence, entering from outside the geofence, staying inside the geofence, and exiting from inside the geofence. Furthermore, in the following description, determining whether the current location 265 is inside or outside the geofence is also referred to as "geofence inside / outside determination." Geofence inside / outside determination is also simply referred to as "geofence determination."

[0044] As described above, in this embodiment, the map is divided into regions, and the geofence definition data 30 is associated with the region to which the defined geofence belongs. That is, the geofence definition data 30 is managed in regional units on the map. Therefore, even without calculating the distance between the current location 40 of the client device 2 and the geofence, the server device 1 can extract and distribute the geofence definition data 31 to the client device 2 based on the regions (first region P1 and second region P2). Therefore, according to this embodiment, the processing load on the server device 1 regarding geofence-related information can be expected to be reduced.

[0045] [Map / Region]

[0046] A map (map data MP) may be provided as appropriate. The map data MP may be appropriately configured to represent a map. A known structure may be used in the structure of the map data MP. In one example, the map data MP may be configured to include latitude / longitude coordinate information, road network information, facility information, etc. The road network information may also include the IDs (road segment IDs) of each road (road segment). The map data MP may be stored in any storage area. The map data MP may be stored in the memory resources of server device 1, the memory resources of client device 2, and at least one of external storage devices.

[0047] In client device 2, the map data MP can be used for any purpose, such as displaying a specified segment or location, or providing route guidance. If the map data MP is not pre-stored and is used for any purpose, client device 2 can obtain data of at least the area to be used from the map data MP using any method from at least one of server device 1 and external storage device. Known methods can be used to obtain the map data MP. In client device 2, the geofence determination process can be performed either in conjunction with the processing of using the map data MP or independently of the processing of using the map data MP.

[0048] Each region can be appropriately defined according to the implementation method. There are no particular restrictions on the method of map segmentation; it can be appropriately selected according to the implementation method. For example... Figure 1 As shown, in one example, the map can be divided into grids to form regions. The shape of each region (region 1 P1, region 2 P2) can be rectangular. However, the shape of each region is not limited to this example and can be appropriately chosen depending on the implementation method. Any shape other than a rectangle can also be used for each region. The map can also be divided using methods other than grids. Furthermore, each region can be appropriately managed. In one example, each region can be assigned identification information (region ID). Each region can be identified by its assigned region ID. The information for each region can include information indicating its coordinate range along with the region ID. The information for each region can be managed either within the map data MP or independently of the map data MP. It is not necessary to provide map data MP as long as each region is managed in a way that determines the region (region 1 P1) to which the current location 40 belongs when the current location 40 is provided.

[0049] [Current Location Information]

[0050] As long as the current location information 45 includes information that can determine the first region (first region P1) to which the current location 40 belongs and the surrounding second region (second region P2), its structure is not particularly limited and can be appropriately determined according to the implementation method.

[0051] In one example, the current location information 45 can be configured to represent the current location 40. In this case, the server device 1 can determine the first region and the second region based on the current location 40 represented by the current location information 45.

[0052] In another example, where client device 2 has access to information about each region, the first region to which the current location 40 belongs can also be determined by client device 2. The current location information 45 can be configured to represent the first region. For example, the current location information 45 can be configured to include at least one of the region ID of the first region and information representing a coordinate range. The coordinate range can be arbitrarily represented. For example, such as... Figure 1 (To be continued) Figure 9 as well as Figure 10 For example, when the region is rectangular, the coordinate range can be represented by coordinate pairs of vertices arranged diagonally, such as the lower left vertex and the upper right vertex. In this case, server device 1 can determine the first region to which the current position 40 belongs based on the current position information 45 received from client device 2. Furthermore, server device 1 can determine the surrounding second region based on the first region represented by the current position information 45.

[0053] In another example, client device 2 may also determine at least a portion of the surrounding second region. Current location information 45 may be configured to represent at least a portion of the second region and the first region. For example, current location information 45 may be configured to include at least one of the region IDs of the first and second regions and information representing a coordinate range. The coordinate range may represent both the first and second regions together, or it may represent each region independently. In this case, server device 1 can determine the first region to which the current location 40 belongs, and at least a portion of the surrounding second region, based on the current location information 45 received from client device 2. If client device 2 has determined a portion of the second region, server device 1 can determine the remaining second region based on the first region represented by the current location information 45 and a portion of the second region.

[0054] Furthermore, the current position 40 can be the original position determined by the positioning module 26, the position obtained by correcting the measurement results of the positioning module 26 using any method, or the position predicted based on the measurement results of the positioning module 26. The same applies to the current position 265. Additionally, the positioning module 26 can be equipped to determine the position of any object (including a person). In one example, the positioning module 26 can be equipped on the client device 2 to determine the current position of the client device 2 itself. In another example, the positioning module 26 can also be equipped on an object other than the client device 2 (such as a mobile device MB) to determine the current position of that object. The current position 40 of the client device 2 can include the current position of objects other than the client device 2.

[0055] In addition, Figure 1 In the example, eight second regions (second region P2) exist around the first region (first region P1). Each second region is defined as an adjacent region that has been moved one region in each direction from the first region. However, the definition of the second region (i.e., the surrounding area) is not limited to this example and can be appropriately changed according to the implementation. The second region may include regions that are not directly adjacent to the first region. For example, the second region may also include regions that have been moved two or more regions in one direction from the first region.

[0056] [Geofencing]

[0057] A geofence is a segment enclosed by imaginary boundaries defined on a map. It can perform arbitrary actions in response to events such as entry into the segment. Therefore, in one example, a geofence can be defined by the geometry of the segment (geographical extent) and the actions associated with that segment.

[0058] (Geometric figures)

[0059] There are no particular restrictions on the method for defining geometric figures; it can be appropriately selected based on the implementation method. Well-known methods can also be used in defining geometric figures. The information of the geometric figures can include arbitrary information used to delineate segments (geographical extents).

[0060] Figure 2 , Figure 3 as well as Figure 4 This schematically illustrates an example of a method for defining the geometry GM (segment) of a geofence according to this embodiment. In one example, such as Figure 2As shown, the geometric shape GM can be defined by a center coordinate CC and a radius r. In this case, a geofence segment can be defined as a circular area with radius r starting from the center coordinate CC. The circumference of the circle with radius r centered at the center coordinate CC is the boundary line of the geofence segment. When a pathway RP is provided, the intersection point BD of the geofence boundary line and the pathway RP is the boundary of the geofence on the pathway RP. Furthermore, the pathway RP can be provided in any way. The pathway RP can be, for example, a road, airway, or flight path. The pathway RP can be provided physically in space or virtually. The pathway RP can also be omitted.

[0061] In one example, such as Figure 3 As shown, the geometry GM can be defined by the coordinates of feature points FC. In this case, a geofence segment can be delineated as the extent of a closed polygon formed by connecting adjacent feature points FC to each other. The lines connecting the feature points FC are the boundary lines of the geofence segments. The pathway RP and the boundary (intersection BD) are... Figure 2 The examples are the same. Furthermore, in Figure 3 In one example, six feature points FC are specified. However, the number of feature points FC is not limited to this example and can be appropriately selected according to the implementation method. The number of feature points FC can be any number greater than three.

[0062] In one example, such as Figure 4 As shown, the geometry GM can be defined by the road segment LC and the distance d from the road segment LC. In this case, the geofence segment can be defined as a capsule-shaped area at a distance d from the road segment LC. The outer perimeter of the capsule shape at a distance d from the road segment LC is the boundary line of the geofence segment. The pathway RP and the boundary (intersection BD) are... Figure 2 The example is the same. Furthermore, the road segment LC can be appropriately defined. The road segment LC can be provided as a pathway RP such as a road segment, or it can be provided independently of the pathway RP. The information of the road segment LC can be appropriately constructed. For example, the information of the road segment LC can include identification information such as the road segment ID. The range information representing the extent of the road segment LC can be associated with the identification information and stored in any storage area. Thus, the information of the road segment LC can be constructed to indirectly represent the extent of the road segment LC. Alternatively, for example, the information of the road segment LC can also be constructed to directly represent the extent of the road segment LC by including the aforementioned range information. For example, the extent of the road segment LC can be defined by endpoints (LC1, LC2). The endpoints (LC1, LC2) can also be referred to as the start point or the end point, respectively. According to an example of this geometry GM, by increasing the width of the road segment LC by a distance d, compared to the case where only the road segment LC constitutes a geofence, geofencing determination processing (detection of events for a segment) becomes easier.

[0063] (Merging of geometric figures)

[0064] Geofencing zones can be defined using either a single geometric shape or multiple geometric shapes. When zones are defined using multiple geometric shapes, these shapes can be appropriately merged (combined). There are no particular restrictions on the methods for merging geometric shapes; they can be chosen appropriately based on the implementation method. In one example, merging geometric shapes can be defined using logical operators such as logical sum, logical product, and XOR.

[0065] Figure 5 This schematically illustrates an example (logical AND) of a method for merging the geometric figures (GM1, GM2) involved in this embodiment. Figure 5 In this scenario, we envision a logical summation operation used to merge two geometries (GM1, GM2). In this case, a geofence segment is defined as a segment that includes at least one of geometries GM1 or GM2. If the segment belongs to at least one of geometries GM1 or GM2, the current position (current position 265) is determined to be inside the geofence. If the segment does not belong to either geometries GM1 or GM2, the current position is determined to be outside the geofence. Figure 5 In the case where a path RP is provided, the outer perimeter (boundary line) of the combined geometry (GM1, GM2) and the two intersection points BD of the path RP form the boundary of the geofence on the path RP.

[0066] Figure 6 This illustration schematically shows an example (logical product) of a method for merging the geometric figures (GM1, GM2) involved in this embodiment. Figure 6 In this scenario, consider a logical product as a logical operator used to merge two geometries (GM1, GM2). In this case, the geofence segment is defined as the overlapping segment of geometries GM1 and GM2. If the current position belongs to a segment of both geometries GM1 and GM2, it is determined to be inside the geofence. If the current position belongs to a segment of only one of geometries GM1 and GM2, or does not belong to either segment, it is determined to be outside the geofence. Figure 6 In the case where a path RP is provided as shown, the outer perimeter of the repeating range of the two geometries (GM1, GM2) and the two intersection points BD of the path RP become the boundary of the geofence on the path RP.

[0067] Figure 7This schematically illustrates an example (XOR) of a method for merging the geometric figures (GM1, GM2) involved in this embodiment. Figure 7 In this scenario, we envision a situation where the logical operator used to merge two geometries (GM1, GM2) employs XOR. In this case, the geofence segment is defined as a segment belonging only to either geometry GM1 or GM2. If the current location belongs to a segment belonging only to either geometry GM1 or GM2, it is determined to be inside the geofence. If the current location belongs to a segment where geometry GM1 and GM2 overlap, or if it does not belong to either segment, it is determined to be outside the geofence. Figure 7 In the case where a pathway RP is provided as shown, the boundary lines of each geometry (GM1, GM2) and the two intersection points BD of the pathway RP, as well as the outer perimeter of the overlapping range of the two geometry (GM1, GM2) and the two intersection points BD of the pathway RP, constitute the boundary of the geofence on the pathway RP.

[0068] (action)

[0069] There are no particular restrictions on the method for defining actions; it can be appropriately selected based on the implementation method. Well-known methods can be used to define actions. In one example, an action can be defined by its execution content (action content) and execution conditions (action execution conditions). That is, an action can be defined as providing "when" (execution conditions) to perform "what" (execution content) for a given geographical area (geometry).

[0070] (A) Action content

[0071] The actions can be appropriately determined based on the implementation method, such as the scenario and purpose of utilizing the geofencing. Actions may include, for example, the operation of the control device, information generation, and information output. The controlled device can be the client device 2 itself or any device connected to the client device 2. The operation of the control device may include, for example, operating in a specific mode among multiple modes, performing a predetermined task, permitting the execution of a predetermined task, or prohibiting the execution of a predetermined task. Information generation may include, for example, generating notifications to external computers. Information output may include, for example, prompting the user or sending information to external computers.

[0072] like Figure 1As shown, in one example, client device 2 can be equipped on a mobile body (MB). The type of mobile body (MB) is not particularly limited as long as it is mobile, and can be appropriately selected according to the implementation method. The mobile body (MB) can be, for example, a person, a vehicle, an aircraft, a ship, a robotic device, etc. Vehicles can include manually driven vehicles and autonomous vehicles. Vehicles can be selected from, for example, two-wheeled vehicles, three-wheeled vehicles, four-wheeled vehicles, etc. The power source of the vehicle can be selected from, for example, electricity, fuel, etc. When the vehicle is a car, the size of the vehicle can be selected from, for example, large, medium, semi-medium, ordinary, large-special, small-special, etc. When the vehicle is a two-wheeled vehicle, the size of the vehicle can be selected from, for example, large, ordinary, etc. An aircraft can include a drone. When the mobile body (MB) is a person, client device 2 can be any portable computer. When the mobile body (MB) is a vehicle, an aircraft, a ship, a robotic device, etc., client device 2 can be any computer at least temporarily equipped on that device. For example, when the mobile body (MB) is a vehicle, client device 2 can be either a vehicle-mounted device or a terminal device (user terminal, etc.) temporarily equipped on the vehicle when the user uses the vehicle. The client device 2 can be a computer that constitutes at least a part of the mobile MB, or a computer connected to the mobile MB. Alternatively, the client device 2 can be configured to be externally located on the mobile MB to control its operation. In this case, the positioning module 26 can be located on the mobile MB. Whether the client device 2 is located inside or outside the mobile MB, the actions can include any actions related to the mobile MB.

[0073] For example, if the mobile entity MB is a vehicle, the geofence can be set to a low-emission zone. The vehicle can be a hybrid vehicle. In this case, the action content can include switching the vehicle's operating mode from hybrid mode to EV (Electric Vehicle) mode when the vehicle enters the geofence and its operating mode is hybrid mode. Additionally, for example, if at least one of the vehicle and client device 2 has a camera, the action content can include prohibiting the use of the camera for recording. Furthermore, for example, the action content can include notifying an external computer (server, etc.) of the vehicle's movement status. The vehicle's movement status can include, for example, approaching the destination, arriving at the destination, stopping at the destination, departing from the destination, etc. In one example, the vehicle can be a delivery truck, and the destination can be the delivery destination (shop, etc.). Additionally, for example, the action content can include outputting to the client device 2 (…). Figure 14The advertisement can be output from at least one of the following devices: the client device 25 and an external output device. For example, the external output device may be an output device (display, speaker, etc.) that is independently equipped on the vehicle, separate from the client device 2. The advertisement may include coupon information for enjoying discounts at the target store.

[0074] Furthermore, the number of actions specified in the action content can be either one or multiple. When multiple actions are defined in the action content, each action can be called a sub-action. The action content can be defined by combining multiple sub-actions. When defining the action content by combining multiple sub-actions, the execution priority of each sub-action can be set. Additionally, there can be execution dependencies between at least some of the sub-actions, such as controlling whether a second sub-action can be executed or determining the execution content of a second sub-action based on the execution result of the first sub-action.

[0075] Furthermore, the action content can be determined statically in advance or dynamically based on predetermined conditions. Dynamic determination of action content can be based on various conditions such as time period, date, weather, presence or absence of events, user status, and device (client device 2, mobile MB, vehicle, etc.) status. As an example, action content can be defined as displaying advertisements based on time periods (displaying coffee advertisements in the morning, and Western restaurant advertisements in the evening, etc.).

[0076] (B) Conditions for Action Execution

[0077] Action execution conditions are the conditions used to determine whether to execute an action. Action execution conditions can be appropriately defined as conditions relating to events related to a geofence. Events related to a geofence can be appropriately detected based on the results of geofence inward / outward determinations. In a simple example, conditions relating to geofence events can include being located inside or outside the geofence at least one of these. Additionally, the evolution of the geofence's positional relationship can be monitored by continuously executing geofence inward / outward determinations. Correspondingly, in one example, conditions relating to geofence events can also be detected based on the results of monitoring the evolution of the geofence's positional relationship. For example, geofence events can include at least one of staying outside the geofence, entering from outside the geofence, staying inside the geofence, and exiting from inside the geofence. Staying inside (outside) the geofence can also include staying inside (outside) the geofence for more than a predetermined time and performing a predetermined movement inside (outside) the geofence at least one of these.

[0078] Action execution conditions may also include any conditions other than those related to events related to the geofence. In one example, action execution conditions may also include conditions related to the execution environment of the action. The execution environment may include all elements related to the state of the action. For example, the execution environment may include dynamic elements such as time period, date, weather, and the presence or absence of any events. In another example, action execution conditions may include at least one of conditions related to the state of the device and conditions related to the state of the user of the device. The device may be the client device 2 itself or any device connected to the client device 2. The device may also be a mobile device (MB). When determining whether any condition is met, the client device 2 may appropriately obtain information for the determination from any information source. For example, when the action execution conditions include conditions related to the state of the device, the client device 2 may determine whether the conditions related to the state of the device are met based on at least one of information held within the device and information obtained from other devices connected to the device. Other devices may include computers connected via a network, such as external servers. Other devices may include various sensors, such as vehicle sensors. The same applies when the action execution conditions include conditions related to the state of the user.

[0079] As an example, in the scenario described above where client device 2 is equipped with a vehicle, the action execution conditions may also include conditions related to the vehicle's state. Client device 2 can determine whether the conditions related to the vehicle's state are met based on vehicle information obtained from the vehicle. For example, regarding geofences related to low-emission zones, conditions related to the vehicle's state may include the vehicle being in hybrid mode. Correspondingly, if the vehicle was in EV mode before entering the geofence, client device 2 may determine that the action execution conditions are not met and omit the action of switching the vehicle's operating mode to EV mode. Additionally, for example, conditions related to the vehicle's (including client device 2) state may include the camera being started. Correspondingly, if the camera stopped before entering the geofence, client device 2 may determine that the action execution conditions are not met and omit the action of prohibiting the use of the camera for recording. Furthermore, for example, conditions related to the vehicle's (including client device 2) state may include not performing sound output through an application other than the application for which the action is being performed. Correspondingly, client device 2 may determine that the action execution conditions are not met during the period when sound output is performed through another application and omit the action execution. In response to the end of a sound output performed through another application, the client device 2 determines that the action execution condition is met and executes the action defined by the action content.

[0080] Furthermore, after the action execution conditions are met, the action defined by the action content can be executed at any time. In one example, the action can be executed immediately at the point when the action execution conditions are met, or it can be executed after a predetermined delay time. Additionally, there is no particular limitation on the number of times the action is executed in response to the fulfillment of the action execution conditions, and this can be appropriately determined according to the implementation method. In one example, the action can be executed only once, or it can be executed repeatedly under predetermined conditions.

[0081] In an action execution condition, one or more conditions can be defined. Action execution conditions can also be composed of combinations of multiple conditions. When composed of multiple conditions, the action execution condition is deemed satisfied in response to the fulfillment of any one of the conditions included in the action execution condition. In one example, the action execution condition is deemed satisfied in response to the fulfillment of any one condition or at least two or more of the conditions. A priority order can also be set for each condition. The priority order can be set statically or dynamically based on the execution environment, etc. In this case, the judgment and processing of each condition can be performed according to the priority order. Action execution conditions can also be called triggering events.

[0082] [Geofencing definition data]

[0083] The structure of the geofence definition data 30 (31, 32) is not particularly limited as long as it is constructed in a way that defines geofences (geometry and actions), and can be appropriately determined according to the implementation method. In one example, the geofence definition data 30 may be configured to include information on both the geometry and the actions.

[0084] Figure 8An example of the structure of the geofence definition data 30 (31, 32) according to this embodiment is schematically shown. In one example, the geofence definition data 30 (31, 32) may include action data 303 that defines actions within a geofence, and body data 301 that includes identification information (action ID) of the action data 303. The action data 303 is associated with the body data 301 by including the identification information of the action data 303. As the number of geofences increases, the amount of data in the geofence definition data 30 (31, 32) may increase. In contrast, in one example of this embodiment, the geofence definition data 30 (31, 32) is divided into body data 301 and action data 303. In other words, the action data 303 is separated from the body data 301. Thus, the action data 303 is configured to be reusable. That is, by associating the action data 303 with other body data, the same action defined by the action data 303 can also be set for other geofences. Therefore, according to one example of this embodiment, the duplication of data for the definition of the same action can be suppressed, thus reducing the amount of data regarding geofence definition data 30 (31, 32). This reduction in data volume can be facilitated by improving reuse rates.

[0085] In another example, the geofence definition data 30 (31, 32) may also include geometric data 305 that defines the geometry of the segment delineating the geofence. The main data 301 may also include identification information (geometric ID) of the geometric data 305. By including the identification information of the geometric data 305 in the main data 301, the geometric data 305 is associated with the main data 301. In one example of this embodiment, similar to the action data 303, the geometric data 305 is also separated from the main data 301. Therefore, the geometric data 305 is also configured to be reusable. That is, by associating the geometric data 305 with other main data, the same segment definition (geometric shape) based on the geometric data 305 can be applied to other geofences. Therefore, according to an example of this embodiment, when multiple geofences are set as the same segment, the duplication of data for the same segment definition can be suppressed. Therefore, regarding the geofence definition data 30 (31, 32), a reduction in data volume can be achieved.

[0086] (Main Data)

[0087] The subject data 301 can be appropriately configured to represent a geofence. In one example, the subject data 301 can be configured to represent the definition of a geofence together with the associated action data 303 and geometric data 305, through identification information (action ID, geometric ID) including action data 303 and geometric data 305. Figure 8 As shown, in one example of this embodiment, the main data 301 may have fields storing various information such as main data ID, action ID, geometric shape ID, description information, judgment execution conditions, validity period, and management information. The order of the fields is not particularly limited and can be appropriately changed according to the embodiment. In one example, one piece of main data 301 may correspond to one geofence.

[0088] A subject ID can be used to identify geofences. The subject ID is an example of the identification information in subject data 301. The data format of the identification information (subject ID) is not particularly limited and can be appropriately determined according to the implementation method. The value of the subject ID can be provided based on the time when the geofence was registered by creating subject data 301. The time can include year, month, and day. The object unit of the time can be arbitrarily chosen. Thus, the subject ID can be configured to determine the registration order through its value.

[0089] Action IDs are used to identify actions applied to a geofence (action data 303). An action ID is an example of the identification information in action data 303. The data format of the action identification information (action ID) is not particularly limited and can be appropriately determined according to the implementation method. Figure 8 As shown, in one example of this embodiment, the action data 303 identified by the action ID can be associated with the action data 301 by including the action ID in the main data 301.

[0090] A geometry ID is used to identify the geometry applied to a geofence (geometric data 305). The geometry ID is an example of the identification information in geometry data 305. The data format of the geometry identification information (geometric ID) is not particularly limited and can be appropriately determined according to the implementation method. For example... Figure 8 As shown, in one example of this embodiment, the body data 301 includes a geometric figure ID, so that the geometric figure data 305 identified by the geometric figure ID can be associated with the body data 301.

[0091] Here, as mentioned above, in one example, a geofence segment can be defined by either a single geometry or multiple geometry. Figures 5-7Correspondingly, the identification information including geometric data 305 can be constructed by including the identification information of the geometric data 305 of one or more geometric figures. In the case of including the identification information of the geometric data 305 of multiple geometric figures, the main data 301 may also include logical operators used in the merging of multiple geometric figures.

[0092] exist Figure 8 In one example, more than one geometry ID can be stored in the geometry ID field of the main data 301. Thus, more than one geometry data 305 can be associated with the main data 301. By including multiple geometry IDs in the main data 301, multiple geometries can be associated with the main data 301 for delineating segments of the defined geofence. Additionally, the main data 301 may also have a field for storing logical operators. When the main data 301 includes multiple geometry IDs, this field can store the logical operators used when merging the geometries corresponding to each geometry ID. Therefore, the main data 301 can include logical operators used in merging the associated geometries.

[0093] According to one example of this embodiment, multiple geometric data 305 (multiple geometric shapes) can be used to delineate geofence segments. This further improves the reusability of the geometric data 305, thus allowing for a further reduction in data volume. Furthermore, complex segment definitions can be easily generated not only by utilizing a single geometric shape for segment definition, but also by combining multiple geometric shapes.

[0094] Furthermore, in one example, such as Figure 8 As shown, when merging multiple geometric shapes is permitted, the main data 301 may also include a field storing a merged graphic formed by merging multiple geometric shapes using logical operators. Therefore, in the case of including the geometric shape ID (identification information) of the geometric shape data 305 of each of the multiple geometric shapes, the main data 301 may also include the merged graphic formed by merging the multiple geometric shapes. The merged graphic can be used for any purpose, such as distance calculation. According to an example of this embodiment, by including the merged graphic in the main data 301, it is possible to avoid performing the operation of merging geometric shapes every time a geofence is used. Therefore, improved processing efficiency can be expected.

[0095] Descriptive information is used to depict geofences on a map. In one example of this embodiment, by having a field to store this descriptive information, the main data 301 can also include descriptive information for depicting geofences on a map in the client device 2. As described above, in the client device 2, the map can be used for any purpose, such as displaying a specified section or location, or providing route guidance. Map data MP can be used in the map depiction. The descriptive information can include any information used to depict geofences on a map. For example, the descriptive information can include information such as representative location (coordinates, etc.), name, and descriptive attributes. Descriptive attributes can include the geofence's display ON / OFF, coloring, border color, transparency, and icon attributes. Icon attributes can include the icon's display ON / OFF, content information (the destination where the icon image is saved, etc.). The representative location can be used as the location where the icon is displayed. According to an example of this embodiment, the geometric data 305 of the specified geometry is separated from the main data 301, while the descriptive information is retained in the main data 301. Therefore, in client device 2, even without referring to geometric data 305, geofences can be drawn by referring to the depiction information in subject data 301. Thus, according to an example of this embodiment, the efficiency of geofence drawing processing can be expected to be improved.

[0096] The decision execution condition is used to select whether to perform the geofencing decision process. In one example of this embodiment, the main data 301 may also include a decision execution condition for selecting whether to perform the geofencing decision by having a field that stores the decision execution condition. The above-mentioned action execution condition determines whether to perform an action based on the result of the geofencing inside / outside determination, etc., in contrast to the decision execution condition which originally determines whether to perform the geofencing inside / outside determination. According to an example of this embodiment, even without referring to the action data 303 (and the geometric data 305), it is possible to determine whether to perform the geofencing decision by referring to the decision execution condition of the main data 301. Therefore, the efficiency of the geofencing decision process can be expected to be improved.

[0097] Furthermore, there are no particular limitations on the decision execution conditions, which can be appropriately set according to the implementation method. The decision execution conditions can be set for static information or for dynamic information such as the aforementioned execution environment. Static information may include, for example, the type of the mobile entity MB (vehicle type, etc.) and user attributes. User attributes may include, for example, the user's age and gender. In one example, in the case where the client device 2 is equipped with a vehicle, the decision execution conditions may also specify whether to perform geofence in / outside determination based on vehicle information obtained from the vehicle. Additionally, in one example, the decision execution conditions may include a hysteresis condition, which sets a predetermined insensitivity zone (hysteresis) after performing the in / outside determination, stipulating that the in / outside determination process will not be performed again until the distance is moved. By including this hysteresis condition in the decision execution conditions, it is possible to suppress frequent execution of decision processing near the boundary of the geofence.

[0098] The validity period indicates the duration for 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 also include the validity period of the geofence by having a field to store this validity period. According to an example of this embodiment, the period for applying the geofence can be specified by the validity period included in the main data 301. Furthermore, even without referring to the motion data 303 and geometry data 305, the validity of the geofence can be determined by referring to the validity period of the main data 301. Thus, the efficiency of the process for verifying the validity of the geofence can be expected to be improved.

[0099] Management information may include any information used in the application of subject data 301. In one example, management information may include creation time, update time, etc. Time may also include year, month, and day. The object unit of time can be arbitrarily selected. Creation time may represent the time when subject data 301 was created. Update time may represent the time when geofence definition data 30 (31, 32) was updated. In one example, update time may be configured to represent the time when at least any one of subject data 301, associated motion data 303, and associated geometric data 305 was updated. Thus, in one example of this embodiment, subject data 301 may also include an overall update time representing the time when at least any one of subject data 301, motion data 303, and geometric data 305 was updated. According to an example of this embodiment, by aggregating update times into subject data 301, even without referring to motion data 303 and geometric data 305, it is possible to determine whether at least any one of subject data 301, motion data 303, and geometric data 305 has been updated simply by referring to subject data 301. Therefore, it is expected that the processing for determining whether the geofence definition data 30 (31, 32) has been updated can be made more efficient. However, the update time included in the main data 301 is not limited to this example and can be appropriately changed according to the implementation. In another example, the update time may also be configured to indicate the time when the main data 301 is updated, rather than the time when the motion data 303 and the geometry data 305 are updated. In yet another example, the main data 301 may also independently include the overall update time and the individual update times of the main data 301.

[0100] Furthermore, the specific structure of the main data 301 can be appropriately omitted, replaced, and supplemented according to the implementation method. For example, at least one of the logical operators, merged graphics, depiction information, decision execution conditions, validity period, and management information can be omitted. The depiction information, decision execution conditions, and validity period can also be retained in at least one of the action data 303 and geometric data 305. At least one of the creation time and update time can be retained independently of the management information. In the management information, at least one of the creation time and update time can also be omitted. The management information can also include other information besides the creation time and update time (e.g., creator, updater, deletion time, deleter, etc.). The main data 301 can also include other information such as the scope of the action, whether it is public, and the type of the client device 2 that provides the geofence definition data.

[0101] (Motion data)

[0102] Action data 303 can be appropriately configured to represent a defined action by including action definition information. For example... Figure 8 As shown, in one example of this embodiment, the action data 303 may have fields for storing various information such as action ID, action execution conditions, action content, and management information. The order of the fields is not particularly limited and can be appropriately changed according to the embodiment. In one example, one piece of action data 303 may correspond to the definition of one action.

[0103] An action ID is used to identify action data 303. The action execution condition specifies the conditions under which the action is performed. The action content specifies the content of the action being performed. The action execution condition and action content can be defined as described above. The action execution condition and action content are examples of action definition information. Management information can include any information used in the application of action data 303. The management information of action data 303 can be constructed in the same way as the management information of the main data 301, except for the point at which the object is replaced by action data 303 from the main data 301. In one example, management information can include creation time, update time, etc. The creation time can indicate the time when action data 303 was created. The update time can indicate the time when action data 303 was updated.

[0104] Furthermore, the specific structure of motion data 303 can be appropriately omitted, replaced, or have constituent elements added depending on the implementation method. For example, management information can also be omitted. At least one of the creation time and update time can be maintained independently of the management information. In the management information, at least one of the creation time and update time can also be omitted. The management information can also include other information besides the creation time and update time (e.g., creator, updater, deletion time, deleter, etc.). Motion data 303 can also include other information such as the scope and name of the action.

[0105] (Geometric data)

[0106] Geometric data 305 can be appropriately configured to represent the defined geometry by including definition information (information defining segments). For example... Figure 8 As shown, in one example of this embodiment, the geometric data 305 may have fields for storing various information such as geometric ID, region ID, geometric (definition information), and management information. The order of the fields is not particularly limited and can be appropriately changed according to the embodiment. In one example, one piece of geometric data 305 may correspond to one geometric definition.

[0107] The geometry ID is used to identify geometry data 305. The geometry (definition information) delineates segments of a geofence. In one example, the geometry can be a circle (…). Figure 2 ), polygons ( Figure 3 ), road section ( Figure 4 The above methods are used to define the region ID. The region ID is used to identify regions on the map. The region ID is an example of region identification information. The data format of the region identification information (region ID) is not particularly limited and can be appropriately determined according to the implementation method. The region ID stored in the region ID field is the region ID of the region to which the geometry belongs, defined by the information in the geometry field. In one example of this implementation, by including the region ID in the geometry data 305, the geofence definition data 30 (31, 32) can be associated with the region of the map to which the defined geofence belongs. When the defined geometry belongs to multiple regions, multiple region IDs (the respective region IDs of the multiple regions to which the geometry belongs) can be stored in the region ID field. Management information can include any information used in the application of geometry data 305. The management information of geometry data 305 can be constructed in the same way as management information such as main data 301, except for the points where objects are replaced. In one example, management information can include creation time, update time, etc. The creation time can indicate the time when geometry data 305 was created. The update time can indicate the time when geometry data 305 was updated.

[0108] Furthermore, the specific structure of the geometric data 305 can be appropriately omitted, replaced, or have constituent elements added depending on the implementation method. For example, the region ID can be retained in other data (such as main data 301) or omitted from the geometric data 305. Additionally, management information can also be omitted, for example. At least one of the creation time and update time can be maintained independently of the management information. In the management information, at least one of the creation time and update time can also be omitted. The management information may also include other information besides the creation time and update time (e.g., creator, updater, deletion time, deleter, etc.). The geometric data 305 may also include other information such as the scope and name of the action.

[0109] (Geofencing defines the association of data)

[0110] Geofencing definition data (30-32) can be appropriately associated with one or more regions based on the defined geofence and the location relationship between each region. In one example, if the defined geofence is contained within one region, the corresponding geofence definition data can be associated with the region containing the defined geofence. Furthermore, if the defined geofence spans multiple regions, the corresponding geofence definition data can be associated with all regions spanned by the defined geofence.

[0111] Figure 9 as well as Figure 10 This schematically illustrates an example of a method for associating geofences (GF11, GF12) with different regions (P11-P19) on a map. Figure 9 In one example, geofence GF11 is contained within region P15. In this case, the geofence definition data defining geofence GF11 can be associated with region P15. Figure 10 In one example, geofence GF12 spans four regions (P15, P16, P18, P19). In this case, the geofence definition data that defines geofence GF12 can be associated with all four regions (P15, P16, P18, P19).

[0112] Return to Figure 8 As described above, in one example of this embodiment, geofence segments can be delineated using geometric data 305 (geometric figures) associated with the main data 301. Since the geometric data 305 includes a region ID corresponding to the region to which the segment delineated using the geometric figures belongs, the geofence definition data 30 (31, 32) can be associated with the corresponding region. When geofence segments are delineated by merging multiple geometric figures, the region to which the delineated segment belongs (the region associated with the geofence definition data) can be appropriately determined based on the region to which each geometric figure belongs.

[0113] For example, when multiple geometric shapes are merged using a logical AND, the segment defined by the multiple geometric shapes belongs to the entire region to which each geometric shape belongs. Therefore, the region to which the defined segment belongs can be determined by merging the values ​​of the region ID field of each of the multiple geometric shape data 305 associated with the main data 301 (which are contained in the region ID of each geometric shape data 305).

[0114] Furthermore, when multiple geometric figures are merged by logical product due to overlapping regions within each geometric figure, the segment defined by the multiple geometric figures belongs to at least one of the overlapping regions within the regions to which each geometric figure belongs. Therefore, the region to which the defined segment belongs can be determined from the overlapping region IDs contained in the region IDs of each of the multiple geometric figure data 305 associated with the main data 301. The region to which the overlapping range of each geometric figure belongs can be determined by any method.

[0115] Furthermore, when multiple geometric shapes are merged using XOR due to overlapping regions, there is a possibility that the segment defined by the multiple geometric shapes does not belong to at least one of the overlapping regions in the regions to which each geometric shape belongs. Specifically, when each geometric shape completely contains the object's segment, the segment defined by merging using XOR does not belong to the object's segment. Therefore, the region to which the defined segment belongs can be determined by excluding the region IDs of regions that do not belong due to the XOR merging from the region IDs contained in each of the multiple geometric shape data 305 associated with the main data 301. The regions that do not belong due to the XOR merging (excluded regions) can be determined by any method.

[0116] For example, when using at least one of logical product and XOR, the regions to which the defined segments belong can be determined by merging the geometric shapes using logical operators and comparing the coordinate ranges of the segments delineated by merging with those of each region (region ID). Alternatively, in one example, similar to merging the geometric shapes, the region ID of the region to which the segment delineated by merging the geometric shapes (merged shape) belongs can be maintained in the main data 301, etc. In this case, the region to which the merged segment belongs can be determined using the region ID maintained in the main data 301. Thus, the efficiency of the processing related to determining the region associated with the geofence definition data 30 can be expected.

[0117] (An example of the reference process during extraction)

[0118] When extracting geofence definition data 31 associated with at least one of region 1 P1 and region 2 P2, the fields of geofence definition data 30 (subject data 301, action data 303, and geometric data 305) may be appropriately referenced.

[0119] As an example, in the first step, server device 1 can determine the first region P1 and the second region P2 based on the current location information 45 received from client device 2. As described above, the process of determining each region (P1, P2) based on the current location 40 can be performed in at least one of server device 1 and client device 2. When client device 2 performs the process of determining each region (P1, P2) based on the current location 40, server device 1 can determine each region (P1, P2) by referring to the current location information 45 received from client device 2.

[0120] In the second step, server device 1 can retrieve geometric data 305 from database 3 by using the region IDs of the determined regions (P1, P2) as a query. Through this retrieval, geometric data 305 belonging to at least one of the regions, namely the first region P1 and the second region P2, is extracted.

[0121] In the third step, server device 1 can retrieve the main data 301 associated with the extracted geometric data 305 from database 3 by using the geometric ID (identification information) of the extracted geometric data 305 as a query. Through this retrieval, main data 301 representing a geofence belonging to at least one of the first region P1 and the second region P2 is extracted. Furthermore, there is a possibility that main data 301 associated with multiple geometric data 305 (i.e., main data 301 representing a geofence defined by multiple geometric figures) exists in the extracted main data 301. In this case, server device 1 can also verify whether the segment defined after merging multiple geometric figures belongs to at least one of the first region P1 and the second region P2. This verification can also be performed as a process on database 3. If the verification result determines that the segment defined after merging multiple geometric figures does not belong to either the first region P1 or the second region P2, the corresponding main data 301 can be excluded from the extraction results.

[0122] In the fourth step, server device 1 can retrieve action data 303 associated with the extracted main data 301 from database 3 by using the action ID (identification information) contained in the extracted main data 301 as a query. The result of this retrieval is geofence definition data 31, which consists of main data 301, action data 303, and geometric data 305. In one example of this embodiment, when the geometry is shared between the first and second geofences, the same geometric data 305 constitutes both the first and second geofence definition data. That is, the geometric data 305 is shared between the first and second geofence definition data. Similarly, when the actions are shared between the first and second geofences, the action data 303 is shared between the first and second geofence definition data. This reduces the amount of geofence definition data 31.

[0123] In the fifth step, server device 1 can return the obtained geofence definition data 31 (main data 301, motion data 303, and geometric data 305) to client device 2. Thus, geofence definition data 31 can be provided to client device 2.

[0124] (An example of the reference process for determining internal and external factors)

[0125] In addition, in the client device 2, even when performing the determination of whether a geofence is inside or outside, the fields of the geofence definition data 32 (main data 301, action data 303, and geometric data 305) can be appropriately referenced.

[0126] As an example, in the first step, the client device 2 can determine whether the determination execution conditions of the main data 301 are met. In the second step, regarding the geofence determined to meet the determination execution conditions, the client device 2 can refer to the geometric pattern ID (identification information) of the main data 301 to access the geometric pattern data 305 associated with the main data 301. The client device 2 can refer to the geometry of the geometric pattern data 305 to determine whether the current location 265 is inside or outside the segment defined by the geometry. In one example of this embodiment, this determination process corresponds to the inside / outside determination of the geofence.

[0127] In one example, when multiple geometric data pieces 305 are associated with main data 301, client device 2 can determine the geofence segment by merging the individual geometric shapes of the multiple geometric data pieces 305 using logical operators of main data 301. Client device 2 can then determine whether the current location 265 is inside or outside the determined segment. Alternatively, in another example, when the information of the segment defined after merging multiple geometric shapes is stored as a merged graphic in main data 301, client device 2 can omit accessing the geometric data 305. In this case, client device 2 can refer to the merged graphic of main data 301 to determine whether the current location 265 is inside or outside the merged segment.

[0128] Furthermore, in one example of this embodiment, regarding geofences that do not belong to the area to which the current location 265 belongs, the client device 2 can determine that the current location 265 is outside the geofence (the segment defined by the geometry) even without referring to the geometry. Therefore, as an example, in the second step, the client device 2 can determine the area to which the current location 265 belongs by referring to the information of each area. The client device 2 can determine whether the geofence of the object is associated with the area to which the current location 265 belongs based on the area ID of the geometry data 305. When multiple pieces of geometry data 305 are associated with the main data 301, the client device 2 can determine whether the geofence of the object is associated with the area to which the current location 265 belongs based on the area to which the segment defined by merging the geometry belongs. When the geofence of the object is not associated with the area to which the current location 265 belongs, the client device 2 can omit the reference to the geometry and determine that the current location 265 is outside the geofence. On the other hand, when the geofence of an object is associated with the region to which the current location 265 belongs, the client device 2 can determine whether the current location 265 is inside or outside the geofence by referring to the geometry as described above. Thus, the client device 2 can reduce the object for which the inside / outside determination is performed by comparing it with a segment defined by geometry to the geofence associated with the region to which the current location 265 belongs. As a result, the efficiency of the inside / outside determination process can be expected to be improved.

[0129] In the third step, client device 2 can access action data 303 associated with main data 301 by referring to the action ID (identification information) of main data 301. Furthermore, client device 2 can determine whether the action execution conditions of action data 303 are met. In the fourth step, regarding the geofence determined to meet the action execution conditions, client device 2 can execute the action specified by the action content of action data 303.

[0130] (other)

[0131] Furthermore, the data format of the geofence definition data 30 (31, 32) is not particularly limited and can be appropriately selected according to the implementation method. In addition, the data structure of the geofence definition data 30 (31, 32) (main data 301, motion data 303, geometric data 305) can be appropriately modified according to the implementation method.

[0132] For example, in Figure 8 In one example, motion data 303 and geometry data 305 are separated from the main data 301. However, the structure of the geofencing definition data 30 (31, 32) is not limited to this example. In another example, only either motion data 303 or geometry data 305 may be separated from the main data 301, while the other is included (embedded) in the main data 301. For example, only motion data 303 may be separated from the main data 301, while geometry data 305 may be included in the main data 301. Alternatively, only geometry data 305 may be separated from the main data 301, while motion data 303 may be included in the main data 301. In yet another example, without ensuring the reusability of motion and geometry, both motion data 303 and geometry data 305 may be included in the main data 301.

[0133] Additionally, for example, in Figure 8 In one example, the association of geofences for each region is managed by including region IDs in the geometric data 305. However, the method of managing this association is not limited to this example and can be appropriately modified according to the implementation. In another example, list data can be generated, which constitutes a list showing the geofence definition data 30 belonging to each region for each region. The list data can be stored in any storage area. The list data can be updated when the geofence definition data 30 is generated by registering the identification information (subject ID, etc.) of the generated geofence definition data 30 to the list of regions to which the corresponding geofence belongs. In this case, the server device 1 can obtain the identification information of the geofence definition data 31 associated with at least one of the first region P1 and the second region P2 by appropriately referring to the list data. Furthermore, the server device 1 can retrieve the geofence definition data 31 by searching the database 3 with the obtained identification information.

[0134] [Keep the data up-to-date]

[0135] By repeatedly providing geofence definition data 31 corresponding to the current location 40 from server device 1 to client device 2, client device 2 can update the maintained geofence definition data 32. In the case of repeatedly providing geofence definition data 31, there is a possibility that at least a portion of the geofence definition data 32 already maintained in client device 2 through past provision may be extracted from database 3 as at least a candidate portion of the geofence definition data 31 provided this time.

[0136] In one example, the provision of geofence definition data 31 can be performed while allowing duplication with the already maintained geofence definition data 32. That is, server device 1 may also provide geofence definition data extracted from database 3 as geofence definition data 31 to client device 2 without excluding geofence definition data that duplicates geofence definition data 32 maintained by client device 2.

[0137] In another example, server device 1 may also exclude geofence definition data that is duplicated in the geofence definition data extracted from database 3 and is identical to geofence definition data 32 held by client device 2. Furthermore, server device 1 may provide the remaining geofence definition data after excluding duplicate geofence definition data as geofence definition data 31 to client device 2. The method for excluding duplicate geofence definition data may be appropriately determined according to the implementation method.

[0138] Figure 11 This schematically illustrates an example of a scenario involving updating the geofence definition data 32 maintained in the client device 2, as described in this embodiment. Figure 11In one example, imagine that at time t, the area P35 to which the current location 403 belongs is area 1 P1, and the surrounding areas (P31~P34, P36~P39) are area 2 P2. By providing geofence definition data 31 from server device 1 to client device 2, client device 2 maintains 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 maintained by client device 2 at time t. Furthermore, imagine that at time t+1, the current position 405 moves into region P33, thus region P33 becomes region 1 P1, region P35 becomes region 2 P2, regions P32 and P36 remain in region 2 P2, and regions P51 to P55 within the surrounding regions (P32, P35, P36, P51~P55) of region P33 newly become region 2 P2, while regions (P31, P34, P37, P38, P39) leave region 2 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.

[0139] In one example, client device 2 may also send a list 455 of geofence definition data 320 (32) held by the device when sending current location information 45 related to the current location 405 (40). That is, client device 2 sending current location information 45 may include sending the list 455 of the held geofence definition data 320 (32). Figure 11 In this scenario, list 455 can consist of a list of geofence definition data associated with at least one of regions P31 to P39. List 455 can also exclude regions (P31, P34, P37, P38, P39) that are detached from the second region P2, and consist of a list of geofence definition data associated with at least one of regions (P32, P33, P35, P36). That is, list 455 can consist of a list of the remaining geofence definition data from the maintained geofence definition data 320, after excluding geofence definition data not associated with at least one of the regions (P32, P33, P35, P36) that are left as part of the first region P1 and the second region P2, and associated with at least one of the regions (P31, P34, P37, P38, P39) that are detached from the first region P1 and the second region P2. Within this list, the geofence definition data can be appropriately represented. For example, list 455 can consist of a list of subject IDs for geofence-defined data.

[0140] Correspondingly, server device 1 can also receive list 455. Server device 1 can extract geofence definition data 310 from database 3, based on the current location information 45, that is associated with at least one of the first region P1 (region P33) and the second region P2 (P32, P35, P36, P51~P55). Server device 1 can exclude geofence definition data 311 registered in list 455 from the geofence definition data 310 extracted from database 3. Furthermore, server device 1 can 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.

[0141] That is, the server device 1 receiving the current location information 45 may include a receiving list 455. The server device 1 returning the extracted geofence definition data 31 can be configured by excluding the geofence definition data 311 registered in list 455 from the geofence definition data 310 extracted from database 3, and returning the remaining geofence definition data 315 (31) after excluding the geofence definition data 311 registered in list 455. Figure 11 In the example, geofence definition data associated with at least one of the regions (P32, P33, P35, P36) can be excluded as geofence definition data 311. Geofence definition data associated with at least one of the regions P51~P55 newly added as the second region P2 at time t+1, and new geofence definition data associated with at least one of the regions (P32, P33, P35, P36) can be provided to the client device 2 as geofence definition data 315.

[0142] According to one example of this embodiment, by omitting the transmission of duplicate geofence definition data 311, efficient communication processing can be expected. Furthermore, since duplicate geofence definition data 311 is determined using a list 455 provided by each client device 2, server device 1 does not need to guarantee a storage area for continuing to manage the geofence definition data 320 (32) held by each client device 2. Thus, efficient use of server device 1's memory resources can be achieved. Moreover, the method for excluding duplicate geofence definition data is not limited to... Figure 11 The example can be appropriately modified according to the implementation method. In another example, the server device 1 may also generate list 455 by registering the provided geofence definition data 31 to list 455 when providing geofence definition data 31 to the client device 2. Thus, the server device 1 can also manage the list 455 of geofence definition data 32 maintained at each client device 2.

[0143] (Updated data provided)

[0144] After being provided to client device 2, the geofence definition data is sometimes updated (e.g., due to changes in actions, corrections to geometry, etc.). The updated geofence definition data held in client device 2's geofence definition data 32 is preferably not excluded from the provision list before being provided to client device 2. Therefore, in one example of this embodiment, server device 1 does not need to exclude the updated geofence definition data registered in list 455 from the extracted geofence definition data 310, and can perform the above-described process of providing geofence definition data 315 (31). The method for providing updated geofence definition data can be appropriately determined according to the embodiment.

[0145] As an example, when the client device 2 receives the geofence definition data 320 (32) from the server device 1, it records the acquisition time of the geofence definition data 320 (32) to a memory resource. The acquisition time may include year, month, and day. The unit of the acquisition time may be arbitrarily selected. Correspondingly, the list 455 may include the acquisition time of the geofence definition data 320 (32) obtained by the client device 2. The server device 1 can use the acquisition time to determine whether there is an update in the geofence definition data that is repeated between the geofence definition data 310 extracted from the database 3 and the geofence definition data registered in the list 455. The method for determining whether there is an update may be appropriately determined according to the implementation. For example, if the main data 301 includes an overall update time, the server device 1 can determine whether there is an update in the geofence definition data by comparing the overall update time (the 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 specified according to the implementation. In one example, server device 1 can determine that there is no update in the geofence definition data if the overall update time is before the acquisition time, and determine that there is an update in the geofence definition data if the overall update time is after the acquisition time. Additionally, for example, if the subject data 301, action data 303, and geometric data 305 each include an update time, server device 1 can determine whether there is an update in any of the three types of data (301, 303, 305) by comparing the update time (the value of the update time field) of each of the three types of data with the acquisition time. The relationship between the comparison result and the determination result can be the same as described above.

[0146] That is, excluding geofence definition data 311 registered in list 455 from the extracted geofence definition data 310 can be achieved by determining whether there is an update in the geofence definition data registered in list 455 based on the time of acquisition, and by not excluding geofence definition data 312 registered in list 455 that is determined to be updated, and excluding geofence definition data 311 determined not to be updated from the extracted geofence definition data 310.

[0147] The updated geofence definition data 312 is at least a portion of the geofence definition data 30 associated with at least one of the areas (P32, P33, P35, P36) left as at least one of the first area P1 and the second area P2. Therefore, geofence definition data 315, including the updated geofence definition data 312, is returned from server device 1 to client device 2. Furthermore, if only a portion of the main data 301, motion data 303, and geometry data 305 is updated, server device 1 may also return only the updated data from the three types of data as geofence definition data 315. For example, if only motion data 303 is updated, server device 1 may also return only motion data 303 as geofence definition data 315. Alternatively, server device 1 may also return geofence definition data 315 that includes data that has not been updated.

[0148] According to an example of this embodiment, updated geofence definition data 312 held in geofence definition data 320 (32) of the client device 2 can be provided to the client device 2. Thus, the geofence definition data 32 (325) held by the client device 2 can be properly kept up-to-date.

[0149] Furthermore, the method for determining whether an update has occurred is not limited to the method based on the acquisition time and can be appropriately modified according to the implementation method. In another example, the geofence definition data 30 (31, 32) may also include version information. The version information may be maintained in at least one of the main data 301, action data 303, and geometric data 305. The server device 1 can determine whether there is an update in the geofence definition data by comparing the version information between the geofence definition data 310 extracted from the database 3 and the geofence definition data registered in the list 455. The server device 1 can determine that there is an update in the geofence definition data if the version information is different, and determine that there is no update in the geofence definition data if the version information is the same. In another example, the server device 1 can determine whether there is an update in the geofence definition data by comparing the update time between the geofence definition data 310 extracted from the database 3 and the geofence definition data registered in the list 455. The server device 1 can determine that there is an update in the geofence definition data if the update times are different, and determine that there is no update in the geofence definition data if the update times are the same.

[0150] (Keep the data deleted)

[0151] Additionally, in one example, client device 2 can delete geofence definition data 321 that is not associated with any region (P32, P33, P35, P36) remaining in either region 1 P1 or region 2 P2, and is associated with at least any region (P31, P34, P37, P38, P39) detached from either region 1 P1 or region 2 P2. The deletion method can be arbitrarily chosen. Known methods can be used for deletion. For example, deletion can be achieved by completely removing the data or setting it to a state where it can be overwritten by other data.

[0152] exist Figure 11 In one example, client device 2 can update the maintained geofence definition data to geofence definition data 325 at time t+1 by excluding geofence definition data 321 from geofence definition data 320 maintained at time t and appending geofence definition data 315 provided from server device 1. Geofence definition data 325 is an example of geofence definition data 32 maintained by client device 2 at time t+1. Client device 2 can continue to maintain, without deletion, motion data 303 and geometric data 305 shared with geofence definition data 321 of the deleted object that are associated with at least one of the regions (P32, P33, P35, P36) remaining in at least one of the regions in the first region P1 and the second region P2.

[0153] Furthermore, the timing of the deletion can be appropriately determined according to the implementation method. In one example, the client device 2 can delete the geofence definition data 321 of the area detached from the first region P1 and the second region P2 at any time before receiving new geofence definition data 31 (315) from the server device 1. For example, the client device 2 can delete the geofence definition data 321 of the area detached from the first region P1 and the second region P2 before requesting new geofence definition data 31 (315) by sending the current location information 45 to the server device 1. As a result, the storage area receiving the new geofence definition data 31 (315) can be ensured (increased free capacity).

[0154] [Priority]

[0155] In one example of this embodiment, priority can be assigned to the geofence definition data 30 (31, 32). Correspondingly, priority can be utilized in any situation, such as when providing geofence definition data or when performing internal / external determinations. For example, server device 1 can preferentially return geofence definition data with higher priority from the geofence definition data 31. That is, returning the geofence definition data 31 extracted by server device 1 to client device 2 may include preferentially returning geofence definition data with higher priority. The method of preferential return can be arbitrarily specified. In one example, preferential return can be constituted by sending geofence definition data 31 sequentially starting from the geofence definition data with higher priority, or sending at least one of the following: sending geofence definition data 31 in a predetermined number starting from the geofence definition data with higher priority. The predetermined number can be appropriately specified. According to an example of this embodiment, by preferentially returning geofence definition data with higher priority, the executability of geofences with higher priority can be guaranteed.

[0156] Figure 12 This illustration schematically shows an example of a scenario involving the application of priorities set for geofence definition data 30 (31, 32) according to this embodiment. Priorities can be set based on any criterion. In one example, the priority can be defined based on at least one of the static and dynamic attributes of the geofence. Priorities can also be defined based on a combination of multiple attributes.

[0157] Static attributes are attributes of a geofence whose values ​​do not change based on dynamic factors such as the geofence's usage. For example, static attributes may include impact level and registration order. Impact level can be pre-calculated using a benchmark provided by the geofence's administrator (operator, creator, provider, etc.). The benchmark can be arbitrarily specified. Changes in impact level due to benchmark alterations are permissible. In one example, a higher impact level allows for a higher priority, and a lower impact level allows for a lower priority. Furthermore, the registration order of the geofence (geofence definition data) can be appropriately determined. For example, the registration order can be determined by the subject ID. The relationship between registration order and priority can be arbitrarily set. In one example, newer registrations allow for a higher priority, and older registrations allow for a lower priority. Conversely, older registrations allow for a higher priority, and newer registrations allow for a lower priority. According to an example of this implementation, the enforceability of high-priority geofences can be guaranteed through static attributes.

[0158] On the other hand, dynamic attributes are those whose values ​​in a geofence may change based on dynamic features. For example, dynamic attributes may include the distance from the current location to the geofence boundary, the update time, user-made selections, and administrator-made designations. In one example, a shorter distance from the current location to the geofence boundary (i.e., a closer geofence) allows for a higher priority, while a longer distance allows for a lower priority. Additionally, in another example, an update time closer to the current time (a more recent update) allows for a higher priority, while an update time further from the current time allows for a lower priority. The current time can be the time when priority is evaluated. Furthermore, in another example, geofences where user selections are more readily accepted have a higher priority, while geofences where user selections are less readily accepted have a lower priority. Geofence definition data for geofences where user selections are not readily accepted may not be provided from server device 1 to client device 2 as geofence definition data 31. Moreover, the geofence for which an object is accepted can be selected using any method. For example, client device 2 can also accept the selection of geofences to be accepted in groups, such as specifying the scope of the action to be accepted. Additionally, client device 2 can also accept the selection of whether to accept for each geofence. The selection results can be appropriately shared in server device 1. Furthermore, in one example, geofences that are assigned by the administrator can be assigned a higher priority, while geofences that are not assigned by the administrator can be assigned a lower priority. The geofence definition data for geofences not assigned by the administrator may not be provided from server device 1 to client device 2 as geofence definition data 31. Moreover, the geofences to which a distribution is intended can be specified in any way. For example, similar to the user-made selection described above, server device 1 can also accept the assignment of geofences in groups via the administrator's terminal. Additionally, server device 1 can also accept the assignment of each geofence. According to one example of this embodiment, the execution of high-priority geofences can be guaranteed through dynamic attributes.

[0159] In another example, client device 2 may also send a request number 49 for geofence definition data 31 when sending current location information 45. That is, client device 2 sending current location information 45 may include sending a request number 49 for geofence definition data 31. Correspondingly, server device 1 may also receive the request number 49. Server device 1 may also return the geofence definition data 319 requested by the request number 49 to client device 2 in the geofence definition data 310 extracted from database 3, starting from the geofence definition data with the highest priority. That is, server device 1 receiving current location information 45 may include receiving the request number 49. The server device 1 returning the extracted geofence definition data 31 to client device 2 can be configured by returning the geofence definition data 319 requested by the request number 49 to client device 2 in the extracted geofence definition data 310, starting from the geofence definition data with the highest priority. Geofence definition data 319 is an example of the provided geofence definition data 31.

[0160] exist Figure 12 In one example, consider a scenario where the number of geofence definition data items extracted from database 3 as geofence definition data 310 associated with at least one of region 1 P1 and region 2 P2 is M. In one example, M items could be the number of geofence definition data 310 items after excluding geofence definition data 311 registered in list 455. Alternatively, consider a scenario where the number of requests 49 from client device 2 is N items. In this scenario, if M is less than or equal to N, server device 1 can return the extracted geofence definition data 310 as geofence definition data 319 of the request number 49 to client device 2. The number of geofence definition data 319 items returned from server device 1 can also be less than the request number 49. On the other hand, if M exceeds N, server device 1 can return the remaining N geofence definition data 319 to client device 2 after sequentially excluding (M-N) geofence definition data items starting from the lowest priority geofence definition data.

[0161] Here, the above Figure 11In the example, updated geofence definition data 312 can be overwritten after being provided to client device 2. Correspondingly, server device 1 may not include updated geofence definition data 312 in the request count 49 (N items). Server device 1 can construct N geofence definition data using geofence definition data other than updated geofence definition data 312. That is, server device 1 can include N geofences in the list of geofences not associated with existing regions (P32, P33, P35, P36) but associated with any of the new regions (P51~P55), as well as new geofences associated with any of the existing regions (P32, P33, P35, P36). Furthermore, server device 1 can provide updated geofence definition data 312 and N geofence definition data as geofence definition data 319 to client device 2.

[0162] According to an example of this embodiment, the execution of high-priority geofencing can be guaranteed. Furthermore, by reducing the number of geofencing definition data 31 (319) returned to the specified number by the client device 2, improved communication efficiency can be expected.

[0163] Furthermore, the request number 49 can be specified in any way. In one example, the request number 49 can be determined based on the free capacity of the memory resources of client device 2. Correspondingly, the request number 49 can be appropriately determined in a manner that does not exceed the free capacity of the memory resources. For example, client device 2 can determine the request number 49 as any number below "(maximum number of geofences maintained by available memory resources) - (number of geofences maintained)". An example of a maintained geofence is as described above. Figure 11In the example, at least one of the regions (P32, P33, P35, P36) remaining in at least one of the regions in region 1 P1 and region 2 P2 is associated with a geofence. "(Maximum number of geofences maintained by available memory resources) - (Number of maintained geofences)" is an example of free capacity. Client device 2 can expand the free capacity of memory resources by deleting geofence definition data 321 that is detached from regions in regions 1 P1 and 2 P2 before requesting new geofence definition data 31. This increases the maximum value of the request number 49. The free capacity of memory resources can be either the free capacity when determining the request number 49 or the free capacity predicted when receiving new geofence definition data 31. The prediction of free capacity can be performed using any method. According to one example of this embodiment, it is possible to suppress the provision of geofence definition data that cannot be maintained due to exceeding memory resources. This can lead to improved communication processing efficiency. However, the method of specifying the request number 49 is not limited to this example and can be appropriately modified according to the embodiment. In another example, the request number 49 can also be specified by the user.

[0164] In another example, the request number 49 could also be configured to directly represent the number of requested geofence definition data items. However, in one example of this embodiment, by sharing at least one of the action and geometry among different geofences, there is a possibility that at least one of the action data 303 and geometry data 305 may be shared among the corresponding geofence definition data. When at least one of the action data 303 and geometry data 305 is shared, the amount of data among the corresponding geofence definition data is reduced. In addition, there is a possibility that multiple pieces of geometry data 305 may be associated with one piece of main data 301. Therefore, the geofence definition data items are not necessarily limited to the same amount of data. Therefore, in another example, the request number 49 could also be configured to indirectly represent the number of requests by the total amount of requested geofence definition data, etc.

[0165] [Server device / Client device]

[0166] Server device 1 can consist of one or more servers (computers). When server device 1 consists of multiple servers, these servers can cooperate with each other while performing the information processing of server device 1 according to this disclosure. In this case, the multiple servers can be counted as one server device 1. Additionally, client devices 2 can be one or more computers configured to monitor the location of movable objects. The number of server devices 1 and client devices 2 can be arbitrarily determined. Any number of client devices 2 can request geofencing definition data 31 from one server device 1.

[0167] [2 Structural Examples]

[0168] [Hardware Structure Example]

[0169] (Server device)

[0170] Figure 13 An example of the hardware structure of the server device 1 according to this embodiment is schematically shown. In one example, the server device 1 according to this embodiment may be configured as a computer that electrically connects the control unit 11, the storage unit 12, and the communication module 13.

[0171] The control unit 11 may include a CPU (Random Access Memory), ROM (Read Only Memory), etc., which are hardware processors, and is configured to perform information processing according to programs and various data. The control unit 11 (CPU) is an example of processor resources.

[0172] Storage unit 12 may include, for example, a hard disk drive, a solid-state drive, a semiconductor memory, etc., configured to hold arbitrary data. Storage unit 12, RAM, and ROM are examples of the memory resources of server device 1. In one example of this embodiment, storage unit 12 may store various information such as program 81.

[0173] Program 81 is used to cause server device 1 to perform information processing related to providing geofence definition data to client device 2 (described later). Figure 17 The program 81 includes a series of commands for processing this information.

[0174] In one example, program 81 may be stored in storage medium 91 in place of storage unit 12 or together with storage unit 12. Storage medium 91 is configured to store various information (stored programs, etc.) through electrical, magnetic, optical, mechanical, or chemical processes in a manner that allows machines such as computers to read the information. Storage unit 12 and storage medium 91 are examples of non-transitory storage media. Server device 1 can retrieve program 81 from storage medium 91. Storage medium 91 can be a disk-type storage medium (CD, DVD, etc.) or a storage medium other than a disk-type semiconductor memory (flash memory, etc.). Any drive device can be used to read information stored in storage medium 91. The type of drive device can be selected according to storage medium 91. The drive device can be connected to server device 1 in any way. Storage medium 91 may include external storage devices. When server device 1 holds database 3, database 3 can be stored in at least one of storage unit 12 and storage medium 91.

[0175] The communication module 13 is configured to perform wired or wireless communication via a network. The communication module 13 can be, for example, a wired LAN (Local Area Network) module, a wireless LAN module, etc. There are no particular restrictions on the network standard, which can be appropriately selected depending on the implementation method. For example, the type of network can be appropriately selected from the Internet, wireless communication network, mobile communication network, telephone network, private network, etc. The server device 1 can perform data communication with other computers (e.g., client device 2, other external computers, etc.) via the communication module 13.

[0176] Furthermore, the specific hardware structure of server device 1 can be appropriately omitted, replaced, or added depending on the implementation method. For example, the control unit 11 may include multiple hardware processors. These hardware processors can be microprocessors, FPGAs (Field-Programmable Gate Arrays), DSPs (Digital Signal Processors), ECUs (Electronic Control Units), GPUs (Graphics Processing Units), ASICs (Application Specific Integrated Circuits), etc. Server device 1 may also include input and output devices. The input device is configured to accept information input. The input device can be, for example, a mouse, keyboard, or operator. The output device is configured to output information. The output device can be, for example, a display or speaker. The input and output devices can also be integrated, at least partly, through a touch panel display. The input and output devices can be appropriately connected to server device 1. Program 81 can also be saved to an external storage device such as a NAS. An external storage device is also an example of a non-transitory storage medium. Server device 1 can be composed of multiple computers. In this case, the hardware architecture of each computer can be either identical or different. Server device 1 can be a general-purpose server device, a general-purpose PC (Personal Computer), etc., in addition to being a computer designed specifically for the services it provides.

[0177] (Client device)

[0178] Figure 14An example of the hardware structure of the client device 2 according to this embodiment is schematically shown. In one example, the client device 2 according to this embodiment may be configured as a computer electrically connected to 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.

[0179] The control unit 21, communication module 23, and storage medium 92 of the client device 2 can be configured in the same way as the control unit 11, communication module 13, and storage medium 91 of the server device 1. The control unit 21 (CPU) is an example of the processor resources of the client device 2. The storage unit 22, RAM, and ROM are examples of the memory resources of the client device 2. In one example of this embodiment, the storage unit 22 can store various information such as program 82 and geofence definition data 32.

[0180] Program 82 is used to cause client device 2 to perform information processing related to requesting geofence definition data from server device 1 (described later). Figure 17 And information processing related to determining whether a geofence is inside or outside (described later). Figure 18 The program 82 includes a series of commands for information processing. The series of commands related to requests for geofence definition data, and the series of commands related to determining whether a geofence is inside or outside, can also be kept as separate programs.

[0181] In one example, at least either program 81 or geofence definition data 32 may be stored in place of storage unit 22 or together with storage unit 22 on storage medium 92. Client device 2 may retrieve at least either program 81 or geofence definition data 32 from storage medium 92. Storage unit 22 and storage medium 92 are examples of non-transitory storage media.

[0182] The client device 2 can perform data communication with other computers (such as server device 1) via the communication module 23.

[0183] Input device 24 is configured to receive information input. Input device 24 can be configured, for example, a mouse, keyboard, operator, etc. Output device 25 is configured to output information. Output device 25 can be configured, for example, a display, speaker, etc. The user can operate client device 2 by using input device 24 and output device 25. Input device 24 and output device 25 may not be directly connected to client device 2, but may be indirectly connected via communication module 23 and at least one of external interfaces. External interface may be appropriately configured, for example, to connect to external devices via a USB (Universal Serial Bus) port, dedicated port, etc., in a wired or wireless manner. Input device 24 and output device 25 may also be integrated into a single unit, such as a touch panel display.

[0184] The positioning module 26 is configured to determine location. There are no particular limitations on the type of positioning module 26, as long as it can determine location, and it can be appropriately selected according to the implementation method. For example, the positioning module 26 can be configured using a GPS (Global Positioning System) sensor, a GNSS (Global Navigation Satellite System) sensor, etc. Alternatively, for example, the positioning module 26 can be configured to estimate the distance to each base station (wireless access point) based on the signal strength received from each base station. The positioning module 26 can also be configured to determine location using any method (three-point measurement, etc.) based on the estimated distance to each base station. In this case, the positioning module 26 can be at least partially shared with the communication module 23. In one example, the positioning module 26 can also be configured using a control unit 21 (CPU) and a communication module 23. The type of base station can be appropriately selected according to the implementation method. Furthermore, the positioning module 26 may not be built into the client device 2, or it may be connected to the client device 2 via the communication module 23 and at least one of an external interface.

[0185] Furthermore, the specific hardware structure of the client device 2 can be appropriately omitted, replaced, or added depending on the implementation method. For example, the control unit 21 may include multiple hardware processors. The hardware processors can be constructed using microprocessors, FPGAs, DSPs, ECUs, GPUs, ASICs, etc. At least one of the input device 24 and the output device 25 may also be omitted. The client device 2 can also be connected to other devices (mobile MB, various sensors, etc.) via the communication module 23 and at least one of the external interfaces. The client device 2 can be constructed using multiple computers. In this case, the hardware structures of each computer can be identical or different. The client device 2 can be a general-purpose PC, a laptop PC, a terminal device, etc., in addition to being a computer specifically designed for the services provided. The terminal device can include user terminals such as smartphones and tablets. Furthermore, in one example, when equipped in a vehicle, the client device 2 can also be an in-vehicle device (vehicle mount, terminal device, etc.).

[0186] [Software Structure]

[0187] (Server device)

[0188] Figure 15 An example of the software structure of the server device 1 according to this embodiment is schematically shown. The control unit 11 of the server device 1 uses the CPU to execute commands contained in the program 81 stored in the storage unit 12. Thus, the server device 1 operates as a computer having a request receiving unit 111, a data extraction unit 112, and a data return unit 113 as software modules. That is, in this embodiment, each software module of the server device 1 is implemented by the control unit 11 (CPU).

[0189] 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, based on the current location information 45, geofence definition data 31 from the database 3 (geofence definition data 30) that is associated with at least one of the first region P1 to which the current location 40 belongs and the second region P2 existing around the first region P1. The data return unit 113 is configured to return the extracted geofence definition data 31 to the client device 2.

[0190] (Client device)

[0191] Figure 16An example of the software structure of the client device 2 according to this embodiment is schematically shown. The control unit 21 of the client device 2 uses the CPU to execute commands contained in the program 82 stored in the storage unit 22. Thus, the client device 2 operates as a computer having a location acquisition unit 211, a data request unit 212, a data storage unit 213, a decision unit 214, and an output processing unit 215 as software modules. That is, in this embodiment, similar to the server device 1, each software module of the client device 2 is also implemented by the control unit 21 (CPU).

[0192] The location acquisition unit 211 is configured to acquire the current location (40, 265) determined by the positioning module 26. The data request unit 212 is configured to send current location information 45 related to the acquired current location 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 (updating the maintained geofence definition data 32). The determination unit 214 is configured to determine, based on the maintained geofence definition data 32, whether the acquired current location 265 is inside or outside the corresponding geofence. In other words, the determination unit 214 is configured to determine whether the current location 265 is within the range of the geofence defined by the maintained geofence definition data 32. The output processing unit 215 is configured to output information related to the geofence determination result.

[0193] (other)

[0194] Furthermore, in this embodiment, an example is described where each software module of server device 1 and client device 2 is implemented using a general-purpose CPU. However, some or all of the aforementioned software modules may also be implemented using one or more dedicated processors or chipsets. Each of the aforementioned modules may also be implemented as a hardware module. Regarding the software structure of server device 1 and client device 2, modules may be appropriately omitted, replaced, or added depending on the implementation method.

[0195] [3 working examples]

[0196] [Providing geofencing definition data]

[0197] Figure 17This is a timing diagram illustrating an example of the processing procedure related to the request and provision of geofence definition data as described in this embodiment. The processing procedure of server device 1 below is an example of an information processing method executed by the server device. The processing procedure of client device 2 below is an example of an information processing method executed by the client device. The overall processing procedure below is an example of an information processing method executed by the system. However, the following processing procedure is merely an example, and each step can be modified as much as possible. Furthermore, regarding the following processing procedure, steps can be appropriately omitted, substituted, or added according to the embodiment.

[0198] (Steps S101 and S102)

[0199] In step S101, the control unit 21 of the client device 2 operates as a location acquisition unit 211, acquiring the current location 40 determined by the positioning module 26. In step S102, the control unit 21 operates as a data request unit 212, sending current location information 45 related to the acquired current location 40 to the server device 1. Thus, the client device 2 requests the server device 1 to provide geofence definition data corresponding to the current location 40.

[0200] The current location information 45 can be suitably configured to include information that identifies the first region (first region P1) to which the current location 40 belongs and the surrounding second region (second region P2). In one example, the current location information 45 can be configured to represent the current location 40. In another example, the current location information 45 can be configured to represent the first region P1. In yet another example, the current location information 45 can be configured to represent at least a portion of the second region P2 and the first region P1. Each region (P1, P2) can be represented, for example, by information such as region ID, coordinate range, etc.

[0201] In one example, before executing step S102, the control unit 21 of the client device 2 may delete geofence definition data 321 that is not associated with any region (P32, P33, P35, P36) remaining in at least one of the first region P1 and the second region P2, and is associated with at least any region (P31, P34, P37, P38, P39) detached from the first region P1 and the second region P2. This allows the control unit 21 of the client device 2 to expand the free capacity of its memory resources for receiving new geofence definition data.

[0202] In another example, in step S102, the control unit 21 of the client device 2 may also send a list 455 of the maintained geofence definition data 320 (32). List 455 may be configured to represent a summary of geofence definition data maintained by excluding geofence definition data from areas (P31, P34, P37, P38, P39) that have left the first region P1 and the second region P2, and associating with at least one of the areas (P32, P33, P35, P36) that remain in at least one of the first region P1 and the second region P2. In list 455, the geofence definition data may be represented by identification information such as a subject ID. In another example, list 455 may also include the time when the geofence definition data 320 (32) was obtained using the client device 2. The order in which the current location information 45 and list 455 are sent is not particularly limited and can be appropriately determined according to the implementation method.

[0203] In another example, in step S102, the control unit 21 of the client device 2 may also send a request number 49 for geofence definition data 31. In one example, the request number 49 can be determined based on the free capacity of the memory resources of the client device 2. Before the processing in step S102, the above-described process of deleting geofence definition data that has been removed from the regions (P31, P34, P37, P38, P39) of the first region P1 and the second region P2 is performed, thereby increasing the upper limit of the request number 49. The order in which the current location information 45 and the request number 49 are sent is not particularly limited and can be appropriately determined according to the implementation method.

[0204] Furthermore, the timing of executing steps S101 and S102 is not particularly limited and can be appropriately determined according to the implementation method. For example, the control unit 21 of the client device 2 can execute steps S101 and S102 when the device (client device 2, mobile body MB, etc.) is started. Alternatively, the control unit 21 can periodically execute steps S101 and S102. Additionally, the control unit 21 can determine whether a movement exceeding a predetermined distance or moving to an adjacent area has occurred, satisfying predetermined conditions. Whether a movement satisfying predetermined conditions has occurred can be determined by any method. In one example, the control unit 21 can monitor the movement (position trajectory) of the object by repeatedly executing step S101. In another example, the object (client device 2, mobile body MB, etc.) can be equipped with sensors capable of observing movement, such as speed sensors or acceleration sensors. The control unit 21 can also monitor the movement of the object based on the observation results of these sensors. The control unit 21 can determine whether a movement satisfying predetermined conditions has occurred based on the monitoring results of the movement. For example, control unit 21 can determine that a movement meeting predetermined conditions has been performed (movement exceeding a predetermined distance) based on the amount of movement (change in position, etc.) exceeding a threshold. On the other hand, if the amount of movement is less than the threshold, control unit 21 can determine that a movement not meeting predetermined conditions has been performed. If the amount of movement is equal to the threshold, control unit 21 can determine either that a movement meeting predetermined conditions has been performed or that a movement not meeting predetermined conditions has been performed. The threshold can be arbitrarily defined. Furthermore, for example, control unit 21 can determine the region to which the current position belongs at each time interval by referring to information from each region. Based on the determination, control unit 21 can determine that the movement has moved to an adjacent region (movement meeting predetermined conditions) based on a change in the region to which the current position belongs. On the other hand, control unit 21 can determine that the movement not meeting predetermined conditions has been performed if the region to which the current position belongs remains unchanged (the state of belonging to the same region continues). Furthermore, control unit 21 can also execute step S102 based on the determination that a movement meeting predetermined conditions has been performed.

[0205] (Steps S201~S203)

[0206] In step S201, the control unit 11 of the server device 1 operates as a request receiving unit 111, receiving 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, based on the current location information 45, the control unit 11 extracts geofence definition data 31 from the database 3 that is associated with at least one of the first region P1 to which the current location 40 belongs and the second region P2 existing around the first region P1. In step S203, the control unit 11 operates as a data return unit 113, returning the extracted geofence definition data 31 to the client device 2.

[0207] In one example, in step S201, the control unit 11 can receive list 455 from the client device 2. In this case, in step S203, the control unit 11 can exclude geofence definition data 311 registered in list 455 from geofence definition data 310 extracted from database 3. Furthermore, the control unit 11 can return the remaining geofence definition data 315 (31) after excluding the geofence definition data 311 registered in list 455 to the client device 2.

[0208] Alternatively, in one example, the list 455 received in step S201 may also include the acquisition time of the geofence definition data 320 (32) obtained using the client device 2. Correspondingly, in step S203, the control unit 11 may also determine whether there is an update in the geofence definition data registered in list 455 based on the acquisition time. The control unit 11 may exclude geofence definition data 312 that is determined to be updated from the geofence definition data registered in list 455, while excluding geofence definition data 311 that is determined not to be updated from the extracted geofence definition data 310. Furthermore, the control unit 11 may return the remaining geofence definition data 315 (31) after excluding geofence definition data 311 that is determined not to be updated to the client device 2.

[0209] In another example, priorities can be assigned to the geofence definition data 30 (31, 32). Priorities can be set based on any criterion. In one example, priorities can be assigned based on at least one of the static and dynamic attributes of the geofence. When priorities are assigned based on dynamic attributes, the control unit 11 can estimate the priority of each geofence (geofence definition data 31) at any time before executing step S203. For example, when priorities are assigned based on the distance to the boundary of the geofence, the control unit 11 can refer to the merged graphic of the main data 301 or the geometry of the geometric graphic data 305 in the geofence definition data 31 to calculate the distance from the current location 40 or the first region P1 (current location information 45) to the boundary of the geofence. The control unit 11 can determine the priority of each geofence (geofence definition data 31) based on the calculated distance. In one example, when priorities are assigned, in step S203, the control unit 11 can preferentially return geofence definition data with higher priority from the geofence definition data 31.

[0210] In another example, in step S201, the control unit 11 may receive request number 49. In this case, in step S203, the control unit 11 may also return the geofence definition data 319 of request number 49 to the client device 2 sequentially, starting from the geofence definition data 310 extracted from the database 3, with the highest priority. In another example, the control unit 11 may also return the geofence definition data 319 of request number 49 sequentially, starting from the geofence definition data 311 with the highest priority, after excluding geofence definition data 311 that is determined not to be updated. In this case, the control unit 11 may not include updated geofence definition data 312 in the request number 49, but may include 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 that are associated with any of the existing areas (P32, P33, P35, P36) in the request number 49.

[0211] In another example, the geofence definition data 30 can be composed of subject data 301, motion data 303, and geometric data 305. Correspondingly, the processing in step S202 can be constructed using the first to fourth steps of the extraction process described above. The processing in step S203 can be constructed using the fifth step.

[0212] (Steps S301 and S302)

[0213] In step S301, the control unit 21 of the client device 2 operates as a data storage unit 213, receiving geofence definition data 31 from the server device 1. In step S302, the control unit 21 operates as a data storage unit 213, saving the received geofence definition data 31. That is, the control unit 21 updates the stored geofence definition data 32 based on the received geofence definition data 31.

[0214] In one example, when prioritizing the geofence definition data 31, the control unit 21 can also prioritize saving the geofence definition data with higher priority among the received geofence definition data 31. In another example, the control unit 21 can select whether to save each piece of geofence definition data 31 according to its priority. For example, the control unit 21 can also choose to save any number of geofence definition data 31 sequentially, starting from the highest priority geofence definition data, and choose not to save any number of low-priority geofence definition data 31 (i.e., exclude them from the saving list). The number of geofence definition data 31 pieces saved can be arbitrarily determined. In one example, the number of geofence definition data 31 pieces saved can be determined based on the free capacity of the memory resources of the client device 2.

[0215] After the received geofence definition data 31 is saved (the geofence definition data 32 is updated), the processing related to requesting and providing geofence definition data in this example ends. In one example of this embodiment, the series of processes from steps S101 to S302 can be executed in real time. Alternatively, in another example, the series of processes from steps S101 to S302 can be executed repeatedly as appropriate. Thus, in the client device 2, the state of the geofence definition data 32, which is defined by the current location and a predetermined range (first area P1 and second area P2), can be maintained.

[0216] [Determining whether a geofence is inside or outside]

[0217] Figure 18 This is a flowchart illustrating an example of the processing procedure related to determining whether a geofence is inside or outside, as described in 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 only an example, and each step can be modified as much as possible. In addition, regarding the following processing procedure, steps can be appropriately omitted, substituted, or added according to the embodiment.

[0218] (Step S501)

[0219] In step S501, the control unit 21 of the client device 2 operates as a position acquisition unit 211, acquiring the current position 265 determined by the positioning module 26. The processing in step S501 can be the same as that in step S101 described above. After acquiring the current position 265, the control unit 21 causes the processing to proceed to the next step S502.

[0220] (Step S502)

[0221] In step S502, the control unit 21 determines whether a movement (a certain movement) has been performed that satisfies predetermined conditions. The method for determining whether a movement has been performed that satisfies predetermined conditions can be the same as described above. In one example, the control unit 21 can monitor the movement (trajectory of the position) of the object using the current position 265 obtained in step S501. In another example, the control unit 21 can also monitor the movement of the object based on observations from sensors such as speed sensors and acceleration sensors. The control unit 21 can determine whether a movement has been performed that satisfies predetermined conditions based on the monitoring results of the movement. If it is determined that a movement has been performed that satisfies predetermined conditions, the control unit 21 proceeds to the next step, S503. On the other hand, if it is determined that a movement has not been performed that satisfies predetermined conditions, the control unit 21 returns the process to step S501, repeatedly executing steps S501 and S502.

[0222] According to one example of this embodiment, the processing in step S502 can limit the timing of performing the geofence inside / outside determination to cases where a certain movement has occurred. This suppresses the repeated execution of inside / outside determinations during periods of inactivity. As a result, the efficiency of the inside / outside determination processing can be expected to improve. Furthermore, the timing of performing the processing in step S502 is not limited to this example and can be appropriately modified according to the embodiment. If the current position is not used in the determination in step S502, the processing in step S502 can also be performed before step S501. Alternatively, the processing in step S502 can be omitted.

[0223] (Step S503)

[0224] In step S503, the control unit 21 functions as a determination unit 214, determining whether the determination execution conditions of the geofence represented by the maintained geofence definition data 32 are met. The determination of whether the determination execution conditions are met can be appropriately made. For geofences determined to meet the determination execution conditions, the control unit 21 proceeds the process to the next step S504. Conversely, for geofences determined not to meet the determination execution conditions, the control unit 21 omits the processing after step S504 and returns the process to step S501, re-executing the process from step S501. That is, if all geofences do not meet the determination execution conditions, the control unit 21 returns the process to step S501, re-executing the process from step S501. If at least a portion of the geofences meet the determination execution conditions, the control unit 21 proceeds the process to the next step S504, and for geofences that meet the determination execution conditions, the processing after step S504 is executed.

[0225] In one example, when the geofence definition data 32 consists of subject data 301, motion data 303, and geometric data 305, the processing of step S503 can be constituted by the processing of the first step of the reference process during the above-mentioned internal and external determination.

[0226] In one example, a priority can be assigned to the geofence definition data 32. In another example, the priority can be assigned based on at least one of the geofence's static and dynamic attributes. When the priority is assigned based on dynamic attributes, the control unit 21 can estimate the priority of each geofence (geofence definition data 32) at any time before executing step S503. For example, when the priority is assigned based on the distance to the geofence boundary, the control unit 21 can calculate the distance from the current location 265 to the geofence boundary by referring to the merged graphic of the main data 301 or the geometry of the geometric data 305 in the geofence definition data 32. The control unit 21 can then determine the priority of each geofence (geofence definition data 32) based on the calculated distance.

[0227] In one example, when a priority is assigned to the geofence definition data 32, the control unit 21 can execute the processing starting from step S503 using the geofence definition data 32 in descending order of priority. Alternatively, in another example, the control unit 21 can sequentially execute the processing starting from step S503 for any number of geofence definition data 32, starting with the highest priority geofence definition data. The control unit 21 can also omit the processing starting from step S503 for any number of low-priority geofence definition data 32. That is, the control unit 21 can perform internal / external determination for high-priority geofences and omit the internal / external determination for low-priority geofences. The number of geofences to be executed can be appropriately determined according to the implementation method. For example, the number of geofences to be executed can be determined based on 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 can be evaluated using any method such as the utilization rate of the control unit 21 (CPU).

[0228] Furthermore, in one example, the decision execution conditions may not be specified. Additionally, in another example, the decision execution condition field may be omitted in the geofence definition data 30 (31, 32). When the decision execution conditions are not specified or are omitted, the processing in step S503 may be omitted.

[0229] (Step S504)

[0230] In step S504, the control unit 21 operates as a determination unit 214, determining whether the current location 265 falls within the range of the geofence defined by the maintained geofence definition data 32. That is, the control unit 21 determines whether the obtained current location 265 is inside or outside the geofence defined by the maintained geofence definition data 32.

[0231] In one example, during this decision-making process, the control unit 21 can generate a decision result configured to indicate whether the location is inside or outside a defined geofence. Alternatively, in another example, the inside / outside decision is continuously performed for at least a portion of the geofence, thus allowing for the existence of previous decision results. When a previous decision result exists, the control unit 21 can also generate a decision result configured to indicate whether the location is outside the geofence, entering from outside the geofence, staying inside the geofence, or exiting from inside the geofence, based on both the previous and current decision results.

[0232] In one example, when the geofence definition data 32 consists of main data 301, motion data 303, and geometric data 305, the processing in step S504 can be performed using the second step of the reference process described above for the inside / outside determination. In one example, the control unit 21 can omit the inside / outside determination performed by comparing with the geometrically defined segment 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. Therefore, the control unit 21 can also reduce the object of the inside / outside determination performed by comparing with the geometrically defined segment to the geofence associated with the area to which the current location 265 belongs. Regarding the geofence for which the determination process is completed, the control unit 21 proceeds to the next step, S505.

[0233] (Step S505)

[0234] In step S505, the control unit 21 operates as the output processing unit 215, outputting information related to the determination result of the geofence.

[0235] The output destination and the content of the output information can be appropriately selected according to the implementation method. In one example, the control unit 21 can output the above determination result as is. The output destination can be, for example, RAM, storage unit 22, output device 25, other computer (including external storage device), etc. For example, the control unit 21 can save the current determination result to the memory resource for use in the next internal and external determination. In another example, the control unit 21 can determine whether the action execution conditions of the geofence are met based on the geofence determination result. Regarding the geofence determined to meet the action execution conditions, the control unit 21 can execute the action specified by the action content. The information output related to the geofence determination result can include determining whether the action execution conditions are met and executing the action of the geofence that meets the action execution conditions. In one example, when the geofence definition data 32 is composed of main data 301, action data 303 and geometric data 305, the processing related to the execution of the action can be constituted by the processing of the third and fourth steps of the reference process during the internal and external determination. After the information is output, the control unit 21 causes the processing to proceed to the next step S506.

[0236] (Step S506)

[0237] In step S506, the control unit 21 determines whether to terminate the process. The determination criteria can be set arbitrarily. In one example, the control unit 21 may determine that the process should not be terminated until an end instruction is provided. On the other hand, the control unit 21 may determine that the process should be terminated when an end instruction is provided. The end instruction can be provided by any method, such as application termination / interruption or device shutdown.

[0238] If the process is determined not to terminate, the control unit 21 returns the process to step S501 and resumes the process from step S501. Thus, the control unit 21 can continue to perform the inside / outside determination regarding the geofence defined by the maintained geofence definition data 32. On the other hand, if the process is determined to terminate, the control unit 21 terminates the processing related to the inside / outside determination of the geofence in this example. Furthermore, the timing of terminating the process is not limited to this example. The control unit 21 can terminate the processing related to the inside / outside determination of the geofence at any time. Additionally, in one example, the control unit 21 can execute a series of processes from steps S501 to S506 in real time.

[0239] [feature]

[0240] In this embodiment, geofence definition data 30 is managed in regional units on a map. Therefore, in step S202 described above, server device 1 can extract and distribute geofence definition data 31 to client device 2 based on regions (first region P1 and second region P2) even without calculating the distance between the current location 40 of client device 2 and the geofence. Thus, according to this embodiment, the processing load on server device 1 regarding geofence-related information can be expected to be reduced.

[0241] [4 Variations]

[0242] The embodiments of this disclosure have been described in detail above, but the descriptions above are merely illustrative in all respects. The processes and units described in this disclosure can be freely combined and implemented as long as they do not create technical contradictions. Furthermore, various modifications or changes can be appropriately made to the above embodiments. For example, the following changes can be made. In addition, the same reference numerals will be used for the same constituent elements as in the above embodiments, and descriptions of the same points as in the above embodiments will be appropriately omitted. The following variations can be appropriately combined.

[0243] In the above embodiment, the client device 2 obtains the current location 40 and requests the server device 1 to provide geofence definition data 31 based on the obtained current location 40 (steps S101 and S102). However, the location that serves as the reference for requesting geofence definition data 31 is not limited to the current location 40. In another example, the output device 25 of the client device 2 may include 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 stored geofence definition data 32. In this case, the control unit 21 may accept references to any location other than the current location (destination, etc.) on the map based on the operation performed by the user on the input device 24. Correspondingly, the control unit 21 may replace the current location 40 with any reference location and send the reference location information representing the reference location to the server device 1, thereby requesting the server device 1 to provide geofence definition data. The reference location information at the time of request may be configured in the same way as the current location information 45, except that the point that replaces the current location 40 with the reference location is used. In addition to replacing the current location 40 with the reference location, the server device 1 can provide the client device 2 with geofence definition data associated with at least one of the areas to which the reference location belongs and the surrounding areas by performing the same processing as steps S201 to S203 described above. The client device 2 can then use the received geofence definition data to depict the geofence set on and around the reference location on the map.

[0244] [5 Supplements]

[0245] The processing and elements described in this disclosure can be freely combined and implemented as long as they do not create technical contradictions.

[0246] Furthermore, it can be shown that processing intended for one device can also be performed by multiple devices. Alternatively, it can be shown that processing intended for different devices can also be performed by one device. In a computer system, the hardware architecture used to implement various functions can be flexibly changed.

[0247] This disclosure can also be implemented by providing a computer program with the functions described in the above embodiments to a computer, which has one or more processors that read and execute the program. Such a computer program can be provided to the computer either through a non-transitory computer-readable storage medium that can be connected to the computer's system bus, or via a network. Non-transitory computer-readable storage media 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 driver, or any type of medium suitable for storing electronic commands. Disks may include, for example, magnetic disks, optical disks, etc. Magnetic disks may include, for example, hard disk drives (HDDs). Optical disks may include, for example, CD-ROMs, DVDs, Blu-ray discs, etc. Semiconductor drivers may include, for example, solid-state drives.

[0248] (Symbol Explanation)

[0249] S: System; 1: Server device; 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: Geofencing definition data; 40: Current location; 45: Current location information; P1: Area 1; P2: Area 2.

Claims

1. A system comprising a server device and a client device, wherein, The server device can access a database of geofence definition data. The geofence definition data is structured to represent the definition of a geofence, and associated with the map region to which the defined geofence belongs. The client device is configured to execute: Obtain the current position determined by the positioning module; and The current location information related to the obtained current location is sent to the server device. The server device is configured to execute: Receive the current location information from the client device; Based on the current location information, extract geofence definition data from the database that is associated with at least one of the first region to which the current location belongs and the second region surrounding the first region; as well as The extracted geofence definition data is returned to the client device.

2. The system according to claim 1, wherein, The client device sending the current location information includes sending a list of maintained geofence definition data. The server device receives the current location information, including receiving the list. The server device returns the extracted geofence definition data, including: The geofence definition data extracted from the database excludes the geofence definition data registered in the list, and Returns the remaining geofence definition data after excluding the geofence definition data registered in the list.

3. The system according to claim 2, wherein, The list includes the time when the client device obtained the geofence definition data. The geofence definition data excluded from the extracted geofence definition data includes: Based on the time of acquisition, determine whether there is an update in the geofence definition data registered in the list; and Among the geofence definition data registered in the list, geofence definition data that is determined to be updated is excluded, while geofence definition data that is determined not to be updated is excluded from the extracted geofence definition data.

4. The system according to claim 1, wherein, Priorities are assigned to the geofence definition data. The server device returns the extracted geofence definition data to the client device, including prioritizing the return of geofence definition data with higher priority.

5. The system according to claim 4, wherein, The priority is defined based on the static attributes of the geofence.

6. The system according to claim 4, wherein, The priority is defined based on the dynamic attributes of the geofence.

7. The system according to claim 4, wherein, The client device sending the current location information includes the number of requests to send geofence definition data. The server device receives the current location information, including the number of requests. The server device returns the extracted geofence definition data to the client device by: starting with the geofence definition data with the highest priority, returning a corresponding amount of geofence definition data to the client device in sequence.

8. The system according to claim 7, wherein, The number of requests is determined based on the available capacity of the client device's memory resources.

9. A server apparatus comprising a control unit, the server apparatus being configured as a database capable of accessing geofence definition data, wherein... The geofence definition data is structured to represent the definition of a geofence, and associated with the map region to which the defined geofence belongs. The control unit is configured to execute: Receive current location information related to the current location of the client device from the client device; Based on the current location information, extract geofence definition data from the database that is associated with at least one of the first region to which the current location belongs and the second region surrounding the first region; as well as The extracted geofence definition data is returned to the client device.

10. The server apparatus according to claim 9, wherein, Receiving the current location information includes receiving a list of geofence definition data maintained by the client device. The extracted geofence definition data returned includes: The geofence definition data extracted from the database excludes the geofence definition data registered in the list, and Returns the remaining geofence definition data after excluding the geofence definition data registered in the list.

11. The server apparatus according to claim 10, wherein, The list includes the time when the client device obtained the geofence definition data. The geofence definition data excluded from the extracted geofence definition data includes: Based on the time of acquisition, determine whether there is an update in the geofence definition data registered in the list; and Among the geofence definition data registered in the list, geofence definition data that is determined to be updated is excluded, while geofence definition data that is determined not to be updated is excluded from the extracted geofence definition data.

12. The server apparatus according to claim 9, wherein, Priorities are assigned to the geofence definition data. Returning the extracted geofence definition data to the client device includes prioritizing the return of geofence definition data with higher priority.

13. The server apparatus according to claim 12, wherein, Receiving the current location information includes the number of requests to receive geofence definition data. Returning the extracted geofence definition data to the client device includes: from the extracted geofence definition data, sequentially returning a corresponding amount of geofence definition data to the client device, starting with the geofence definition data with the highest priority.

14. The server apparatus according to claim 13, wherein, The number of requests is determined based on the available capacity of the client device's memory resources.

15. An information processing method executed by a server device, wherein, The server device can access a database of geofence definition data. The geofence definition data is structured to represent the definition of a geofence, and associated with the map region to which the defined geofence belongs. The information processing method includes: Receive current location information related to the current location of the client device from the client device; Based on the current location information, extract geofence definition data from the database that is associated with at least one of the first region to which the current location belongs and at least one of the second regions surrounding the first region; and The extracted geofence definition data is returned to the client device.

16. The information processing method according to claim 15, wherein, Receiving the current location information includes receiving a list of geofence definition data maintained by the client device. The extracted geofence definition data returned includes: The geofence definition data extracted from the database excludes the geofence definition data registered in the list, and Returns the remaining geofence definition data after excluding the geofence definition data registered in the list.

17. The information processing method according to claim 16, wherein, The list includes the time when the client device obtained the geofence definition data. The geofence definition data excluded from the extracted geofence definition data includes: Based on the time of acquisition, determine whether there is an update in the geofence definition data registered in the list; and Among the geofence definition data registered in the list, geofence definition data that is determined to be updated is excluded, while geofence definition data that is determined not to be updated is excluded from the extracted geofence definition data.

18. The information processing method according to claim 15, wherein, Priorities are assigned to the geofence definition data. Returning the extracted geofence definition data to the client device includes prioritizing the return of geofence definition data with higher priority.

19. The information processing method according to claim 18, wherein, Receiving the current location information includes the number of requests to receive geofence definition data. Returning the extracted geofence definition data to the client device includes: from the extracted geofence definition data, sequentially returning a corresponding amount of geofence definition data to the client device, starting with the geofence definition data with the highest priority.

20. The information processing method according to claim 19, wherein, The number of requests is determined based on the available capacity of the client device's memory resources.