Method of performing map data related functions, electronic map and machine-readable instruction code
By combining a multi-tile structure with versioned electronic map data, the problem of flexibility in electronic map data storage and access is solved, enabling efficient updates and modifications, enhancing the system's versatility and robustness, and adapting to changes in map objects across tile boundaries.
Patent Information
- Application Number
- CN202511111432.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-08-14
- Filing Date
- 2025-08-08
- Publication Date
- 2026-03-03
AI Technical Summary
Existing technologies lack flexibility in storing and accessing electronic map data, especially when processing map objects that are rapidly updated and modified in the system, particularly when dealing with geometric changes across tile boundaries, resulting in inefficiency and time consumption.
It adopts a multi-tile structure, and through the tile catalog and versioned electronic map data, it allows object data to be referenced between different files, enabling efficient access and modification. It supports the cross-tile boundary shifting of object geometry, reduces storage space requirements, and provides robust access to historical versions.
It provides an efficient access mechanism that supports rapid updates and modifications to electronic map data, ensuring that the system can revert to historical versions when faced with inconsistencies, thereby improving the system's versatility and access efficiency.
Smart Images

Figure CN121594847A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to technologies associated with electronic map data, such as electronic map data used for navigation, driver assistance, advanced driver assistance, and / or autonomous driving. Specifically, embodiments of the present invention relate to technologies that can be used to store electronic map data and / or provide access to electronic map data. Background Technology
[0002] Electronic map data is a valuable resource for enhancing vehicle navigation, driver assistance systems, and autonomous driving. It provides information about roads, routes, and the surrounding environment, enabling these and other technologies to operate efficiently and safely. One advantage of electronic map data is its continuous (i.e., constant) updating to reflect changes such as road alterations, construction sites, and / or traffic patterns. This ensures that navigation systems can provide relevant guidance to drivers, reducing the likelihood of getting lost or encountering unexpected obstacles. Vehicle navigation, driver assistance, and autonomous driving systems also utilize electronic map data to enhance safety and improve driving comfort. Features such as lane departure warning, blind spot detection, and adaptive cruise control can leverage information from electronic maps to make informed decisions and provide timely alerts or interventions. For example, if electronic map data indicates a sharp turn ahead, the system can adjust the vehicle speed or warn the driver to ensure safe maneuverability. Additionally, electronic map data can help identify speed limits, traffic signs, and other road conditions, allowing driver assistance systems to take appropriate action. Therefore, electronic map data helps vehicles perform appropriate actions, thereby enhancing safety and overall efficiency.
[0003] WO 2023 / 154199 A1 and EP 3 832 422 A1 disclose technologies related to electronic map data.
[0004] There remains a need in the art for technologies that provide enhanced flexibility in storing electronic map data and / or providing access to such data. For illustration, providing access to electronic map data in a manner that facilitates the retrieval of all objects within a specific area within a short access time, enabling the map data to be updated at least based on data received from various map data sources, or performing other actions that allow the system processing the map layer to interface with map consumers, is typically challenging and / or time-consuming. Summary of the Invention
[0005] The purpose of embodiments of the present invention is to provide methods, systems, and / or machine-readable instruction code that offer enhanced flexibility in storing and / or accessing map data. In particular, the purpose of the embodiments is to provide techniques for storing and / or accessing map data in which object data defining map objects can be stored and retrieved efficiently, and changes to map geometry (such as object coordinate shifts) can be implemented efficiently and reliably.
[0006] According to embodiments of the invention, methods, electronic maps, and machine-readable instruction codes as described in the independent claims are provided. Dependent claims define preferred and advantageous embodiments.
[0007] According to one aspect of the present invention, a method for performing map data-related functions is provided. The method includes receiving a request by a processing system. The method further includes accessing electronic map data by the processing system, wherein the electronic map data includes multiple files storing object data of map objects located in multiple tiles, wherein different tiles in the multiple tiles are associated with different geographic regions of the area covered by the electronic map data. Accessing the electronic map data includes: accessing a tile catalog at least based on a request; identifying a first file among the multiple files at least based on the request and the tile catalog; and performing the following accesses at least based on the request: accessing object data of objects in the first file in response to the processing system determining that object data is included in the first file; and accessing object data of objects in the second file among the multiple files, the second file being different from the first file, in response to the processing system determining that the first file includes a reference to a second file for accessing object data. The method further includes performing operations by the processing system at least based on the object data.
[0008] Various effects and advantages are associated with this method. Electronic map data is stored in multiple files, each associated with a tile. Therefore, the files are associated with different geographic regions. This method is suitable for scenarios where object data is stored in a file (a second file) that is different from the first file accessed through the tile catalog, where the first file includes a reference to the second file and allows object data to be retrieved from the second file. This provides versatility in accommodating shifted geometry (which may be caused by, for example, changes in node coordinates across tile boundaries), while allowing objects to be identified in a way that directs requests to the first file, thus avoiding the need to delete and recreate objects when they shift across tile boundaries. Furthermore, for objects extending over more than one tile, this reduces storage space requirements because it is not necessary to store complete information in each file corresponding to the individual tiles on which the object extends. The tile catalog associated with multiple files (each file associated with a geographic region) also provides advantages regarding access time. Therefore, this method provides a technique for modifying and / or retrieving object data in an efficient manner (e.g., by changing, deleting, or adding object data). In particular, this method provides benefits regarding access time, while offering enhanced versatility for modifying electronic map data during the operation of the processing system.
[0009] Electronic map data may be or may include versioned electronic map data. The tile catalog may include version information for each file in multiple files and / or for each tile in multiple tiles. Access object data may include, at least based on a request to retrieve the version information of a first file from the tile catalog. Access object data may include, at least based on the version information of the first file, accessing the first file.
[0010] Therefore, an efficient access mechanism is provided even when using versioned electronic map data. Versioned electronic map data ensures that historical versions of the electronic map data remain available. This can be useful for functions such as considering previous road network layouts, considering points of interest located at a certain point in the past, or other functions that require knowing which electronic map data was applicable at a certain point in the past. Furthermore, the use of versioned electronic map data provides robustness in terms of the possibility of reverting to a previous version earlier than the latest version. This allows the processing system to undo some modifications to the electronic map data implemented during this period. This can be done in response to the processing system detecting inconsistencies or other issues (such as data integrity) in the latest version of the electronic map data. Being able to access previous versions also helps ensure compliance with requirements that may need to be followed in a compliance context. In addition, versioning allows the source of errors to be identified. Tile-level versioning also provides storage advantages because some areas may change / update more frequently than others.
[0011] Accessing object data may further include retrieving second file version information of the second file from the tile directory based at least on a reference to the second file included in the first file, and accessing the second file based at least on the second file version information. Accessing object data may include accessing the second file based at least on the second file version information.
[0012] This provides an efficient access mechanism even when using versioned electronic map data. The access technology allows object data to be obtained by accessing at least a first file based on a request, where the first file includes a reference to a second file containing the object data. In either case, the tile catalog includes version information that allows the processing system to determine which file(s) and file versions to access.
[0013] Accessing object data may include determining, at least based on the tile directory and the request, which of several file versions of the first and / or second file should be accessed, where different file versions correspond to different points in time.
[0014] Therefore, an efficient access mechanism is provided even when using versioned electronic map data, thus providing a combined effect of supporting versioned electronic map data and efficient access, which allows access to electronic map versions other than the latest map version and / or restoration to electronic map versions other than the latest map version.
[0015] Access object data may include identifying time or version data in the request, and at least based on the tile directory and the time or version data in the request to determine which file versions of the first and / or second file should be accessed.
[0016] Therefore, an efficient access mechanism is provided even when using versioned electronic map data, thus providing a combined effect of supporting versioned electronic map data and efficient access.
[0017] Identifying time or version data in a request may include at least a tile directory and, in response to detecting that the request does not include time or version data, determining the latest file version of the first and / or second file to be accessed.
[0018] Therefore, an efficient access mechanism is provided even when using versioned electronic map data, thus providing a combined effect of supporting versioned electronic map data and efficient access.
[0019] Accessing a tile catalog can include accessing a tile catalog in memory such as random access memory (RAM).
[0020] This provides an efficient access mechanism while offering enhanced versatility in maintaining and providing electronic map data.
[0021] A tile directory may include hash tables and / or hash values, and accessing a tile directory may include accessing tables and / or hash values in memory (e.g., RAM).
[0022] This provides an efficient access mechanism while offering enhanced versatility in maintaining and providing electronic map data.
[0023] The first file can be associated with the first tile in a set of multiple tiles. The second file can be associated with the second tile in a set of multiple tiles, and the second tile is different from the first tile.
[0024] Therefore, although multiple files may relate to different geographic areas covered by different tiles within a tiled map, it is not necessary to store the object data of map objects separately in a file associated with the tile containing the coordinates of the corresponding map object. This greatly enhances versatility. For illustration, the processing system can more easily adapt to changes in the coordinates of map objects, causing the corresponding map object to shift its geographic location from within one tile in a tiled map to within another tile in a tiled map. Furthermore, for objects extending across more than one tile, the object information may only need to be stored in a file corresponding to one tile.
[0025] Electronic map data can store the entire geometry of a map object extending across several tiles in a file corresponding to one of those tiles. This file can then serve as an anchor point. Other files associated with other tiles in the several tiles (i.e., files associated with tiles other than those involved in the file storing the entire object's geometry) can each store references to the files and / or tiles that act as anchor points.
[0026] This provides easy manipulation and access to such objects. References facilitate efficient access operations for various queries, such as queries for objects that overlap with a certain region.
[0027] The first tile can be adjacent to the second tile at the corner point of the first tile or along the edge of the first tile.
[0028] Therefore, use cases with specific practical significance are considered, in which the coordinates of map objects located near the edges or corners of tiles are shifted to locate different tiles. This can occur in response to modifications to electronic map data, which can be triggered at least based on coordinates established from reconnaissance data possibly derived from convoys.
[0029] Alternatively or additionally, the first tile may have a first size (e.g., a first edge length), the second tile may have a second size (e.g., a second edge length), and the second size may be different from the first size.
[0030] Therefore, multiple tiles can be set in a way that allows tile size to vary depending on location. Tile size can vary based on the density of map objects and thus on geographical location. For illustration, in areas covering less densely populated oceans, tile sizes can be larger, while in other areas corresponding to denser urban areas, tile sizes can be smaller. This offers advantages regarding access time and facilitates map data processing, even if the map data may correspond to a large total data volume: multiple tiles are defined in such a way (and multiple files can be set accordingly) that each file stores multiple objects and / or has a file size that meets threshold criteria, thereby facilitating processing and access operations on multiple files.
[0031] The quotient of the first size divided by the second size can be b. n , where b is a positive integer, and n is a positive integer, a negative integer, or zero. The exponent n can be a positive integer or a negative integer.
[0032] Thus, multiple tiles are arranged in a structured manner, which facilitates the identification and access of the first file, thereby allowing for efficient acquisition of object data. This tiled tile structure, including multiple tiles, also helps to dynamically adapt at least some tiles in the map when the electronic map data is modified (i.e., changed, added, or deleted), thereby allowing the processing system to ensure that multiple files conform to size standards that facilitate the processing of those multiple files while providing efficient access to the electronic map data.
[0033] Multiple tiles can be configured such that for any pair of tiles, the quotient of the edge lengths of the tiles in that pair is equal to b. n , where b is a positive integer, and n is a positive integer, a negative integer, or zero.
[0034] Thus, multiple tiles are arranged in a structured manner, which facilitates the identification and access of the first file, thereby allowing for efficient acquisition of object data. This tiled tile structure, including multiple tiles, also helps to dynamically adapt at least some tiles in the tiled area when the electronic map data is modified (i.e., changed, added, or deleted), enabling the processing system to ensure that multiple files conform to size standards that facilitate processing of those multiple files while providing efficient access to the electronic map data.
[0035] Multiple tiles can be configured such that the quotient is 2. n, where n is a positive integer, a negative integer, or zero.
[0036] Thus, multiple tiles are arranged in a structured manner, which facilitates the identification and access of these tiles, thereby allowing for efficient retrieval of object data. The tiled tiles define a hierarchical structure corresponding to a quadtree structure, which helps to dynamically adapt at least some tiles in the tiles when the electronic map data is modified (i.e., changed, added, or deleted). This allows the processing system to ensure that multiple files conform to size standards that facilitate the processing of multiple files while providing efficient access to the electronic map data.
[0037] Multiple tiles may not overlap, wherein adjacent tiles are adjacent along tile edges and / or at tile corners in a non-overlapping manner.
[0038] Therefore, tiled tiles can be used to provide structured storage for electronic map data, which facilitates access to and / or modification of the electronic map data.
[0039] Requests may include requests to modify objects. Accessing electronic map data may include generating an updated first file from the first file in response to a request and storing the updated first file.
[0040] Therefore, this method is capable of adapting to modifications to electronic map data in a manner that provides efficient access. Furthermore, the generation of an updated first file ensures that historical electronic map data remains available. This also provides robustness in the event of inconsistencies, as the processing system can revert to historical versions of multiple files.
[0041] Accessing electronic map data may further include updating the tile catalog in response to a request to reflect that the updated first file corresponds to the revision caused by the request.
[0042] Thus, the tile catalog reflects the first updated files that are generated and stored, thereby providing effective accessibility to electronic map data.
[0043] A request may include a request to modify the coordinates of an object from a first coordinate located in a first tile to a modified coordinate located in a third tile different from the first tile.
[0044] Thus, this method adapts to changes in electronic map data corresponding to changes in the coordinates of existing map objects. In particular, it adapts to changes that shift coordinates across tile boundaries. By allowing files to include references to object data in other files, this method allows changes to be implemented without requiring any alteration to the object's identifier.
[0045] Accessing electronic map data may further include generating an updated third file from a third file associated with a third tile in response to a request to modify object coordinates, and storing the updated third file. Alternatively or additionally, accessing electronic map data may further include generating an updated second file from a second file associated with a second tile in response to a request to modify object coordinates, and storing the updated second file.
[0046] Thus, this method adapts to changes in electronic map data corresponding to changes in the coordinates of existing map objects. In particular, it adapts to changes that shift coordinates across tile boundaries. By allowing files to include references to object data in other files, this method allows for the implementation of coordinate changes while providing efficient retrieval of objects in response to requests, such as specifying a geographic region.
[0047] Generating an updated third file may include a reference to the updated first file in the updated third file.
[0048] Thus, this method adapts to changes that shift coordinates from the first tile to the third tile. By generating a third file to include a reference to the first file from which object data can be obtained, the method allows for the implementation of coordinate changes while providing efficient object retrieval in response to requests, such as specifying a geographic region.
[0049] The generated updated first file can include version data and object coordinate data from the updated first file.
[0050] As a result, the versioned electronic map data is updated to reflect the modification of the first file.
[0051] Accessing electronic map data may include keeping the object identifiers unchanged when generating updated first and updated third files, and these identifiers allow the first file to be identified among multiple files.
[0052] Thus, this method provides efficient access to electronic map data. The object identifier may include a bit sequence that specifies a path through a hierarchical structure representing the tiled tiles (e.g., a quadtree) to determine the first file to be accessed.
[0053] An object's identifier can be a unique identifier, where the object's unique identifier is different from all other identifiers of the object except those stored in electronic map data.
[0054] Thus, object identifiers that uniquely identify objects can be set in such a way that these object identifiers include a bit sequence that specifies the path to determine the first file to be accessed by means of a hierarchical structure (e.g., a quadtree) representing the tiled tiles.
[0055] Storing the updated first file can include storing the updated first file without overwriting or deleting the first file.
[0056] Therefore, this method enables modifications to electronic map data in a manner that provides efficient access while ensuring the availability of historical electronic map data. It also provides robustness in the event of inconsistencies, as the processing system can revert to historical versions of multiple files.
[0057] Requests may include data retrieval requests from map consumers.
[0058] Therefore, this method is capable of processing data acquisition requests from map consumers, thereby allowing map consumers to perform any one or any combination of various electronic map-based functions.
[0059] Data acquisition requests may include boundary data of the closed boundary of a specified enclosing area. Accessing electronic map data may include identifying all objects that overlap with the area enclosed by the closed boundary.
[0060] Therefore, the processing system can handle data retrieval requests, thereby efficiently identifying all objects overlapping with the area specified in the data retrieval request. The structure of electronic map data facilitates the efficient identification of such objects.
[0061] The output can be based on at least all objects that overlap with the region enclosed by the closed boundary.
[0062] Therefore, the processing system can provide output as a response to a data acquisition request for use by map consumers. The output may include object data for all objects overlapping the area enclosed by the closed boundary specified in the data acquisition request.
[0063] The output can include at least the coordinates of all objects that overlap with the region enclosed by the closed boundary.
[0064] Therefore, the processing system can provide output as a response to a data acquisition request for use by map consumers. The output may include object data for all objects overlapping the area enclosed by the closed boundary specified in the data acquisition request.
[0065] Data retrieval requests may include membership requests. Accessing electronic map data may include identifying all objects stored in the electronic map data, including references to (or including or otherwise containing) the objects specified in the membership request.
[0066] Therefore, the processing system can handle data retrieval requests to identify all objects stored in electronic map data that are members of the object specified in the membership request. Thus, this method is adaptable to different types of queries on map data.
[0067] The processing system can operate to support different types of map object definitions, such as a first type (e.g., for defining nodes in a navigable network), a second type (e.g., for defining links in a navigable network), and a third type (e.g., for defining information associated with objects of the first or second type, or other objects of the third type). A map object definition of the first type (e.g., a "node type") can define the coordinates (such as latitude and longitude, but not limited to) of the corresponding node. A map object definition of the second type (e.g., a "pathway type") can at least define which(s) of nodes are part of a path. A map object definition of the third type (which may also be referred to as a relation) can define characteristics such as names that can be associated with objects of the first, second, or even third type (e.g., the name of a point of interest (POI)), and therefore can reference objects of any type in the first, second, or third type. Access to an electronic map in response to a membership request can include all objects referenced (or included as part of or otherwise in connection with) object definitions that identify objects of the second or third object type.
[0068] Therefore, the processing system can handle data retrieval requests to identify all objects stored in electronic map data that are members of the object specified in the membership request. Thus, this method is adaptable to different types of queries on map data.
[0069] Identifying all objects, including the object, stored in electronic map data may include accessing a membership data structure that specifies all objects, including the object, stored in the electronic map data.
[0070] Therefore, the processing system can handle data retrieval requests, thereby efficiently identifying all objects, including the stated object, stored in the electronic map data. The processing system maintains the membership data structure, thus providing output in response to such membership queries in a time-efficient manner.
[0071] The output can be based on at least all objects that include this object.
[0072] Therefore, the processing system can provide output as a response to a data retrieval request for use by map consumers. The output may include identifiers of all objects containing the object, optional coordinates, or other information.
[0073] The output may include at least the identifiers and / or coordinates of all objects, including the object, stored in the electronic map data.
[0074] Therefore, the processing system can provide output as a response to data retrieval requests for use by map consumers.
[0075] Versioned electronic map data may include a first set of files corresponding to different versions of the versioned electronic map data, the first set of files being associated with a first tile, and the first set of files including the first file.
[0076] Thus, this method provides the flexibility to access map versions corresponding to a past point in time that differ from the latest map version, while also offering robustness against potential errors that may have occurred during map data updates. In particular, maintaining historical map data allows the processing system to potentially revert to a previous map version in response to the detection of inconsistencies or other errors (such as referencing errors).
[0077] The request may include time data and / or version data.
[0078] Therefore, a request can include a request to obtain electronic map data from which object data is to be accessed, specifying the time and / or version. Accessing historical electronic map data has various applications, such as retrieving previous points of interest (POI) locations.
[0079] This method may include determining the first file to be accessed based at least on time data and / or version data.
[0080] Therefore, the processing system uses the time data and / or version data included in the request to determine the first file to be accessed in response to the request, and optionally a second file. This facilitates efficient access to historical versions of electronic map data.
[0081] The method may include determining the first file to be accessed in the set based on at least one of the tile catalog and time data and / or version data.
[0082] Therefore, the processing system uses a tile catalog combined with the time and / or version data included in the request to determine the first file to be accessed in response to the request, and optionally a second file. This facilitates efficient access to historical versions of electronic map data.
[0083] The tile catalog can associate each tile with the latest revision, which causes the tile to be updated and occurs before the tile catalog is generated or updated.
[0084] Therefore, the latest version of a file can be identified efficiently by accessing the tile catalog. This facilitates efficient access to electronic map data.
[0085] The tile catalog may include a hash table maintained in the processing system's memory.
[0086] This allows for efficient access to the tile catalog to obtain information about the files within the desired file. This facilitates efficient access to electronic map data.
[0087] Performing an operation may include generating output by the processing system based at least on object data.
[0088] Therefore, the processing system provides output depending on the object data accessed in response to the request. For requests that are or include a data retrieval request, the output may include object data for at least one map object. For requests that are or include a request to modify electronic map data (e.g., by changing existing object data, adding new object data, or deleting existing object data), the output may include confirmation that the operation was performed correctly.
[0089] The execution of operations may include interface control operations performed by the processing system based at least on object data.
[0090] Therefore, the processing system provides output depending on the object data accessed in response to the request. For requests that are or include a data retrieval request, the output may include object data for at least one map object. For requests that are or include a request to modify electronic map data (e.g., by changing existing object data, adding new object data, or deleting existing object data), the output may include confirmation that the operation was performed correctly.
[0091] The operation may include at least one map data-related function to be performed by the processing system. This at least one map data-related function may include one, several, or all of the following: providing map data for use by a route search system; providing map data for use by a route guidance system; providing map data for use by a driver assistance system; providing map data for use by an advanced driver assistance system; providing map data for use by an autonomous vehicle system; updating map data; and deploying map data updates.
[0092] Therefore, the efficient access to electronic map data provided by this method can be beneficially utilized to achieve the execution of map data-related functions. For example, more efficient access to electronic map data can enable driver assistance, advanced driver assistance, and / or autonomous driving operations, which improves the quality and safety of vehicle operation.
[0093] The operation may include performing at least one map data-related function by a processing system and / or by a system or device spaced apart from the processing system and capable of operating to communicatively interface with the processing system. The at least one map data-related function may include one, several, or all of the following: providing map data for use by a route search system; providing map data for use by a route guidance system; providing map data for use by a driver assistance system; providing map data for use by an advanced driver assistance system; providing map data for use by an autonomous vehicle system; updating map data; and deploying map data updates.
[0094] Therefore, the efficient access to electronic map data provided by this method can be beneficially utilized to perform map data-related functions. For example, more efficient access to electronic map data can enable driver assistance, advanced driver assistance, and / or autonomous driving operations, which improves the quality and safety of vehicle operation.
[0095] According to one aspect of the present invention, a vehicle control method for performing vehicle control actions is provided. The vehicle control method includes: performing a method for performing map data-related functions according to one aspect or embodiment; receiving output generated by a processing system by a vehicle system or device; and performing at least one control action by the vehicle system or device based at least on the output.
[0096] Therefore, the vehicle control method utilizes functions related to map data, providing efficient access to electronic map data. For example, more efficient access to electronic map data enables driver assistance, advanced driver assistance, and / or autonomous driving operations, improving the quality and safety of vehicle operation.
[0097] According to one aspect of the invention, map data generated using the method as described in any one of the preceding claims is provided. Electronic map data can be obtained by accessing electronic map data and generating at least one of a plurality of files based on a request.
[0098] Thus, electronic map data is provided when performing a method according to one aspect or embodiment. This electronic map data includes multiple tiles, each associated with a tile in a tiled area, providing the benefit of enabling efficient and universal access to the electronic map data. The electronic map data is particularly useful for accommodating various types of requests, such as requests for all objects overlapping an area enclosed by a closed boundary, identification of all objects as members of another object, or legacy requests for object data. It will be understood that electronic map data generated by requests, for example, including requests to modify the electronic map data, has characteristic features that can be determined from the electronic map data itself, namely, at least some of the multiple files include one or more references to other files. In a preferred embodiment, the electronic map data further includes a tile catalog containing information about the tiled areas and the latest file versions of the various tiles within the tiled areas.
[0099] According to another aspect of the invention, machine-readable instruction code is disclosed that, when executed by at least one processing circuit, causes the at least one processing circuit to perform the method of any aspect or embodiment.
[0100] Thus, the technical effects disclosed in relation to the methods according to various embodiments are obtained when executing machine-readable instruction code.
[0101] According to another aspect of the present invention, a data carrier comprising machine-readable instruction code is disclosed, which, when executed by at least one processing circuit, causes the at least one processing circuit to perform any aspect or embodiment of the method.
[0102] Thus, the data carrier includes machine-readable instruction code that, when executed, provides the disclosed technical effects associated with the methods according to various embodiments.
[0103] Data carriers may include non-transitory storage media on which machine-readable instruction code is stored.
[0104] Therefore, data carriers can be represented as physical objects.
[0105] According to one aspect of the present invention, a processing system for performing map data-related functions is provided. The processing system includes at least one data interface operable for receiving requests. The processing system includes at least one processing circuit operable for accessing electronic map data, wherein the electronic map data includes multiple files storing object data of map objects located in multiple tiles, wherein different tiles in the multiple tiles are associated with different geographical regions of the area covered by the electronic map data. The at least one processing circuit is operable to perform the following operations to access the electronic map data: accessing a tile catalog at least based on a request; identifying a first file among the multiple files at least based on the request and the tile catalog; and accessing, at least based on a request: accessing object data of objects in the first file in response to the processing system determining that object data is included in the first file; and accessing object data of objects in a second file among the multiple files, different from the first file, in response to the processing system determining that the first file includes a reference to a second file for accessing object data. The at least one processing circuit is operable to perform operations at least based on object data.
[0106] Various effects and advantages are achieved through the processing system. Electronic map data is stored in multiple files, each associated with a tile. Therefore, the files are associated with different geographic regions. The processing system adapts to scenarios where object data is stored in a file (a second file) that is different from the first file accessed through the tile catalog, where the first file includes a reference to the second file and allows retrieval of object data from the second file. This provides versatility in adapting to shifted geometry (which may be caused by, for example, changes in node coordinates across tile boundaries), while allowing objects to be identified in a manner that directs requests to the first file, thus avoiding the need to delete and recreate objects when they shift across tile boundaries. The tile catalog associated with multiple files (each associated with a geographic region) also provides advantages regarding access time. Therefore, the processing system is capable of operating to allow for efficient modification and / or reading of electronic map data. The processing system provides benefits regarding access time while providing enhanced versatility for modifying electronic map data during the operation of the processing system.
[0107] The processing system can operate on methods for performing any aspect or embodiment disclosed herein.
[0108] According to another aspect, a system is provided that includes a processing system and at least one map data consumer. The processing system is operable such that at least one operation includes an output operation to provide output for use by at least one map data consumer.
[0109] Thus, the output (e.g., map data) is available for use by electronic map data consumers. Electronic map data consumers may be or may include devices or vehicle systems capable of operating to perform one, several, or all of the following functions based at least on the output: route search, route guidance, driver assistance functions, advanced driver assistance functions, autonomous driving functions, and traffic flow control.
[0110] At least one map data consumer may include control circuitry capable of operating to control vehicle actuators and / or the vehicle human-machine interface, at least based on the output.
[0111] Therefore, the output (e.g., an output stream providing map data) is used to perform vehicle-related functions or other navigation-related functions.
[0112] The system may further include at least one map data source capable of generating requests, including requests to modify electronic map data.
[0113] Therefore, the map data source that causes modifications to electronic map data can be provided separately from the processing system. This facilitates the aggregation of data from different map data sources into the electronic map data, which can be associated with different map layers.
[0114] The processing system can be operated to receive and process requests for modifying electronic map data. The processing system can be operated to process requests for modifying electronic map data such that one or more supplementary files are generated without overwriting or deleting previously existing files.
[0115] Therefore, the processing system is able to operate on versioned electronic map data for maintenance.
[0116] Each of the map data sources can be associated with at least one (e.g., exactly one) of several map layers.
[0117] This provides further enhanced flexibility in modifying map data.
[0118] The map data source may include at least one map data source capable of modifying a map layer in response to observations captured using sensing devices (e.g., links in a navigable network, traffic signs, and / or traffic conditions). The sensing devices may be installed in a detector queue (e.g., vehicle detectors).
[0119] Therefore, appropriate modifications to the map layer can be performed automatically, for example, to improve the output quality (e.g., output accuracy compared to real-world infrastructure conditions).
[0120] The following describes methods and processing systems for accessing electronic map data. These techniques can (but do not need to) be combined with methods for performing map data-related functions as disclosed herein.
[0121] According to one aspect of the present invention, a method for accessing electronic map data is provided. The method includes a processing system determining a hierarchical tile structure for storing the electronic map data, wherein the hierarchical tile structure includes a plurality of tiles covering a geographic coverage area of the electronic map. The method includes the processing system generating a plurality of files and storing the plurality of files. The processing system generates the plurality of files such that each file in the plurality of files includes object data of map objects located in associated tiles within the plurality of tiles. Determining the hierarchical tile structure includes the processing system determining the hierarchical tile structure based at least on the geographic location and storage space requirements of the map objects and at least on a threshold criterion. The processing system determines the hierarchical structure such that each file in the plurality of files meets the threshold criterion when each file in the plurality of files includes object data of tiles larger than a predetermined minimum tile size.
[0122] Various effects and advantages have been achieved by implementing methods for accessing electronic map data. Generating multiple files, such as those corresponding to map objects and geographic locations, where each file is associated with a tile (and therefore a geographic region), enables efficient access to various queries, such as queries by object identifiers and queries by geographic region. Thresholding criteria enable the generation of multiple files, each associated with a tile in a hierarchical tile structure, thus achieving efficient access. The thresholding criteria ensure that all files meet the criteria when associated with tiles that do not have a minimum tile size (e.g., minimum edge size). This provides efficient access by allowing the files needed to process the queries received by the processing system to be stored in memory, where the upper limit of memory space and / or the number of objects is known in advance according to the thresholding criteria.
[0123] Relaxing the threshold criteria for files associated with tiles of minimum size (by not requiring such files to meet the threshold criteria) allows object identifiers to include a fixed-length bit sequence that uniquely specifies the tile to be accessed in response to a request (and thus the corresponding file). This facilitates the processing of various types of queries, thereby providing efficient access to combined files associated with geographic regions in a way that adapts to spatially varying tile sizes.
[0124] The electronic map data may include or may be versioned electronic map data. The method may further include generating a tile catalog by a processing system, the tile catalog including information about the tiled tiles and version information for each tile in at least one tiled tile, to enable the identification of files within multiple files.
[0125] Therefore, an efficient access mechanism is provided even when using versioned electronic map data. Versioned electronic map data ensures that historical versions of the electronic map data remain available. This can be useful for functions such as considering previous road network layouts, considering points of interest located at a certain point in the past, or other functions that require knowing which electronic map data was applicable at a certain point in the past. Furthermore, the use of versioned electronic map data provides robustness in terms of the possibility of reverting to a previous version earlier than the latest version. This allows the processing system to undo some modifications to the electronic map data implemented during this period. This can be done in response to the processing system detecting inconsistencies or other issues (such as data integrity) in the latest version of the electronic map data.
[0126] Determining the hierarchical tile structure may include the processing system determining the depth of the hierarchical structure based at least on the spatial variation of map object density. Depth can correspond one-to-one with edge length. Different depths can correspond to different edge lengths of tiles, where each depth corresponds to a single associated edge length, and vice versa. Depth can be a positive integer indicating the number of nodes to be traversed on a tree (e.g., a quadtree) from the root to the leaf nodes.
[0127] Therefore, multiple tiles can be set in a way that allows tile size to vary depending on location. Tile size can vary based on the density of map objects and thus on geographical location. For illustration, in areas covering less densely populated oceans, tile sizes can be larger, while in other areas corresponding to denser urban areas, tile sizes can be smaller. This offers advantages regarding access time and facilitates map data processing, even if the map data may correspond to a large total data volume: multiple tiles are defined in such a way (and multiple files can be set accordingly) that each file stores multiple objects and / or has a file size that meets threshold criteria, thereby facilitating processing and access operations on multiple files.
[0128] The processing system can determine multiple tiles such that for any pair of tiles, the quotient of the edge lengths of the tiles in that pair is equal to b. n , where b is a positive integer, and n is a positive integer, a negative integer, or zero.
[0129] Thus, multiple tiles are arranged in a structured manner, which facilitates the identification and access of the first file, thereby allowing for efficient acquisition of object data. This tiled tile structure, including multiple tiles, also helps to dynamically adapt at least some tiles in the map when the electronic map data is modified (i.e., changed, added, or deleted), thereby allowing the processing system to ensure that multiple files conform to size standards that facilitate the processing of those multiple files while providing efficient access to the electronic map data.
[0130] The processing system can identify multiple tiles such that the quotient is 2. n , where n is a positive integer, a negative integer, or zero.
[0131] Thus, multiple tiles are arranged in a structured manner, which facilitates the identification and access of these tiles, thereby allowing for efficient retrieval of object data. The tiled tiles define a hierarchical structure corresponding to a quadtree structure, which helps to dynamically adapt at least some tiles in the tiles when the electronic map data is modified (i.e., changed, added, or deleted). This allows the processing system to ensure that multiple files conform to size standards that facilitate processing of those files while providing efficient access to the electronic map data.
[0132] The processing system can identify multiple tiles such that they do not overlap, wherein adjacent tiles are adjacent along tile edges and / or at tile corners in a non-overlapping manner.
[0133] Therefore, tiled tiles can be used to provide structured storage for electronic map data, thereby facilitating access to and / or modification of the electronic map data.
[0134] The processing system can generate a hierarchical tile structure that prevents tile overlap, and the quotient of tile sizes at different levels of the hierarchical tile structure is b. n , where b is a positive integer greater than one, and n is a positive or negative integer.
[0135] Thus, multiple tiles are arranged in a structured manner, which facilitates the identification and access of these tiles, thereby allowing for efficient retrieval of object data. The tiled tiles define a hierarchical structure corresponding to a quadtree structure, which helps to dynamically adapt at least some tiles in the tiles when the electronic map data is modified (i.e., changed, added, or deleted). This allows the processing system to ensure that multiple files conform to size standards that facilitate processing of those files while providing efficient access to the electronic map data.
[0136] The processing system can be operated to enable the setting of threshold criteria.
[0137] Therefore, the processing system allows for configuration of the generation of multiple files. This enables efficient access, taking into account the specific circumstances of the processing system. For illustration, the adjustability and configurability of the threshold criterion allow it to take into account the processing system's memory configuration (e.g., memory size), memory access controller configuration, and / or memory bus configuration. Thus, efficient access can be achieved by considering the configuration of the processing system.
[0138] Threshold criteria can include file size criteria.
[0139] Therefore, the processing system is able to operate to ensure that any file not associated with a tile at the minimum tile size level has a file size not exceeding a file size threshold among multiple files. This facilitates access by providing an upper limit on the file size of any file not associated with a tile having a minimum tile size supported by the processing system.
[0140] Threshold criteria can include object count criteria.
[0141] Therefore, the processing system is able to operate to ensure that the number of map objects stored in any file not associated with tiles at the minimum tile size level does not exceed an object count threshold. This facilitates access by providing an upper limit on the number of objects in any file not associated with tiles having a minimum tile size supported by the processing system.
[0142] The processing system can generate a hierarchical tile structure such that any tile in the hierarchical tile structure that is larger than a predetermined minimum tile size, other than the root of the hierarchical tile structure, has a size such that the generation of a file storing map objects of the original tiles in the hierarchical tile structure (i.e., tiles larger than and including the corresponding tiles) will produce a file that violates a threshold criterion. In other words, the processing system can generate a hierarchical tile structure such that any tile in the hierarchical tile structure that is larger than a predetermined minimum tile size, other than the root of the hierarchical tile structure, is the largest tile that produces an associated file that meets the threshold criterion.
[0143] Therefore, the processing system generates multiple files in a way that provides efficient access to electronic map data while facilitating the maintenance of multiple files. The hierarchical tile structure, and thus the multiple files, are configured by the processing system in such a way that any file not associated with a tile having a predetermined minimum tile size meets a threshold criterion, and the corresponding tile is the largest such tile for which the file meets the threshold criterion. Thus, by ensuring compliance with the threshold criterion while keeping the tiles as large as possible, compliance with the threshold criterion is ensured at any level not corresponding to a minimum tile size.
[0144] The processing system can generate a hierarchical tile structure such that any tile in the hierarchical tile structure larger than a predetermined minimum tile size satisfies one of the following conditions: it is the root of the hierarchical tile structure; the generation of a file storing map objects of the original tiles in the hierarchical tile structure will produce a file that violates the threshold criterion.
[0145] Therefore, the processing system generates multiple files in a way that provides efficient access to electronic map data while facilitating the maintenance of multiple files. The hierarchical tile structure, and thus the multiple files, are configured by the processing system in such a way that any file not associated with a tile having a predetermined minimum tile size meets a threshold criterion, and the corresponding tile is the largest such tile for which the file meets the threshold criterion. Thus, by ensuring compliance with the threshold criterion while keeping the tiles as large as possible, compliance with the threshold criterion is ensured at any level not corresponding to a minimum tile size.
[0146] The method may further include: receiving, by the processing system, at least one message instructing modification of the versioned electronic map data. Generating multiple files may include the processing system generating an updated file from at least one of the multiple files in response to the at least one message and storing the updated file, wherein the updated file is based at least on the modification.
[0147] Therefore, the processing system can handle messages that cause modifications to electronic map data (such as by changing existing objects, adding new objects, or deleting existing objects). This method is capable of adapting to modifications to electronic map data in a way that provides efficient access. Furthermore, the generation of an updated first file ensures that historical electronic map data remains available. This also provides robustness in the event of inconsistencies, as the processing system can revert to historical versions of multiple files.
[0148] Generating a tile catalog can include obtaining and updating a version of the tile catalog before making modifications, so that the tile catalog indicates that the tiles associated with the updated file version have been affected by the modification request.
[0149] Thus, the tile catalog reflects the generation and storage of updated files, thereby providing effective accessibility to electronic map data.
[0150] The tile catalog can associate each tile with the latest revision, which causes the tile to be updated and occurs before the tile catalog is generated or updated.
[0151] Therefore, the latest version of a file can be identified efficiently by clearing the tile directory. This helps to provide efficient access to electronic map data.
[0152] The tile catalog may include a hash table maintained in the processing system's memory.
[0153] This allows for efficient access to the tile catalog to obtain information about the files within the desired file. This facilitates efficient access to electronic map data.
[0154] In addition to at least one file, the processing system can also store an updated version of that at least one file.
[0155] Therefore, historical electronic map data remains available. This also provides robustness in the event of inconsistencies, as the processing system can revert to historical versions of multiple files.
[0156] Modifications can include one of the following: adding a new map object; changing an existing map object; or deleting an existing map object.
[0157] Thus, the processing system is able to operate to adapt to various modifications to the electronic map data by repeatedly generating the layered tile structure as necessary to ensure continued compliance with threshold standards.
[0158] The at least one message can indicate a geographic location change from a first geographic location overlapping with a first tile to a third geographic location overlapping with one or more third tiles. Updating multiple files can include: generating an updated first file from a first file in the multiple files, wherein the first file is associated with the first tile, and wherein the updated first file includes data specifying the third geographic location; and generating an updated version of each of the one or more third files in the multiple files. Each of the one or more third files can be associated with an associated third tile in one or more third tiles. Generating an updated version of each of the one or more third files includes writing a reference to the first tile into each of the one or more third files.
[0159] Therefore, this method adapts to changes in electronic map data corresponding to changes in the coordinates of existing map objects. It is particularly suitable for changes that shift coordinates across tile boundaries. By allowing files to include references to object data in other files, this method allows for the implementation of coordinate changes while providing efficient retrieval of objects in response to requests, such as specifying a geographic region.
[0160] The method may further include modifying the hierarchical tile structure by the processing system in response to determining that a modification requires tile splitting or merging to continue meeting the threshold criteria.
[0161] Therefore, this method adapts to changes in electronic map data while ensuring continued compliance with threshold criteria by triggering tile segmentation and / or tile merging in response to requests to modify the electronic map data. This provides enhanced access to electronic map data and improves the process of modifying electronic map data.
[0162] Each of the map data sources can be associated with at least one (e.g., exactly one) of several map layers.
[0163] This provides further enhanced flexibility in modifying map data.
[0164] The map data source may include at least one map data source capable of modifying a map layer in response to observations captured using sensing devices (e.g., links in a navigable network, traffic signs, and / or traffic conditions). The sensing devices may be installed in a detector queue (e.g., vehicle detectors).
[0165] Thus, appropriate modifications to map layers can be performed automatically, for example, to improve output quality (e.g., output accuracy compared to real-world infrastructure conditions).
[0166] This method may be the initial generation of multiple files and hierarchical tile structures to enable access to electronic map data.
[0167] Therefore, this method can operate on multiple files used to generate electronic map data by providing efficient access to the electronic map data to obtain and / or modify the object data included in the electronic map.
[0168] This method may be, or may include, modification of previously generated electronic map data. Modification may include generating additional files and / or modifying the hierarchical tile structure through tile merging or tile splitting.
[0169] Therefore, this method enables the maintenance of multiple files containing electronic map data as the electronic map data continues to be modified. These multiple files and the hierarchical tile structure continue to provide efficient access to the electronic map data to retrieve and / or modify object data included in the electronic map. The hierarchical tile structure is appropriately modified to ensure that any tile larger than a predetermined minimum tile size continues to meet threshold criteria.
[0170] The method may further include enabling access to versioned electronic map data by the processing system in response to a request to perform map data-based functions.
[0171] Thus, the processing system provides access to electronic map data stored in a way that enables efficient access.
[0172] Access can include: accessing the tile directory to identify at least one file to be accessed; accessing at least one file to obtain object data for one or more map objects; and generating output based at least on the object data.
[0173] Thus, the processing system provides access to electronic map data in an efficient manner.
[0174] Access can be made by the processing system generating output based on object data obtained from at least multiple files.
[0175] Therefore, the processing system provides output depending on the object data accessed in response to the request. For requests that are or include a data retrieval request, the output may include object data for at least one map object. For requests that are or include a request to modify electronic map data (e.g., by changing existing object data, adding new object data, or deleting existing object data), the output may include confirmation that the operation was performed correctly.
[0176] This method may include performing interface control operations by the processing system based at least on object data.
[0177] Therefore, the processing system provides output depending on the object data accessed in response to the request. For requests that are or include a data retrieval request, the output may include object data for at least one map object. For requests that are or include a request to modify electronic map data (e.g., by changing existing object data, adding new object data, or deleting existing object data), the output may include confirmation that the operation was performed correctly.
[0178] The method may include at least one map data-related function to be performed by a processing system. This at least one map data-related function may include one, several, or all of the following: providing map data for use by a route search system; providing map data for use by a route guidance system; providing map data for use by a driver assistance system; providing map data for use by an advanced driver assistance system; providing map data for use by an autonomous vehicle system; updating map data; and deploying map data updates.
[0179] Therefore, the efficient access to electronic map data provided by this method can be beneficially utilized to achieve the execution of map data-related functions. For example, more efficient access to electronic map data can enable driver assistance, advanced driver assistance, and / or autonomous driving operations, which improves the quality and safety of vehicle operation.
[0180] The method may include performing at least one map data-related function by a processing system and / or by a system or device spaced apart from the processing system and operable to communicatively interface with the processing system. The at least one map data-related function may include one, several, or all of the following: providing map data for use by a route search system; providing map data for use by a route guidance system; providing map data for use by a driver assistance system; providing map data for use by an advanced driver assistance system; providing map data for use by an autonomous vehicle system; updating map data; and deploying map data updates.
[0181] Therefore, the efficient access to electronic map data provided by this method can be beneficially utilized to perform map data-related functions. For example, more efficient access to electronic map data can enable driver assistance, advanced driver assistance, and / or autonomous driving operations, which improves the quality and safety of vehicle operation.
[0182] According to one aspect of the present invention, a vehicle control method for performing vehicle control actions is provided. The vehicle control method includes: a method for accessing electronic map data according to one aspect or embodiment; receiving output generated by a processing system based on at least a plurality of files by a vehicle system or device; and performing at least one control action by the vehicle system or device based at least on the output.
[0183] Therefore, the vehicle control method utilizes an access mechanism that provides efficient access to electronic map data. For example, more efficient access to electronic map data enables driver assistance, advanced driver assistance, and / or autonomous driving operations, thereby improving the quality and safety of vehicle operation.
[0184] According to one aspect of the invention, map data generated using the method for access as described in any of the preceding claims is provided. Electronic map data can be obtained either through the initial generation of a layered tile structure and multiple files, or through modification of a layered tile structure and multiple files, such as those generated by a processing system.
[0185] Thus, electronic map data is provided when performing a method according to one aspect or embodiment. This electronic map data includes a plurality of tiles, each associated with tiles in a tiled map, providing the benefit of enabling efficient and universal access to the electronic map data. The electronic map data is particularly useful for accommodating various types of requests, such as requests for all objects overlapping an area enclosed by a closed boundary, requests to identify all objects that are members of another object (where the other object is specified in the data retrieval request), or legacy requests for object data. It will be understood that electronic map data generated by requests, for example, including requests to modify electronic map data, has characteristic features that can be determined from the electronic map data itself, namely, at least some of the multiple files include one or more references to other files. In a preferred embodiment, the electronic map data further includes a tile catalog containing information about the tiled maps and information about the latest file versions of various tiles in the tiled maps.
[0186] According to another aspect of the invention, machine-readable instruction code is disclosed that, when executed by at least one processing circuit, causes the at least one processing circuit to perform the method of any aspect or embodiment.
[0187] Thus, the technical effects disclosed in relation to the methods according to various embodiments are obtained when executing machine-readable instruction code.
[0188] According to another aspect of the present invention, a data carrier comprising machine-readable instruction code is disclosed, which, when executed by at least one processing circuit, causes the at least one processing circuit to perform any aspect or embodiment of the method.
[0189] Thus, the data carrier includes machine-readable instruction code that, when executed, provides the disclosed technical effects associated with the methods according to various embodiments.
[0190] Data carriers may include non-transitory storage media on which machine-readable instruction code is stored.
[0191] Therefore, data carriers can be represented as physical objects.
[0192] According to one aspect of the present invention, a processing system for enabling access to electronic map data is provided. The processing system includes at least one processing circuit operable to determine a hierarchical tile structure for storing the electronic map data, wherein the hierarchical tile structure includes a plurality of tiles covering a geographic coverage area of the electronic map. The at least one processing circuit operable to generate a plurality of files and store the plurality of files. The at least one processing circuit operable to generate the plurality of files such that each file in the plurality of files includes object data of map objects located in associated tiles within the plurality of tiles. The at least one processing circuit operable to determine the hierarchical tile structure by: determining the hierarchical tile structure based at least on the geographic location and storage space requirements of the map objects and at least on a threshold criterion. The at least one processing circuit operable to determine the hierarchical structure such that each file in the plurality of files meets the threshold criterion when each file in the plurality of files includes object data of tiles larger than a predetermined minimum tile size.
[0193] Various effects and advantages are achieved through the processing system used to enable access to electronic map data. Multiple files are generated, establishing a correspondence between map objects and geographic locations, where each tile in the map is associated with another tile (and therefore with a geographic region), enabling efficient access to various queries, such as queries by object identifiers and queries by geographic region. Thresholding criteria enable the generation of multiple files in a manner that achieves efficient access, each file associated with tiles in a hierarchical tile structure. The thresholding criteria ensure that all files conform to the thresholding criteria when associated with tiles that do not have a minimum tile size (e.g., minimum edge size). This provides efficient access by allowing the files required to process the queries received by the processing system to be stored in memory, where the upper limits of memory space and / or the number of objects are known in advance according to the thresholding criteria.
[0194] Relaxing the threshold criteria for files associated with tiles of minimum size (by not requiring such files to meet the threshold criteria) allows object identifiers to include a fixed-length bit sequence that uniquely specifies the tile to be accessed in response to a request (and thus the corresponding file). This facilitates the processing of various types of queries, thereby providing efficient access to combined files associated with geographic regions in a way that adapts to spatially varying tile sizes.
[0195] The optional features of the processing system and the resulting effects correspond to the optional features of the method for accessing electronic map data in any of the various aspects or embodiments disclosed herein.
[0196] The processing system can be operated to perform methods for accessing electronic map data according to any of the various aspects or embodiments disclosed herein.
[0197] A processing system for enabling access to electronic map data may include at least one interface capable of communicating with one or more map data sources and / or one or more map data consumers.
[0198] According to another aspect, a system is provided that includes a processing system for enabling access to electronic map data and at least one map data consumer. The processing system is operable to perform output operations to provide output for use by at least one map data consumer.
[0199] Thus, the output (e.g., a portion of electronic map data) is available to electronic map data consumers. Electronic map data consumers may be or may include devices or vehicle systems capable of operating to perform one, several, or all of the following functions based at least on the output: route search, route guidance, driver assistance functions, advanced driver assistance functions, autonomous driving functions, and traffic flow control.
[0200] At least one map data consumer may include control circuitry capable of operating to control vehicle actuators and / or the vehicle human-machine interface, at least based on the output.
[0201] Therefore, the output (e.g., an output stream providing map data) is used to perform vehicle-related functions or other navigation-related functions.
[0202] The system may further include at least one map data source capable of generating requests, including requests to modify electronic map data.
[0203] Therefore, the multiple map data sources that cause modifications to electronic map data can be provided separately from the processing system. This facilitates the aggregation of data from different map data sources into the electronic map data, which can be associated with different map layers.
[0204] The processing system can be operated to receive and process requests for modifying electronic map data. The processing system can be operated to process requests for modifying electronic map data such that one or more supplementary files are generated without overwriting or deleting previously existing files.
[0205] Therefore, the processing system is able to operate on versioned electronic map data for maintenance.
[0206] Each of the map data sources can be associated with at least one (e.g., exactly one) of several map layers.
[0207] This provides further enhanced flexibility in modifying map data.
[0208] The map data source may include at least one map data source capable of modifying a map layer in response to observations captured using sensing devices (e.g., links in a navigable network, traffic signs, and / or traffic conditions). The sensing devices may be installed in a detector queue (e.g., vehicle detectors).
[0209] Therefore, appropriate modifications to map layers can be performed automatically, for example, to improve output quality (e.g., output accuracy compared to real-world infrastructure conditions).
[0210] The methods and processing systems for accessing electronic map data can operate to perform methods for executing electronic map data-related functions according to any aspect or embodiment disclosed herein. Therefore, the techniques for accessing electronic map data can (but do not necessarily) be combined with methods for executing map data-related functions as disclosed herein.
[0211] While the technologies disclosed herein can be used for navigation, route search, driver assistance, and autonomous driving functions, they are not limited to these applications. Attached Figure Description
[0212] Embodiments of the present invention will be described with reference to the accompanying drawings, wherein similar or corresponding reference numerals denote elements having similar or corresponding configurations and / or functions.
[0213] Figure 1 It is a schematic representation of a system including a processing system capable of operating to enable access to electronic map data and / or the execution of functions related to the map data.
[0214] Figure 2 It is a schematic representation of tiled blocks and multiple files.
[0215] Figure 3 It is a schematic representation of tiled blocks and multiple files.
[0216] Figure 4 It is a schematic representation of a portion of a tiled map and a subset of multiple files.
[0217] Figure 5 It is a schematic representation of the object identifier and its association with the tiled tiles.
[0218] Figure 6 It is a schematic representation of a quadtree for tiling tiles.
[0219] Figure 7 It is a schematic representation illustrating the operation of the processing system.
[0220] Figure 8 It is a schematic representation of the tile catalog.
[0221] Figure 9 This is a flowchart of the method.
[0222] Figure 10 This is a flowchart of the method.
[0223] Figure 11 It is a schematic representation of a subset of multiple tiles.
[0224] Figure 12 It is another illustrative representation of a subset.
[0225] Figure 13 It is another illustrative representation of a subset.
[0226] Figure 14 This is a flowchart of the method.
[0227] Figure 15 It is a schematic representation of an object used to illustrate the generation and / or adaptation of electronic map data for tiled plots.
[0228] Figure 16 It is an illustrative representation of the threshold standard.
[0229] Figure 17 It is a block diagram representation of (multiple) processing circuits in a processing system.
[0230] Figure 18 It is a signal flow diagram of the system, including the processing system.
[0231] Figure 19 It is a signal flow diagram of the system, including the processing system.
[0232] Figure 20 This is a flowchart of the method.
[0233] Figure 21 It is a schematic block diagram representation of the processing system.
[0234] Figure 22 This is a flowchart of the method.
[0235] Figure 23 This is a schematic representation of modifications to electronic map data and related modifications to the tile catalog.
[0236] Figure 24 It is a schematic representation of tiled blocks.
[0237] Figure 25 This is a flowchart of the method.
[0238] Figure 26 It is a schematic representation of tiles in a tiled map and files used to store electronic map data.
[0239] Figure 27 This is a flowchart of the method.
[0240] Figure 28 This is a flowchart of the method.
[0241] Figure 29 This is a flowchart of the method.
[0242] Figure 30 It is a schematic representation of tiled blocks.
[0243] Figure 31 It is a schematic representation of a system that includes a processing system.
[0244] Figure 32 It is a schematic representation of a system that includes a processing system.
[0245] Figure 33 This is a flowchart of the method.
[0246] Figure 34 This is a flowchart of the method. Detailed Implementation
[0247] Embodiments of the present invention will be described in detail below. While some embodiments will be described in conjunction with specific exemplary map layers, the embodiments are not limited thereto.
[0248] Unless otherwise specified, the features of the embodiments may be combined with each other.
[0249] The techniques disclosed in detail herein can be used in conjunction with electronic map data. The techniques disclosed herein are capable of operating to enable access to electronic map data and / or to execute map data-based functions. In some embodiments, the method and / or processing system use a hierarchical tiled map comprising several tiles of different sizes, wherein the tiled map is arranged in such a way that geographic location is taken into account for storing object data while allowing efficient access to the object data.
[0250] As used in this article, a “tile” refers to multiple tiles grouped together to cover a target area. Adjacent tiles may be adjacent to each other along edges and / or at corners, but do not overlap each other except at edges and / or corners. A tiled tile can be defined such that, although tiles are allowed to have different sizes, the quotient of any pair of edge lengths of any pair of tiles is equal to b. nWhere b is a positive integer greater than one, and n can be a positive integer, a negative integer, or zero, depending on the tile pair for which the quotient is determined. A tiled tile can be specifically defined such that, although tiles are allowed to have different sizes, the quotient of any pair of edge lengths of any pair of tiles equals 2. n , where n can be a positive integer, a negative integer, or zero, depending on the tile pair for which the quotient is determined.
[0251] This method and processing system can operate on tiles ranging from the largest to the smallest tile size. The edge length of the largest tile size at the equator (e.g., the edge length of a square tile shape at the Earth's equator) can be 40 km or greater, 80 km or greater, 160 km or greater, or 320 km or greater. The edge length of the smallest tile size (e.g., the edge length of a square tile shape) can be 600 m or less, 300 m or less, 150 m or less, or 75 m or less. The method and processing system are operable for operation using a tiled map comprising multiple tiles, wherein the multiple tiles have: a maximum edge length of 40 km or greater (e.g., for a square shape) and a minimum edge length of 600 m or less (e.g., for a square shape); a maximum edge length of 80 km or greater (e.g., for a square shape) and a minimum edge length of 300 m or less (e.g., for a square shape); a maximum edge length of 160 km or greater (e.g., for a square shape) and a minimum edge length of 150 m or less (e.g., for a square shape); and a maximum edge length of 320 km or greater (e.g., for a square shape) and a minimum edge length of 75 m or less (e.g., for a square shape). The method and processing system are operable such that the tile size of the multiple tiles varies according to geographical location, while the multiple tiles continuously cover an area, such that any point located within that area is included in one and only one tile. The structure of tiled tiles allows for the specification of a hierarchical tile structure that determines the path from the root to the leaf of the hierarchical structure, thereby determining one or more files to be accessed in response to messages received by the processing system.
[0252] Object data associated with a map object can, but does not need to, be stored solely in the tile corresponding to the object's geographic location. For illustration, a change in an object's geographic coordinates can correspond to a shift across tile boundaries. In this case, the object data can continue to be stored in the file associated with the tile where the object previously resided, with references added to the file corresponding to another tile where the new geographic coordinates are located. As another example, a map object can extend across several tiles. In this case, the entire geometry can be stored in the file corresponding to one of the tiles, thus acting as an anchor point, with references included in the other tiles. Therefore, while this processing system and method utilizes the association between geographic location and files, it is possible and beneficial for the processing system and method to adapt the use of references to other tiles, as in the scenarios mentioned earlier in this paper.
[0253] As used herein, the term "hierarchical tile structure" refers specifically to a structure that may include or be a quadtree or another decision tree structure. A hierarchical tree structure can be configured such that for any object in electronic map data, a bit sequence included in the object's unique object identifier defines a path through the hierarchical tile structure that determines which file(s)(s) to access to obtain the object data for that object.
[0254] The method and processing system are operable such that object data associated with map objects of an electronic map is stored in "multiple files". Each file in the multiple files can be associated with one and only one of the multiple tiles. More than two files can be associated with the same tile; for example, they can be associated with different versions of the electronic map for that corresponding tile.
[0255] As used herein, “object data” refers to data associated with map objects. Object data may include or may be map object definitions. The processing system and method are operable to support different types of map object definitions, such as first type (e.g., for defining nodes of a navigable network), second type (e.g., for defining links of a navigable network), and third type (e.g., for defining information associated with objects of the first or second type or other objects of the third type). Map object definitions of the first type (e.g., “node type”) may define the coordinates (e.g., latitude and longitude, but not limited to) of the corresponding nodes. Map object definitions of the second type (e.g., “path type”) may at least define which(s) nodes are part of a path; it should be noted that a “path” can also be reasonably defined by a combination of attributes of a single node, for example, when a path defines a turning area or a roundabout. Map object definitions of the third type (which may also be referred to as relationships) may define characteristics such as names (e.g., names of points of interest (POIs)) that can be associated with objects of the first, second, or even third type, and therefore can reference objects of any type of the first, second, or third type. Other map object definitions may be used.
[0256] As used herein, "version" or "versioning" refers to providing a corresponding entity for different points in time. Information about a version can be specified as a point in time (e.g., relative to a system time source) and / or a version number. The processing system and method can operate such that versioned electronic map data is stored in multiple files, where different files have different versions (e.g., different points in time when they were last updated and / or different version numbers). Therefore, the processing system and method can operate for updating electronic map data such that a given file used to store object data for a given tile can have a version number and / or a more recent update time different from that of another given file used to store object data for a different given tile. Versioned electronic map data can include not only the latest version but also previous versions. This provides robustness and allows data consistency to be re-established when errors are detected in the latest version.
[0257] As used herein, a “processing system” capable of operating to maintain and / or enable access to electronic map data can be implemented as a distributed system, for example, as a distributed architecture for processing requests for object data and / or requests to modify object data.
[0258] The processing system and method are operable to handle various types of requests. For illustrative purposes, the structure and operation of the processing system and method may be adapted to at least one, several, or all of the following: object data requests based at least on unique object identifiers; queries for object data of objects located within a region enclosed by a closed boundary specified in the request (e.g., a "bounding box" query); and requests for data of all map objects whose members are the objects specified in the request (e.g., a "membership" query).
[0259] As used herein, “output” can include output provided via a data interface. Output can include output to map data consumers.
[0260] As used herein, "map data consumer" refers to any device or system capable of operating to process electronic map data to perform actions. Examples of map data consumers include, but are not limited to, portable communication terminals (such as smartphones), vehicle processing systems, vehicles, navigation devices, and wearable devices. Electronic map data consumers can operate to perform control actions to control, for example, vehicle actuators and / or human-machine interfaces (HMIs).
[0261] As used herein, a "map data providing system" or "map data source" refers to the source of changes to electronic map data. A map data providing system can, but does not need to, be implemented in separate hardware. A map data providing system can be implemented in a distributed architecture.
[0262] As used in this article, "modification" can include or may be any of the following: adding a new map object definition, deleting an existing map object definition, or changing an existing map object definition.
[0263] Figure 1 This is a schematic representation of system 10. System 10 includes a processing system 20, which is operable to perform a method for performing map data-related functions and / or enabling access to electronic map data.
[0264] The processing system 20 includes at least one interface 21, 22, which is operable to receive messages from one or more map data sources 11 and / or one or more map data consumers 15. Message 47 may include a request 47 for modifying electronic map data. Alternatively or additionally, the processing system 20 may be operable to process a request 48 from the map data consumer 15.
[0265] Processing system 20 includes storage system 23. Storage system 23 stores multiple files 24, each file associated with a specific tile among multiple tiles. At any given point in time, the multiple tiles cover an area in a contiguous manner, such that any point within that area lies within a single tile among the multiple tiles. Each file 24 is associated with a single tile among the multiple tiles. Each file 24 stores object data for map objects that are currently within a tile, were previously within a tile, extend into or from a corresponding tile, or were previously extended into or from a corresponding tile. Object data may include object definitions. Object definitions may include object definitions for nodes, pathways, and / or relationships. Pathways or relationships may each include one or more nodes. Electronic map data may include versioned electronic map data, where there are multiple file versions of the same tile. Modifications to object data may result in the generation and storage of new files without overwriting existing files for the same tile.
[0266] Processing system 20 includes memory system 25. Memory system 25 may include or may be random access memory (RAM). Tile catalog 26 is stored in memory system 25. Tile catalog 26 provides information for any tile about the latest version of the file associated with the corresponding tile prior to the generation of tile catalog 26. Since tile catalog provides a list of tiles (at a certain time), it also identifies tiled tiles. As described in detail herein, different versions of tile catalog can be provided to provide a list of tiles at several points in time. Tile catalog 26 may include or may be hash data in memory, such as a hash table in memory. This allows for particularly efficient access. Modifications to electronic map data may result in modifications to tile catalog 26. Tile catalog 26 may be updated whenever electronic map data in multiple files 24 is updated, but this is not necessary. Preferably, tile catalog 26 is updated by at least one processing circuit 30 at configurable intervals, for example, after a configurable time interval and / or after a configurable number of modifications to the electronic map data stored in storage system 23.
[0267] The processing system 20 includes at least one processing circuit 30 operable to process messages 47, 47', 48 to perform at least one map data-related function and / or enable access to electronic map data. The at least one processing circuit 30 may include, but is not limited to, any one or any combination of an integrated circuit, integrated semiconductor circuit, processor, controller, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), and circuits including qubits and / or quantum gates(s). The at least one processing circuit 30 is operable to perform the operations described herein.
[0268] At least one processing circuit 30 is operable to perform request processing 31 to process requests 47, 47' for modifying electronic map data and / or requests 48 for obtaining a portion of the electronic map data or information generated based thereon.
[0269] At least one processing circuit 30 is operable to implement an access controller 32 to control access to electronic map data and multiple files 24. The access controller 32 is operable to determine, in response to requests 47, 47', 48, which file(s) of the multiple files 24 should be accessed. The access controller 32 is operable to determine, at least based on the tile directory 26, which file(s) and their versions should be accessed. The access controller 32 is operable to access at least a first file of the multiple files 24, having a version determined at least based on the version information from the tile directory 26, at least based on version information from the tile directory 26. In response to the access controller 32 determining that the first file includes a reference to at least one second file (which is different from the first file and corresponds to a different tile), the access controller 32 accesses the at least one second file to obtain object data therefrom. As previously explained, the access controller 32 can determine the version of the file to be accessed, at least based on the tile directory 26. Access controller 32 can operate to perform these operations to identify one or more files to be accessed, based at least on the tile directory and requests 47, 47', 48, regardless of whether at least one processing circuit 30 is processing requests 47, 47' to modify electronic map data or requests 48 to obtain electronic map data.
[0270] At least one processing circuit 30 is operable to implement an updater 33. The updater 33 is operable to generate at least one additional file to be stored in a plurality of files 24 in response to requests 47, 47' for modifying electronic map data. The updater 33 is operable to interact with an access controller 32, which determines which files of the plurality of files 24 to read data from to be included in a new file to be generated. The updater 33 may be operable to generate several additional files in response to a request to modify an object, such modification causing the object coordinates to shift across tile boundaries, with the object data stored in a file associated with the tile where the object was originally located before the object coordinates changed, and a reference to the file stored in another file associated with another tile where the object coordinates are now located after the shift across tile boundaries. The updater 33 may also be operable to maintain a record of file version changes, which may be stored in a memory system 25, and / or to update the tile directory 26 in response to detecting that update criteria for the updated tile directory 26 are met. The updater 33 may be operable to interact with an interface controller 36 to issue an output confirming that the electronic map data has been updated.
[0271] At least one processing circuit 30 is operable to implement a reader 34. The reader 34 is operable to retrieve electronic map data from multiple files 24 in response to a request 48 for electronic map data. The reader 34 can be operable to handle various types of requests, such as any one or any combination of the following: a request for object data of an object, wherein a unique object identifier is included in the request; a request for object data of an object located within a closed boundary, wherein the request includes information about the closed boundary; a request for all objects whose members the object is, wherein a unique object identifier is included in the request. The reader 34 can be operable to interact with an access controller 32 to determine which file(s) to access to retrieve the corresponding data. The reader 34 can be operable to interact with an interface controller 36 to cause the generation and output of an output 49. The output 49 may include the data retrieved in response to request 48. At least one processing circuit 30 can be operable to generate and provide the output 49 for transmission to and / or use by the map consumer 15 from which request 48 originated.
[0272] At least one processing circuit 30 is operable to implement a tile controller 35. The tile controller 35 is operable to control changes to be made to the tiled tiles, thereby triggering an updater 33 to modify multiple files 24 based on changes determined for the tiled tiles. The tile controller 35 can be operable to determine whether tile splitting and / or tile merging is necessary, based at least on threshold criteria such as a threshold for file size and / or a threshold for the number of objects to be stored per tile. In response to tile splitting and / or tile merging, multiple files 24 are updated based on the modified tiled tiles. The tile catalog is also updated. As will be explained in more detail below, the tiled tiles are thus maintained in such a way that they have a hierarchical tile structure that ensures that each file not associated with the minimum tile size supported by the processing system 20 conforms to the threshold criteria. Tiled tiles can be further maintained in such a way that the hierarchical tile structure ensures that each tile is the largest tile in the quadtree structure, while ensuring that each file in multiple files that is not associated with the minimum tile size supported by the processing system 20 meets the threshold criteria.
[0273] At least one processing circuit 30 is operable to implement an interface controller 36. The interface controller 36 is operable to control at least one interface 21, 22 to provide an output 49, for example, in response to a request 48 for electronic map data.
[0274] Figure 2 , Figure 3 , Figure 4 and Figure 5Schematic representations of the tiles within a plurality of tiles forming a tiled tile and the files within a plurality of files 24 are shown respectively. (See reference...) Figure 2 , Figure 3 , Figure 4 and Figure 5 The operation of processing system 20 will be explained in more detail. It should be understood that the number of tiled tiles and / or files is merely exemplary, and the embodiments are not limited thereto. Typically, the hierarchical tile structure is established during the operation of processing system 20 and modified as needed to ensure that the files storing electronic map data in multiple files 24 meet threshold criteria.
[0275] The processing system 20 is operable to determine a hierarchical tile structure such that there are tiled tiles 60 with continuous coverage of region 69. Each of the plurality of tiles 61, 62, 63, 64, 65, 66, 67, and 68 is associated with a region within region 69, such that any point within region 69 is included in a single tile within the tiles of the tiled tile. The tile size (which may be determined by, for example, the edge length of the tile, wherein the shape of the tile may optionally be square) may vary throughout the tiled tile. For illustration, the edge lengths of tiles 61 and 62 are half the edge length of tile 68. The edge lengths of tiles 63, 64, 65, and 66 are each half the edge lengths of tiles 61, 62, and 67, and one-quarter the edge length of tile 68.
[0276] Multiple files 24 include a set 71 of first files, each associated with a tile 61. Different first files in set 71 correspond to different points in time, i.e., different versions of the electronic map data that have changed over time, with the latest first file 71' corresponding to the latest revision. Multiple files 24 also include another set 72 of files, each associated with a tile 62. Different files in set 72 correspond to different points in time, i.e., different versions of the electronic map data that have changed over time, with the latest file 72' corresponding to the latest revision. Similarly, multiple files 24 may include a set 73 of files associated with another tile 63, another set 74 of files associated with another tile 64, yet another set 77 of files associated with yet another tile 67, and yet another set 78 of files associated with yet another tile 68. The latest file in each set is indicated by an apostrophe, where files 73', 74', 77', and 78' are the latest files in their respective sets 73, 74, 77, and 78.
[0277] The tiled tiles 60, defined as multiple tiles 61, 62, 63, 64, 65, 66, 67, and 68, are determined in such a way that for any tile whose size is larger than the minimum tile size supported by the processing system 20, each of the multiple files 24 associated with any such tile meets the threshold criteria. Therefore, when a map object is modified (e.g., added, changed, or deleted), the tiled tiles 60 may need to be dynamically adjusted. In other embodiments, the tiled tiles 60 do not need to be adjusted during operation of the processing system 20, thus accepting that at some point during operation of the processing system 20, some files may no longer meet the threshold criteria. For tiles corresponding to the minimum tile size supported by the processing system 20, associated files do not need to meet the threshold criteria. For example, by relaxing the threshold criteria for the minimum tile size, a fixed-length bit sequence as part of a new neck object identifier can be used to uniquely identify the tile for which associated files are accessed to obtain object data.
[0278] No tile in the tiled tiles is required to have the minimum tile size supported by processing system 20. The minimum tile size is typically determined by the length of the bit sequence used to provide a unique identifier for a tile, at least based on a hierarchical tile structure, which is reached if a hierarchical tile structure is used. However, even when all tiles are larger than the minimum tile size supported by processing system 20, a subset of bits in the bit sequence still provides a unique identifier for the tile. Therefore, all files in the multiple files 24 meet the threshold criterion when the tile size of all tiles is greater than the minimum tile size supported by processing system 20 (which in reality typically supports, for example, more than ten hierarchical tile levels). It should be noted that the minimum tile size supported by processing system 20 and / or the minimum possible tile size in a hierarchical tile structure can be smaller than any tile in the tiled tiles.
[0279] As a result of the threshold criteria, the tile size may vary depending on the geographic location within region 69. For illustration, the region occupied by tiles 63, 64, 65, and 66 may require a greater number of area-normalized map objects and / or more storage space compared to the regions occupied by tiles 61, 62, 67, and 68 (where the tiles may be larger and none of the files in the associated sets 71, 72, 77, and 78 violate the threshold criteria).
[0280] Changes in the number of map objects and / or storage requirements may necessitate tile splitting during system operation. (This is a reference.) Figure 2 and Figure 3 A diagram is provided.
[0281] Considering that adding map objects to the area covered by tile 67 would cause the update of the associated file 77' to violate a threshold criterion, the processing system divides tile 67 into an integer number of smaller tiles 67a, 67b, 67c, and 67d with the same size and offset from each other, so as to continuously cover the area previously covered by tile 67. Figure 3 Based on the tile segmentation, sets of files 77a and 77b are created, each set of files being associated with a related tile in the smaller tiles 67a, 67b, 67c, and 67d. The set of files 77 associated with the larger tile 67 is maintained in file set 24 to provide access to historical electronic map data and / or allow the processing system 20 to revert to previous versions of multiple files in the event of a detected referencing and / or semantic integrity issue.
[0282] like Figure 2 and Figure 3 As illustrated, the number of file sets associated with different tiles in multiple tiles within tiled tile 60 can vary. For illustration, the number of different files included in multiple files of one tile (e.g., tile 61) can differ from the number of different files included in multiple files of another tile (e.g., tiles 62, 63, 64, 68). Therefore, the version number of the latest file may vary from tile to tile. For illustration, the latest file 71' in file set 71 associated with a tile (e.g., tile 61) can have a different version number than the latest file 72' in another file set 72 associated with another tile (e.g., tile 62).
[0283] Files included in multiple files are associated with tiles and therefore with different regions. However, while files associated with tiles can and typically will store object data for objects having geographic coordinates located within the region of the associated tile, object data can also be stored in different tiles. This might be the case, for example, if an object was previously located within a tile and a change in the object's coordinates causes the object to shift across tile boundaries. In this case, the object data can be retained in a file associated with the tile where the object originally resided, where another file associated with a different tile where the object is located after the coordinate shift includes a reference to the file associated with the tile where the object originally resided. Thus, multiple files 24 can include one or more files containing references to another file associated with another tile.
[0284] Figure 4The illustration shows a first file 91 associated with a first tile 81. The first file 91 stores object data 93 of objects located within the first tile 81 (i.e., whose geographic coordinates are located within the first tile 81). For illustration, nodes 82, 83, 84 and pathways 86, 87, 88, as well as other objects (such as traffic signs or POIs 89), may each have geographic coordinates located within the first tile, with the corresponding object data 93 stored in the first file 91. However, for another object 85 whose geographic coordinates are located within the first tile 81, the first file 91 includes a reference 94 to the object data 95 included in the second file 92 associated with the second tile 82. The second tile 82 may, but does not need to, be adjacent to the first tile 81. This may happen, for example, if node 85 was initially located within the second tile 82, and a coordinate shift causes node 85 to move across tile boundaries into the first tile 81.
[0285] Therefore, in order to provide efficient access to versioned electronic map data by using bit sequences that specify paths through quadtrees (as referenced) Figure 5 and Figure 6 (As described in more detail), the file associated with the tile containing the object's current geographic coordinates does not need to store the object's object definition. This file may include a reference to another file, which is useful when retrieving object data. Similarly, a file (such as file 92) may store object data, including an object definition that includes the geographic coordinates outside the tile (such as tile 82) associated with file 92.
[0286] This configuration of multiple tiles and / or multiple files offers various advantages. For illustration, it provides efficient access to various types of requests, such as queries by object identifiers, queries by region that can specify the closed boundaries of a region, and / or membership queries that return data about all objects that are members of the map object specified in the corresponding query.
[0287] Each object in electronic map data has a unique object identifier. This unique object identifier includes a bit sequence that determines the path through the hierarchical tile structure to identify the tile that needs to access its associated file in response to a message specifying the unique object identifier. This will be explained further below.
[0288] Figure 5A schematic representation of a unique object identifier 100 for an electronic map object is shown. The unique object identifier 100 includes a bit sequence 101 configured by the processing system to identify a path through a hierarchical tile structure to be followed to identify a tile whose associated file stores object data. The bit sequence 101 is configured by the processing system to identify a path through a hierarchical tile structure, which may be represented by or stored in a tile catalog. The length of the bit sequence 101 may depend on the largest tile size among the minimum tile sizes supported by the processing system 20. As previously explained, tiled tiles are not required to have any tiles that are actually as small as the minimum tile size supported by the processing system 20. Nevertheless, the length of the bit sequence 101 is sufficient to fully identify a tile storing object data or a reference to that object, even if multiple tiles include tiles as small as the minimum tile size supported by the processing system 20. For tiles larger than the minimum tile size supported by processing system 20, bit sequence 101 includes a first set 104 specifying a path through a quadtree (or other hierarchical tile structure) up to the actual tile size, while a second set 105 specifies a continuation of the access path through the hierarchical tile structure (e.g., a quadtree) if and only if the tile size will be reduced (e.g., in a tile partitioning operation caused by an increase in the number of objects or storage space) to the minimum tile size supported by processing system.
[0289] Referring to tile 60, the unique object identifier 100 includes a bit sequence 101, which in turn includes a first set 104. The first set 104 uniquely identifies tile 63, which has the minimum tile size currently used in tile 60, but whose edge length is still greater than the minimum edge length 103 of the minimum tile size supported by the processing system. Therefore, the first set 104 is sufficient to determine the tile of tile 60 associated with the file to be accessed. The second set 105 provides the additional information needed for tiled tiles with more granular (i.e., smaller) tiles (such as tile 63b). The second set 105 is not required to determine the tile of tile 60 associated with the file to be accessed. However, since tile 60 can be modified, the second set 105 has the potential to uniquely determine the tile associated with the file to be accessed and can be operated to uniquely identify the tile, even if the tile has the minimum tile size supported by the processing system 20.
[0290] Therefore, the methods and processing systems disclosed herein are operable such that the bit sequence 101 included in the unique object identifier can be used to access multiple files 24 for efficient electronic map data access, while adapting to multiple tile changes that may occur during the operation of the processing system 20 (e.g., through tile splitting and / or tile merging), adapting to various access operations, and adapting to...
[0291] Figure 6 This is a schematic representation of a hierarchical tile structure 110 configured as a quadtree 110. The hierarchical tile structure 110 can be defined by the tile catalog 26 (see below for reference). Figure 8 (Further illustration). Any node in the hierarchical tile structure 110 includes zero or four child nodes. The root node 114 represents the total area covered by a tiled structure comprising multiple tiles. If present, the four child nodes of any node represent four quadrants located and arranged within the tiles associated with the respective node. Bit sequence 101 specifies for any node having child nodes which path through the hierarchical tile structure (e.g., a quadtree) at least one processing circuit 30 needs to follow to identify the tile associated with the file to be accessed. For illustration, for a map object, bit sequence 101 defines a path 111 through the hierarchical tile structure 110 that terminates at a leaf node representing a tile among multiple tiles. The processing system 20 is operable to access object data of the object having the corresponding bit sequence 101 for accessing the file associated with that tile. For different map objects, different bit sequences 101 define different paths 112 through the hierarchical tile structure 110 that terminate at different leaf nodes representing different tiles among multiple tiles. Processing system 20 is capable of operating to access object data of different objects with correspondingly different bit sequences 101 by accessing different files associated with the different tiles. Tile splitting and / or tile merging causes changes to the hierarchical tile structure 110. For illustration, as schematically illustrated by additional child node 113, tile splitting of a tile associated with a previous leaf node of the hierarchical tile structure 110 results in the generation of four new leaf nodes, each of which is a child node of the previous leaf node. Therefore, the depth 115 of the hierarchical tile structure (which determines the number of nodes to be traversed to the leaf nodes) can vary by region and / or over time.
[0292] Typically, the bit sequence 101 in the unique object identifier 100 is configured by the processing system to determine the path through a quadtree or another hierarchical tile structure to be followed in order to efficiently identify the tile associated with the file to be accessed in the tile directory. The tile directory 26, combined with the bit sequence 101, determines at which level in the hierarchical tile structure 110 a tile exists to access the file (first file) for the access operation. The processing system and method are operable such that even after dynamically changing the tiled tiles (e.g., by performing tile merging and / or tile splitting operations), the (then updated) tile directory, combined with the same bit sequence 101, can determine at which level in the hierarchical tile structure 110 a newer tile exists to access the updated file (first file) for the access operation.
[0293] Typically, tiles can (and usually) have different file versions. The tile catalog 26 provides information about these different versions and is accessed by at least one processing circuit 30 to determine which of several files of tiles identified at least based on the hierarchical tile structure 110 will be accessed.
[0294] Figure 7 The illustration shows the operations of the processing system 20 in response to messages 124, 125, and 126, which respectively include requests to modify electronic map data. The modifications may include any one or any combination of changing existing map objects, adding new map objects, and / or deleting previously existing map objects.
[0295] The processing system 20 is operable to perform an update process 121 in response to message 124, thereby generating an updated file 72" from file 72' in a plurality of files, the updated file 72" being generated by modifying file 72' at least based on message 124. The update process 121 may optionally include modifying a plurality of tiles (e.g., by tile merging and / or tile splitting) and / or generating an updated tile catalog from tile catalog 26.
[0296] The processing system 20 is operable to perform a further update process 122 in response to message 125, thereby generating an updated additional file 74" from another file 74' among multiple files, the updated additional file 74" being generated by modifying the other file 74' at least based on message 125. The further update process 122 may optionally include further modification of multiple tiles (e.g., by tile merging and / or tile splitting) and / or generating a further updated tile catalog from the tile catalog 26.
[0297] The processing system 20 is operable to perform a further update process 123 in response to message 126, thereby generating an updated additional file 73" from a plurality of files, the updated additional file 73" being generated by modifying the additional file 73' at least based on message 126. The further update process 123 may optionally include further modification of the plurality of tiles (e.g., by tile merging and / or tile splitting) and / or generating a further updated tile catalog from the tile catalog 26.
[0298] The processing system 20 is capable of processing messages 124, 125, and 126 to modify electronic map data, even when messages 124, 125, and 126 are received at irregular intervals. For illustration, the time interval 127 between the initiation of update process 121 and the initiation of a further update process 122 immediately following update process 121 may differ from the additional time interval 128 measured between the initiation of further update process 122 and the initiation of an even further update process 123 immediately following further update process 122.
[0299] Figure 8 A schematic representation of data included in an exemplary tile catalog is shown, wherein tile catalog data 131 represents data used for... Figure 2 The tile catalog (part of) the tiled tiles, and additional tile catalog data 135 indicates the use of Figure 3 A separate tile catalog (part of) the tiled tiles.
[0300] Figure 8 The leftmost column of the table represents the columns used to represent... Figure 2 and Figure 3 The accompanying figure labels are provided for ease of reference and understanding. Figure 8 These leftmost columns are provided in the document. These leftmost columns are not part of the tile catalogue and are not included in the tile catalogue, but are only used to aid in understanding this disclosure.
[0301] Tile catalog data 131 and additional tile catalog data 135 each include unique tile identifiers 132 and 136, each tile identifier being unique for one of the tiles in the corresponding tile catalog. Each unique tile identifier 132, 136 may have (effective) bits that depend on and / or reflect the size (e.g., edge length) of the tile to which the unique tile identifier is applied. Dynamic changes to tile catalogs via tile merging and / or tile splitting change the (effective) bits of the unique tile identifier. For illustration, tile splitting increases the (effective) bits of the unique tile identifier, as shown for tiles 67a, 67b, 67c, and 67d in the additional tile catalog 135. The (effective) bits of the unique tile identifiers in the corresponding tile catalogs are configured by the processing system to combine with the bit sequence 101 of the object identifier to determine the file (e.g., the first file) to be accessed in the access operation.
[0302] Block catalog data 131 and additional block catalog data 135 include version data 133 and 137, respectively. The version data specifies the version of the corresponding block and / or the file associated with the block for each block. The versions may differ for different blocks within the same tiled block.
[0303] Figure 9 This is a flowchart of a method 140 for performing map data-related functions and / or accessing electronic map data. Method 140 can be executed automatically by the processing system 20.
[0304] At point 141, processing system 20 receives a request. The request may include a request for obtaining electronic map data and / or a request for modifying electronic map data. The request may have any of the various supported request types, such as a request for object data of an object specified by a unique object identifier, a request for all objects located within an area enclosed by a closed boundary defined within the request, and / or a request for information about all objects whose members are the object specified in the request.
[0305] At point 142, the processing system obtains file information and version information for the file to be accessed. Obtaining tile information may include using tile directory 26 to identify tiles and associated files in a quadtree. Obtaining version information may include using tile directory 26 to obtain version information. To obtain the correct file version information, processing system 20 may identify tiles associated with one or more files to be accessed. This may include using bit sequence 101 and unique object identifier 100 in conjunction with the tile directory to determine the tiles, and then using tile directory 26 to obtain version information. Alternatively or additionally, processing system 20 may identify tiles overlapping with the region specified in the request, at least based on the closed boundary of the region (optionally also in conjunction with tile directory 26 and the hierarchical tile structure defined therefrom). Processing system 20 may then use tile directory 26 to obtain version information.
[0306] At point 143, at least one of the multiple files 24 is accessed. The access operation at point 143 may be based at least on version information included in the tile catalog 26 and at least on one or more tiles identified by the request and the hierarchical tile structure in which the tiled tiles are organized.
[0307] At point 144, the processing system 20 performs an action or enables the execution of an action. The action may include modifying electronic map data based at least on a received request, including generating at least one new file and storing at least one new file in addition to previously existing files. Alternatively or additionally, the action may include generating output and controlling at least one data interface to transmit the output as a response to the request.
[0308] Figure 10 This is a flowchart of a method 145 for performing map data-related functions and / or accessing electronic map data. Method 145 can be executed automatically by the processing system 20.
[0309] Procedure blocks 141 and 142 of method 145 can be used as previously described with Figure 9Method 140 is implemented jointly.
[0310] At process block 146, processing system 20 accesses a first file among multiple files 24. Accessing the first file may include determining a first tile associated with the first file to be accessed, based at least on a hierarchical tile structure. Accessing the first file may further include determining version information based at least on a tile directory and using that version information to identify the first file to be accessed.
[0311] At process block 147, the processing system 20 determines whether the first file includes a reference to a second file associated with a second block that is different from the first block.
[0312] At process block 148, in response to determining that the first file includes a reference to the second file, the processing system 20 retrieves object data from the second file.
[0313] At process block 149, in response to determining that the first file does not contain a reference to the second file associated with the corresponding object, the processing system 20 obtains the object data from the first file.
[0314] At process block 144, an action is performed or enabled based at least on the acquired object data. The object data may include at least coordinates or other information related to at least one electronic map object. Process block 144 may be as previously described... Figure 9 Method 140 is executed in conjunction.
[0315] Figure 11 , Figure 12 and Figure 13 An illustrative tile 150 comprising multiple tiles 151, 152, 153, and 154 is shown, and the operation of the processing system 20 will be explained in more detail with reference to this tile. The electronic map data includes object data, which includes object definitions for several map objects, such as a first node 161, another node 162, another node 163, and / or map objects including nodes, such as a pathway 164 defined according to its constituent nodes 161 and 162. The object definition of the first node 161, including its geographic coordinates, can be stored in a first file associated with the first tile 151. The object definition of the second node 162, including its geographic coordinates, can be stored in a second file associated with the second tile 152. The geometry of the pathway 164 can be stored in one of the files associated with tiles 151 and 152, such as the first file associated with the first tile 151. Coordinate shift 165 ( Figure 12The geographic coordinates of the first node 161 can be shifted to a new location, where the shifted first node 161 is located in a second tile 152 different from the first tile 151. Given the bit sequence 101 included in the unique object identifier 100, the updated geographic coordinates of the first node 161' are stored in an updated first file associated with the first tile 151. An updated second file associated with the second tile 152 is generated, such that it includes a reference to the first tile 151. Similarly, the final geometry change of the pathway with the modified geometry 164' can be stored in the updated first file associated with the first tile, where the reference is included in the updated second file associated with the second tile 152. The tile catalog 26 can be updated accordingly.
[0316] When pathways 164 and 164' include all three nodes 161, 162, and 163, a reference to the first tile 151 can also be included in a third file associated with the third tile 153. This facilitates efficient processing of requests by region, such as requests specifying closed boundaries surrounding regions of interest.
[0317] When node 163 is deleted ( Figure 13 This updates the geometry of pathways 164 and 164' to the modified pathway geometry 164' stored in a further updated file associated with the first tile 151. Taking this modification into account, the pathway geometry can be updated in the first file associated with the first tile 151. Node 163 and its associated object data can be deleted from the third file associated with the third tile 153. The pathway definition in the further updated first file is changed by removing node 163 from the pathway that now has pathway geometry 164'. The tile catalog 26 can be updated accordingly.
[0318] Figure 14 This is a flowchart of a method 170 for performing map data-related functions and / or accessing electronic map data. Method 170 can be executed automatically by the processing system 20.
[0319] Procedure blocks 141, 142, and 143 of method 170 can be used as previously described. Figure 9 Method 140 is implemented in conjunction with other methods. A request received at 141 may include a request to modify electronic map data.
[0320] At process frame 171, processing system 20 determines that changes need to be made to the electronic map data. These changes are determined, at least based on a received request and in conjunction with multiple files in the hierarchical tile structure. Determining the changes to be made may include determining whether the geographic coordinates of map objects need to be shifted across tile boundaries. Alternatively or additionally, determining the changes to be made may include determining whether to perform tile merging or tile splitting.
[0321] At process frame 172, processing system 20 generates a new first file or several new first files from an existing first file to reflect changes to the electronic map data as specified in the request received at 141. Generating a new first file may include generating a new first file such that it includes updated geographic coordinates of map objects. Generating a new first file may alternatively or additionally include generating a new first file such that it includes at least one map object (such as a node, pathway, or relationship) added to the electronic map data based on the request received at 141. Generating a new first file may alternatively or additionally include generating a new first file such that it includes, for example, updated nodes of the map objects on which it is based or associated.
[0322] At process block 173, processing system 20 may optionally generate one or more updated second files. The one or more updated second files may include references to the first file, particularly when changes cause object coordinates to shift across tile boundaries.
[0323] At process box 174, update the version information. This may include updating the tile catalog and / or generating records indicating the new version generated at process boxes 172 and 173.
[0324] Modifications to electronic map data can further include modifications to tiled tiles, including tile merging and / or tile splitting. This will refer to... Figure 15 and Figure 16 To explain in more detail.
[0325] Figure 15 An exemplary tile 150 is shown. (Compared to...) Figure 11 Compared to the electronic map data illustrated, adding map object 165 triggers tile segmentation, where tile 152 is segmented into multiple smaller tiles, as shown for smaller tiles. In response to the processing system determining that adding map object 165 would cause a second file associated with the (larger) second tile 152 to no longer meet a threshold criterion, tile segmentation is selectively initiated. The threshold criterion may include a threshold criterion based on the number of objects and / or a file size threshold criterion. Therefore, the processing system can dynamically accept tiled tiles 150 and correspondingly accept a hierarchical tile structure representing the tiled tiles 150 to ensure that at least all files associated with tiles larger than the minimum tile size supported by the processing system 20 meet the threshold criterion.
[0326] Figure 16The illustration depicts a threshold comparison, based at least on which tile splitting or merging is initiated during the operation of processing system 20. The quantities used in the threshold comparison are shown along axis 180. Axis 180 may represent the number of map objects in a tile and / or file size. In response to determining that modifications to electronic map data will cause a tile or file to fail to meet threshold criteria (as schematically illustrated by symbol 183), modifications to the tiled tiles and the hierarchical tile structure representing the tiled tiles are triggered, such that the modified corresponding tiles meet the threshold criteria (as schematically illustrated by symbol 182). For illustration, if adding map objects to the area covered by a tile would result in the number of map objects reaching a value 183 greater than threshold 181, tile splitting is performed, such that any of the smaller tiles into which the original tile is split has a number of 182 map objects, which may vary from smaller tiles but is less than the threshold 181 for each smaller tile. Alternatively or additionally, if adding or modifying map objects in the area covered by a tile would result in a file associated with that tile having a file size 183 greater than the file size threshold 181, then tile splitting is performed such that a file associated with any of the smaller tiles into which the original tile is split has a file size 182, which may vary from smaller tile to smaller tile, but is less than the threshold 181 for each smaller tile.
[0327] Although tile segmentation has been explained, tile merging can be performed in response to the detection that combining several smaller tiles into a larger tile would still meet a threshold criterion. For example, this might happen when deleting map objects.
[0328] At least one bit sequence 101 of the object identifier eliminates the need to change the object identifier in response to dynamic changes in the tiled tiles. Therefore, even after the processing system performs tile merging and / or tile splitting to modify the tiled tiles, at least one bit sequence 101 of the object identifier 100 continues to function. This is achieved through the hierarchical structure of the tiled tiles. Tile identifier configuration ( Figure 8 The bit sequence 101 of the object identifier 100 enables its functionality even after the processing system performs tile merging and / or tile splitting to modify the tiled tiles.
[0329] Figure 17This is a schematic block diagram representation of at least one processing circuit 30 of the processing system 20. The access controller 32 may include both a tile directory access controller 191 capable of operating to access the tile directory 26 to obtain version information and a file access controller 192 capable of operating to access desired files among multiple files 24. The access controller 192 may operate to determine the files(s) to be accessed based at least on the version information in the tile directory 26 and a hierarchical tile structure that determines which tiles(s)(s) the files(s)(s) to be accessed are associated with.
[0330] Updater 33 may include object data updater 193, which is operable to update object data by causing the generation of (multiple) new files, and optionally also by generating (multiple) files that include references to (multiple) other files. Updater 33 may include tile catalog updater 194. Tile catalog updater 194 does not need to update the tile catalog after each map data revision, but can retain an update record, wherein tile catalog updater 194 triggers tile catalog updates in response to configurable triggering criteria (such as configurable timer expiration and / or at least a revision count threshold based on the number of revisions compared to it).
[0331] The tile controller 35 may include a tile splitter 195 operable to perform tile splitting. The tile splitter 195 may be operable to initiate tile splitting in response to determining that a modification to the electronic map data necessitates splitting at least one tile into an integer number of smaller tiles to ensure that the associated files meet threshold criteria. The tile controller 35 may alternatively or additionally include a tile merger 196 operable to perform tile merging. The tile merger 196 may be operable to initiate tile merging in response to determining that a modification to the electronic map data allows merging of several tiles into a larger tile associated with the parent node of several tiles in a hierarchical tile structure, wherein the larger tile is a tile that meets the threshold criteria. Thus, the number of tiles can be kept to a minimum while ensuring that all tiles except those of the minimum tile size supported by the processing system 20 meet the threshold criteria.
[0332] Interface controller 36 may include output generation controller 197, which is operable to control at least one data interface to provide output. Output generation controller 197 may be operable to provide output in response to a request to modify electronic map data, wherein the output confirms that the modification has been implemented. Alternatively or additionally, output generation controller 197 may be operable to provide output in response to a request for electronic map data, wherein the output includes the requested electronic map data.
[0333] Figure 18The signaling flow in system 200 is illustrated. This system includes a processing system 20 and one or more map data providing systems 11, 12. Each of the map data providing systems 11, 12 can be configured to be associated with a different map layer. The processing system 20 is operable to receive a request 201 for modifying electronic map data originating from at least one of the map data providing systems 11, 12. In response to request 201, the processing system 20 is operable to perform tile identification 202, which is associated with files in a plurality of files 24 and accessed in response to request 201. Tile identification 202 can be performed at least based on a hierarchical tile structure representing tiled tiles, as reflected in a tile catalog. The processing system 20 can further operate to determine, at least based on the tile catalog 26, which file version of the identified tile is to be accessed. The processing system 20 can operate to perform verification 203 to determine whether the modification request requires tile splitting or tile merging operations. Verification 203 may include determining whether the requested modification would result in a violation of a threshold criterion, and initiating a modification to the tiled tiles in response to such determination. Processing system 20 may be operable to perform file generation 204 to generate one or more additional files stored in addition to previously existing files, each newly generated file being associated with only one of the tiles in the tiled tiles. Processing system 20 may be further operable to update the tile catalog and / or combine the tile catalog to record updates. Processing system 20 is operable to generate and provide output 205 to confirm that the request for modification has been implemented. Processing system 20 is operable to enable access 206 to the electronic map data modified in response to the request. Processing system 20 may be operable to implement functions related to the map data, such as driver assistance functions, advanced driver assistance functions, autonomous driving functions, or other vehicle control operations, but is not limited thereto.
[0334] Figure 19The signaling flow in system 210 is illustrated. This system includes a processing system 20 and one or more map data consumers 15. The processing system 20 is operable to receive requests 211 from map data consumers 15. Requests can be selected from any of a variety of request types, such as requests for object data of a specific object (which may be specified by its unique object identifier 100); requests for object data of objects located within an area specified by a closed boundary included in the request; or requests for information about all objects that are members of an object (which may be specified by its unique object identifier 100). The processing system 20 is operable to perform an access operation 212, which includes identifying tiles associated with one or more files to be accessed. Furthermore, the processing system 20 can determine the version of the file to be accessed based at least on a tile catalog 26. The processing system 20 is operable to provide output 213 based at least on the acquired electronic map data, according to request 211. At least one map data consumer 15 is operable to perform map data-related functions based at least on output 213. Map data-related functions may include, but are not limited to, driver assistance functions, advanced driver assistance functions, autonomous driving functions, or other vehicle control operations.
[0335] Figure 20 This is a flowchart of a method 220 for performing map data-related functions and / or accessing electronic map data. Method 220 can be executed automatically by the processing system 20.
[0336] At process block 221, the processing system 20 receives a request to modify electronic map data.
[0337] At process block 222, processing system 20 determines which file(s) of the plurality of files 24 to access. This may include, at least based on the request, determining the tiles associated with the file to be accessed. This may further include, at least based on the tiles and tile directory 26, determining the version of the file to be accessed.
[0338] At process frame 223, processing system 20 determines whether to modify the tiled tiles. Determining whether to modify the tiled tiles may include processing system 20 determining whether the generated new file reflects the modifications to the electronic map data specified in the request received at process frame 221, but still meets the threshold criteria. The threshold criteria may be based at least on the number of map objects in the tiles or profiles and / or at least on the file size. Determining whether to modify the tiled tiles may further include processing system 20 determining whether the modifications to the electronic map data specified in the request received at process frame 221 allow for the merging of several tiles into their parent tile (based on a hierarchical tile structure, such as a court tree structure), while ensuring that the associated file meets the threshold criteria.
[0339] At process block 224, tile merging and / or tile splitting are performed in response to the determination that a tile needs to be modified. Tile merging and / or tile splitting are performed based on a hierarchical tile structure, for example, by splitting the tile into smaller tiles corresponding to the four quadrants of the original tile according to a quadtree structure, and / or by merging the smaller tiles into their parent tile of the quadtree structure. Process block 224 is selectively executed only when it is determined that a tile needs to be modified.
[0340] At process block 225, processing system 20 generates updated files without deleting previously existing files. Optionally, processing system 20 may also generate an updated tile catalog. As an alternative to generating an updated tile catalog, processing system 20 may maintain a record of the generated new versions for later use in updating the tile catalog.
[0341] At process block 226, the processing system controls at least one data interface to modify map data so that it can be used by one or more map data consumers.
[0342] Figure 21 This is a schematic block diagram 230 used to further explain the operations of the processing system 20 on the tile catalog and its updates. In addition to the tile catalog 26, the processing system 20 may also store one or more historical tile catalogs 236, 236'. One or more historical tile catalogs correspond to revisions of the electronic map data earlier than the latest revision. Maintaining one or more historical tile catalogs facilitates access to previous versions of the electronic map data. Maintaining one or more historical tile catalogs also makes it easier for the processing system 20 to revert to previous versions of the electronic map data in response to the detection of semantic and / or referential integrity issues.
[0343] Processing system 20 can further maintain transaction data 231, which indicates revisions to the electronic map data made after the generation of the latest tile catalog 26, specifically the generation of new files to be included in multiple files 24. Updates to the tile catalog 26 can be generated based on configurable criteria, such as after a configurable time period and / or after multiple configurable revisions. The update of the tile catalog 26 can then be performed at least based on transaction data 231. Transaction data 231 can also be used to determine which file version to access.
[0344] Figure 22 This is a flowchart of a method 240 for performing map data-related functions and / or accessing electronic map data. Method 240 can be executed automatically by processing system 20. Method 240 can be used in combination with any other methods disclosed herein, wherein method 240 focuses on tile catalog-related aspects of the process.
[0345] At process frame 241, the processing system 20 receives a request to modify electronic map data.
[0346] At process block 242, processing system 20 processes the request received at process block 241 and updates multiple files. Additionally, processing system 20 updates transaction data 231. Process block 240 may include, for example, references... Figure 20 Method 220 is explained in detail.
[0347] At process block 243, processing system 20 determines whether a first criterion is met. The first criterion can be a first configurable criterion. The first criterion can be a configurable first criterion based on time or revision count.
[0348] At process block 244, in response to determining that the first criterion is met, processing system 20 generates an updated tile catalog. Generating an updated tile catalog may include generating an updated tile catalog and maintaining the updated tile catalog in memory in addition to the historical tile catalog. The updated tile catalog may be generated based at least on the latest tile catalog prior to generating process block 244, combined with transaction data 231 available when generating the updated tile catalog. This process can then proceed at process block 245.
[0349] At process block 245, processing system 20 determines whether a second criterion is met. The second criterion can be a second configurable criterion. The second criterion can be a configurable time-based or revision-count-based second criterion.
[0350] At process block 246, in response to determining that the second criterion is met, processing system 20 deletes at least one, and optionally several, historical tile catalogs. Processing system 20 may delete the oldest tile catalogs and / or subsets within a subset to ensure historical records remain available. Thus, historical tile catalogs remain available over a longer time span, although the temporal resolution is reduced due to the deletion of subsets of historical tile catalogs.
[0351] Figure 23 The diagram schematically illustrates the operation of updating the tile catalog along the time axis 250 by the processing system 20 according to time. Solid circles indicate the generation of updated tile catalogs 251, 252. Hollow circles indicate the storage of revised data 253 in transaction data 231. The generation of updated tile catalogs 252 can be triggered based on time-based criteria (such as the expiration of a time period 254, which can be configured, for example, via control inputs through one or more interfaces 21, 22). Previously generated tile catalogs can be temporarily maintained.
[0352] The processing system 20 and / or the method utilizes tiled tiles with a hierarchical tile structure and multiple associated files, which facilitates and supports the processing of various types of electronic map data requests. For illustration, it can efficiently process electronic map data requests by region and / or membership requests for all map objects whose members a specified object is. This will refer to... Figure 24 , Figure 25 , Figure 26 and Figure 27 To describe in more detail.
[0353] Figure 24 This is a schematic representation of tiled tiles including first tile 151, second tile 152, third tile 153, and fourth tile 154. The electronic map data includes nodes 265, 266, 267 and pathways 261, 263, wherein the geometry of the pathways is stored in the second tile 152 and third tile 153 where the nodes 262, 264 of the corresponding pathways 261, 263 are located. Since pathway 261 overlaps not only with second tile 152 but also with first tile 151 and fourth tile 154, files associated with first tile 151 and fourth tile 154 include references to second tile 152 (or its associated files). Similarly, since pathway 263 overlaps not only with third tile but also with fourth tile 154, files associated with fourth tile 154 include references to second tile 152 (or its associated files).
[0354] Processing system 20 is capable of processing requests for a specified closed boundary 269, which may be rectangular. In response to such a request, processing system 20 can determine all map objects overlapping the area enclosed by closed boundary 269. A file system that includes references to other files associated with different tiles allows this operation to be performed efficiently. More specifically, processing system 20 can determine that pathways 261, 263 extend into first tile 150 and / or fourth tile 154, based at least on files associated with first tile 151 and fourth tile 154 overlapping the rectangular closed boundary 269. Therefore, through referencing, processing system 20 can efficiently determine object data for all map objects overlapping the area specified by closed boundary 269.
[0355] Figure 25 This is a flowchart of a method 270 for performing map data-related functions and / or accessing electronic map data. Method 270 can be executed automatically by the processing system 20.
[0356] At process frame 271, processing system 20 receives a request for electronic map data. The request includes data specifying closed boundaries. The request may specify rectangular boundaries and may be a request that triggers processing system 20 to return map objects that overlap with the rectangular area defined by the rectangular boundaries.
[0357] At process frame 272, the processing system 20 identifies a plurality of tiles that overlap with the region enclosed by a closed boundary.
[0358] At process block 273, the processing system 20 determines the version information of the file to be accessed based at least on the tile directory 26.
[0359] At process block 274, the processing system 20 accesses a file based on version information, wherein the accessed file is associated with a tile that overlaps with a region enclosed by a closed boundary, or with a tile that includes a reference to a file associated with a tile that overlaps with that region.
[0360] At process block 275, processing system 20 generates a response. Processing system 20 generates the response based at least on object data obtained from a file accessed at process block 274. Processing system 20 can be operated to perform data interface control operations to generate and output the response.
[0361] Figure 26 This is a schematic representation of tile 81 and map objects stored together with tile 81. Map objects include nodes 82, 83, 84, 85, pathways 86, 87, 88, and / or relationships 89. Node 82 can be a member of one or more pathways (such as pathway 86) and / or one or more relationships (such as traffic signs or POI 89) (in the sense that it is referenced by its definition). The file 91 associated with tile 81 includes object data 93 of at least some of the map objects 82-89. File 91 may include one or more references to other tiles (or files associated with such other tiles). File 91 may also include membership data 96, which defines all other map objects to which any map object is a member. For illustration, membership data 96 can define any pathway 82 and / or any relationship 89 to which node 81 is a member. Processing system 20 can operate to access and utilize membership data 96 to provide a response to a request for map objects to which a specified map object is a member.
[0362] Figure 27 This is a flowchart of a method 280 for performing map data-related functions and / or accessing electronic map data. Method 280 can be executed automatically by the processing system 20.
[0363] At process block 281, processing system 20 receives a request for electronic map data. The request includes a request for object data (e.g., identifiers) of all map objects that are members of the map object specified in the request. The request may specify the target object by its unique object identifier 100.
[0364] At process block 282, the processing system 20 determines the blocks(s) to be accessed from among a plurality of blocks, based at least on the unique object identifier 100 of the target object in conjunction with the block catalog.
[0365] At process block 283, the processing system 20 determines the version information of the file to be accessed based at least on the tile directory 26, wherein the file is associated with the tile(s) identified at process block 282.
[0366] At process block 284, processing system 20 accesses files(s) based on version information, wherein at process block 282, the accessed files are associated with tiles(s) identified at least based on unique object identifiers (and more specifically, at least based on their bit sequence 101). Accessing files(s) includes at least accessing membership data to determine if the target map object specified in the request is a map object that is a member of it.
[0367] At procedure block 285, processing system 20 generates a response. Processing system 20 generates the response based at least on object data obtained from a file accessed at procedure block 284. Processing system 20 can operate to perform interface control operations to generate and output the response. The response may specify that the target map object is a map object that is a member of the map object. The response may also optionally include additional object data for these map objects, such as geographic locations.
[0368] The tiled tiles with a hierarchical tile structure used by processing system 20 offer various advantages, such as efficient accessibility to electronic map data in response to various types of requests. To support efficient accessibility, the tiled tiles and the multiple files associated with each tile are determined in a way that helps the processing system process the files while keeping the number of tiles as small as possible (regardless of whether rate operations or correct operations are performed). This applies to any modifications made during the initial generation of the hierarchical tile structure and multiple files, and during the operation of processing system 20, when the electronic map data is modified.
[0369] Figure 28 This is a flowchart of a method 290 for performing map data-related functions and / or accessing electronic map data. Method 290 can be executed automatically by the processing system 20. When modifying electronic map data, method 290 can be executed both during the initial generation of tiled tiles and multiple files, and during their modification.
[0370] At 291, processing system 20 determines the hierarchical tile structure. Determining the hierarchical tile structure may include determining tile sizes in a spatially varying manner. Determining the hierarchical tile structure may include determining tile sizes such that for any tile larger than the minimum tile size supported by the hierarchical tile structure, the file associated with that tile meets a threshold criterion. As previously explained, the threshold criterion may be based on file size and / or at least on the number of map objects. Determining the hierarchical tile structure may include determining tile sizes such that for any tile other than the maximum tile supported by the hierarchical tile structure (which corresponds to the root node 114 of hierarchical tile structure 110), the threshold criterion is satisfied, while a larger tile obtained by merging the corresponding tile with several adjacent tiles would result in a violation of the threshold criterion. In other words, determining the hierarchical tile structure may include determining tile sizes such that any tile larger than the minimum supported tile size meets the threshold criterion and is the largest tile size obtained.
[0371] At point 292, processing system 20 generates multiple files, each associated with one of the tiles in the tiled area identified at point 291. Generating multiple files may include storing object definitions of map objects located in the corresponding tiles in the associated files. Generating multiple files may include including version numbers in the corresponding tiles. During the operation of processing system 20, and more particularly, during modifications to the electronic map data, the version numbers are modified as the files are modified.
[0372] Figure 29 This is a flowchart of a method 300 for performing map data-related functions and / or accessing electronic map data. Method 300 can be executed automatically by the processing system 20. Method 300 can be executed during the initial generation of tiled tiles and multiple files and / or when modifying electronic map data.
[0373] At 301, processing system 20 can generate initial tiled tiles in which all tiles have the same tile size. The same tile size can, but does not need to, be equal to the minimum tile size supported by processing system 20 for tiled tiles. For illustration, process 300 can begin with a tile size greater than the minimum tile size supported by processing system 20 (determined by the number of bits in bit sequence 101) if it is clearly apparent from the total number of objects and / or the density of objects that tiles larger than the minimum tile size supported by processing system 20 would not result in a violation of a threshold criterion.
[0374] At 302, the processing system 20 determines a quantity related to the threshold comparison for each tile. This quantity may include the number of map objects. Alternatively or additionally, this quantity may include the file size of a file storing the object definitions of all map objects located within the corresponding tile.
[0375] At positions 303 to 306, tiles are systematically merged in such a way that tiles remain accessible in a systematic manner through a hierarchical tile structure (such as quadtree 110), while taking advantage of the fact that larger tiles can be used in areas where the density of map objects is lower than in other areas.
[0376] At point 303, the processing system automatically selects the block.
[0377] At point 304, it is determined whether a tile can be merged with an adjacent tile that has the same parent node in the hierarchical tile structure, wherein the merged tile (corresponding to the parent node) still meets the threshold criteria.
[0378] At 305, in response to determining that merging can be performed without violating the threshold criterion, merging adjacent tiles with the same parent node, the larger tile, which corresponds to the parent node in the hierarchical tile structure of the merged tiles, is notified.
[0379] At point 306, determine if any unconsidered tiles exist. If so, the procedure returns to point 303.
[0380] With the iterative reputation of 303 to 306, process 300 identifies tiled tiles, enabling systematic access to tiles based on a hierarchical tile structure (such as a quadtree 110), while ensuring that any tile larger than the minimum tile size supported by the processing system meets the threshold criteria, and further ensuring that tiled tiles consist of the largest tiles that meet the threshold criteria (i.e., merging tiles into a larger tile corresponding to a parent node in the hierarchical tile structure would result in a violation of the threshold criteria).
[0381] At point 307, processing system 20 generates multiple files, each associated with one of the tiles in the tiled area defined at points 301-306. Generating multiple files may include storing object definitions of map objects located in the corresponding tiles in the associated files. Generating multiple files may include including version numbers in the corresponding tiles. During the operation of processing system 20, and more particularly, during modifications to the electronic map data, the version numbers are modified as the files are modified.
[0382] At point 308, the processing system 20 enables access to electronic map data and / or allows the execution of functions related to the map data.
[0383] The processing system 20 and method disclosed herein are operable such that the size of tiles in a tiled map varies according to object density and therefore according to geographical location.
[0384] Figure 30 This is illustrated in diagram 60, where, except for... Figure 30All tiles other than the minimum tile size shown are schematically represented by circles. Tile 68 is larger than the other tiles because the density of map objects in the area covered by tile 68 is less than the density of map objects in the other areas covered by tiled tile 60. Because tiled tiles are organized according to a hierarchical tile structure (such as quadtree structure 110), some tiles in smaller tiles such as tiles 61 and 62 can also have relatively low map object densities. For illustration, if any of the several sibling nodes in the hierarchical tile structure (where sibling nodes are nodes with a common parent node) represents a map object density that is too large, the tiles associated with the parent node would result in a tile violating a threshold criterion, then the processing system 20 and method will not use the larger tile in tiled tile 60. Thus, the tiled tiles utilized by the processing system and method disclosed herein provide efficient access, especially due to their structure and considerations of threshold criteria for generating tiled tiles and / or multiple files.
[0385] Modifications can be made to electronic map data by adding, changing, or deleting map object definitions in order to improve the consistency between the electronic map data and the physical world reality that uses the electronic map data to perform map-based functions.
[0386] By reference Figure 31 , Figure 32 , Figure 33 and Figure 34 The operation of processing system 20 and / or system 310, which includes processing system 310, will be explained in more detail.
[0387] Figure 31 System 310 is illustrated, wherein processing system 20 performs stream processing 320 to generate map data 321 stored in one or more map products across a plurality of files 24. Processing system 20 includes map data provision 322 to make the map data available to map data consumers, which may include devices and / or systems of vehicle 314. Processing system 20 may receive requests for modifying electronic map data, indicating changes to different map layers 318, via at least one communication link 319.
[0388] Figure 32A schematic representation of system 310 is shown, which includes one or more map data providing systems 311, processing systems 20, and map data consumers 316. Map data consumer 316 includes at least one control circuit 330. At least one control circuit 330 can be communicatively coupled to a communication interface 336 of electronic map data consumer 268. At least one control circuit 330 can operate to perform map data-related functions based at least on electronic map data, which is based at least on the output stream 321 of stream processing 320, resulting in modifications to electronic map data stored in multiple files. At least one control circuit 330 can operate to perform at least one control action based at least on electronic map data to control one or more actuators 331, 332 and / or human-machine interface 335. At least one control circuit 330 can operate to perform at least one control operation using electronic map data in conjunction with sensor data captured by one or more sensors (such as distance sensor 334 and / or camera 333).
[0389] Figure 33 This is a flowchart of method 340. Method 340 can be executed automatically by or using processing system 20 and at least one map data consumer (such as map data consumer 316).
[0390] At process block 341, the processing system 20 processes at least one request for electronic map data to access the electronic map data and / or perform map data-related functions.
[0391] At process block 342, the processing system 20 provides output to at least one map data consumer. The output is based at least on the processing performed by the processing system 20.
[0392] At process frame 343, map data consumer 316 performs at least one action based on the output of the stream processing. This at least one action may include a control action. The at least one action may be any one or any combination of route search, navigation function, driver assistance function, advanced driver assistance function, and autonomous driving function. The at least one action may include at least one control action. The at least one control action may include controlling at least one actuator and / or controlling a human-machine interface.
[0393] Figure 34 This is a flowchart of method 350. Method 350 can be executed automatically by or using processing system 20. Method 350 can be or can include a method for using processing system 20 to achieve efficient access to versioned electronic map data.
[0394] At process frame 351, the processing system 20 operates to maintain electronic map data. Maintaining electronic map data may include providing multiple files 24 associated with tiled tiles and optionally providing a tile catalog including version information.
[0395] At process block 352, the processing system 20 accesses electronic map data to perform map data-related functions. Accessing the electronic map data may include the processing system 20 modifying the electronic map data in response to a request to modify the electronic map data. Accessing the electronic map data may also include the processing system 20 providing output based on at least one request originating from a map data consumer.
[0396] Although embodiments have been described with reference to the accompanying drawings, modifications and variations may be implemented in other embodiments. While exemplary use cases to which the method and vehicle processing system can be applied have been described in detail, the techniques disclosed herein can be used in conjunction with a variety of additional scenarios. To further illustrate, although exemplary map layers, hierarchical tile structures, and object identifier structures have been described, the techniques disclosed herein are generally applicable to a wide variety of map layers, hierarchical tile structures, and object identifier structures.
[0397] The description and accompanying drawings, which illustrate various aspects and embodiments of the invention, should not be considered as limiting the scope of the claims. In other words, while the invention has been illustrated and described in detail in the drawings and the foregoing description, such illustrations and descriptions should be considered illustrative rather than restrictive. Various mechanical, compositional, structural, electrical, and operational changes can be made without departing from the spirit and scope of this description and the claims. In some instances, well-known circuits, structures, and techniques have not been shown in detail to avoid obscuring the invention. Therefore, it will be understood that those skilled in the art can make changes and modifications within the scope and spirit of the following claims. In particular, the invention covers further embodiments having any combination of features from the different embodiments described above and below.
[0398] This disclosure also covers all other features shown individually in the accompanying drawings, although these features may not be described in the preceding or following description. Furthermore, single alternatives to the embodiments described in the drawings and specification, and single alternatives to their features, may be excluded from the subject matter of the invention or the disclosed subject matter. This disclosure includes subject matter consisting of features defined in the claims or embodiments, as well as subject matter including said features.
[0399] The term "comprising" does not exclude other elements or process blocks, and the indefinite articles "a" or "an" do not exclude multiple. A single unit or process block can perform the function of several features recited in the claims. The simple fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used advantageously. Components described as coupled or connected may be directly electrically or mechanically coupled, or they may be indirectly coupled via one or more intermediate components. Any reference numerals in the claims should not be construed as limiting the scope.
[0400] Machine-readable instruction code may be stored / distributed on a suitable medium (e.g., an optical or solid-state storage medium provided or as part of other hardware), but may also be distributed in other forms (e.g., via a wide area network or other wired or wireless communication system). Furthermore, machine-readable instruction code may also be a data structure product or signal used to embody a particular method (e.g., the method according to this embodiment).
Claims
1. A method for performing map data-related functions, the method comprising: The processing system (20) receives requests (47, 47', 48); The processing system (20) accesses electronic map data including versioned electronic map data, wherein the versioned electronic map data includes multiple files (24) storing object data of map objects located in multiple tiles (61-68), wherein different tiles in the multiple tiles (61-68) are associated with different geographical areas of the area covered by the electronic map data, wherein accessing the electronic map data includes: Access to the tile directory (26) is based at least on the request (47, 47', 48), wherein the tile directory (26) includes version information of one or both of the following: each of the plurality of files (24); each of the plurality of tiles (61-68); The first file (91) of the plurality of files (24) is identified based at least on the request (47, 47', 48) and the tile directory (26); At least based on the aforementioned request (47, 47', 48), the following accesses shall be made: In response to the processing system (20) determining that the object data is included in the first file (91), the object data of the object in the first file (91) is accessed; In response to the processing system (20) determining that the first file (91) includes a reference (94) for accessing the object data (95), the object data of the object in the second file (92) of the plurality of files (24) is accessed, the second file (92) being different from the first file (91); The processing system (20) performs operations based at least on the object data.
2. The method as described in claim 1, wherein, The first file (91) is associated with the first block (81) of the plurality of blocks (61-68), wherein the second file (92) is associated with the second block (82) of the plurality of blocks, and the second block (82) is different from the first block (81).
3. The method as described in claim 2, wherein, The first tile is adjacent to the second tile at a corner point of the first tile or along the edge of the first tile, and / or wherein the first tile has a first size, the second tile has a second size, and the second size is different from the first size.
4. The method of claim 1, wherein, The requests (47, 47', 48) include requests (47, 47', 48) to modify the object, wherein accessing the electronic map data includes generating an updated first file from the first file in response to the requests (47, 47', 48) and storing the updated first file.
5. The method of claim 4, wherein, Accessing the electronic map data further includes updating the tile catalog (26) in response to the request (47, 47', 48) to reflect that the updated first file corresponds to the revision caused by the request (47, 47', 48).
6. The method of claim 4 or claim 5, wherein, The request (47, 47', 48) includes a request (47, 47', 48) to modify the coordinates of the object from a first coordinate located in the first tile to a modified coordinate located in a third tile, the third tile being different from the first tile. Accessing the electronic map data further includes generating an updated third file from a third file associated with the third tile and storing the updated third file, wherein generating the updated third file includes including a reference to the updated first file in the updated third file.
7. The method of claim 6, wherein, Generating the updated first file includes updating the version data and object coordinate data in the first file, and wherein accessing the electronic map data includes keeping the identifier of the object unchanged when generating the updated first file and the updated third file, the identifier allowing the first file to be identified among the plurality of files (24).
8. The method according to any one of claims 4 to 5 and 7, wherein, The updated first file is stored without overwriting or deleting the first file.
9. The method according to any one of claims 1 to 5 and 7, wherein, The versioned electronic map data includes a first set of files corresponding to different versions of the versioned electronic map data. The first set of files is associated with the first map tile and includes the first file.
10. The method of claim 9, wherein, The request (47, 47', 48) includes time data and / or version data, and wherein the processing system (20) determines the first file to be accessed in the set based at least on the time data and / or the version data.
11. The method according to any one of claims 1 to 5, 7 and 10, wherein, The tile catalog (26) associates each tile with the latest revision, which causes the tile to be updated and occurs before the tile catalog (26) is generated or updated.
12. The method according to any one of claims 1 to 5, 7 and 10, wherein, Performing the operation includes generating output by the processing system (20) based at least on the object data.
13. The method according to any one of claims 1 to 5, 7 and 10, wherein, Performing the operation includes the processing system (20) implementing at least one map data-related function to be performed, the at least one map data-related function including one, several, or all of the following: Provide map data for use by the route search system; Provide map data for use by the route guidance system; Provide map data for use by driver assistance systems; Provide map data for use by advanced driver assistance systems; Provide map data for use by autonomous vehicle systems; Update map data; Deploy map data updates.
14. The method of claim 3, wherein, The quotient of the first size divided by the second size is b n , where b is a positive integer, and n is a positive or negative integer.
15. Map data generated using the method as described in any one of claims 1 to 14.
16. A machine-readable instruction code that, when executed by at least one processing circuit (30), causes the at least one processing circuit (30) to perform the method as claimed in any one of claims 1 to 14.
Citation Information
Patent Citations
Electronic device and vehicle control method of electronic device, server and method for providing precise map data of server
EP3832422A1
High definition (HD) map content representation and distribution for autonomous vehicles
WO2023154199A1