Method for executing map data-related function, electronic map and machine-readable instruction code
The method efficiently stores and accesses electronic map data by using tile-based file associations and versioned data management, addressing storage and access challenges to enhance navigation and autonomous driving systems.
Patent Information
- Application Number
- JP2025114603
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-14
- Filing Date
- 2025-07-07
- Publication Date
- 2026-02-27
AI Technical Summary
Existing systems face challenges in efficiently storing and accessing electronic map data, particularly in facilitating retrieval of objects within a particular area with short access times, updating map data based on various sources, and handling map layers interactively.
A method and system that store electronic map data in multiple files associated with tiles of different geographic regions, allowing object data to be retrieved efficiently by referencing files across tile boundaries and supporting versioned data to accommodate changes in geometry and coordinate shifts, while maintaining historical versions for robustness.
This approach enhances flexibility and efficiency in accessing and modifying electronic map data, reducing storage requirements and ensuring consistent access times, even when dealing with versioned data, thereby improving vehicle navigation and autonomous driving operations.
Smart Images

Figure 2026034371000001_ABST
Abstract
Description
[Technical Field]
[0001] FIELD OF THE INVENTION Embodiments of the present invention relate to technology associated with electronic map data, such as electronic map data for use in navigation, driver assistance, advanced driver assistance, and / or automated driving. In particular, embodiments of the present invention relate to technology useful for storing and / or providing access to electronic map data. [Background technology]
[0002] Electronic map data is a valuable resource for enhancing vehicle navigation functions, driver assistance systems, and enabling autonomous driving. It provides information about roads, routes, and surroundings that allows these and other technologies to operate efficiently and safely. One advantage of electronic map data is that it can be updated on an ongoing basis (i.e., continuously) to reflect changes such as road modifications, construction sites, and / or traffic patterns. This ensures that navigation systems can provide relevant guidance to drivers and reduces the likelihood of getting lost or encountering unexpected obstacles. Vehicle navigation functions, driver assistance systems, and autonomous driving systems also use electronic map data to enhance safety and improve driving comfort. Features such as lane departure warning, blind spot detection, and adaptive cruise control can utilize the information provided by electronic maps to make informed decisions and provide timely alerts or interventions. For example, if electronic map data indicates a sharp curve ahead, the system can adjust the vehicle's speed or warn the driver to ensure a safe maneuver. Furthermore, electronic map data can help identify speed limits, traffic signs, and other road conditions, allowing driver assistance systems to act accordingly. Thus, electronic map data helps vehicles take appropriate actions, increasing safety and overall efficiency.
[0003] International Publication No. 2023 / 154199 and European Patent Application Publication No. 3832422 disclose techniques relating to electronic map data.
[0004] There continues to be a need in the art for techniques that provide increased flexibility in the storage of and / or providing access to electronic map data. By way of example, it is often difficult and / or time-consuming for a processing system to provide access to electronic map data in a manner that facilitates retrieval of all objects within a particular area with short access times, allows map data to be updated based at least on data received from various map data sources, or performs other actions that allow systems that handle map layers to interact with map consumers. Summary of the Invention
[0005] It is an object of embodiments of the present invention to provide methods, systems and / or machine-readable instruction code that provide increased flexibility in storing and / or accessing map data. In particular, it is an object of embodiments to provide techniques for storing and / or accessing map data, in which object data defining map objects can be efficiently stored and retrieved, and in which changes to map geometry (such as shifts in object coordinates) can be implemented in an efficient and reliable manner.
[0006] According to embodiments of the present invention, there are provided a method, an electronic map and a machine-readable instruction code as set forth in the independent claims. The dependent claims define preferred and advantageous embodiments.
[0007] According to an 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, by the processing system, electronic map data, the electronic map data including a plurality of files storing object data for map objects located in a plurality of tiles, different tiles of which are associated with different geographic regions of an area covered by the electronic map data. Accessing the electronic map data includes accessing a tile directory based at least on the request; identifying a first file of the plurality of files based at least on the request and the tile directory; accessing object data for the object in the first file based at least on the request in response to the processing system determining that the object data is included in the first file; and accessing object data for the object in a second file in response to the processing system determining that the first file includes a reference to a second file of the plurality of files for accessing the object data, the second file being different from the first file. The method includes performing, by the processing system, an operation based on at least one object data.
[0008] Various effects and advantages are associated with the method. Electronic map data is stored in multiple files, each associated with a tile. Thus, the files are associated with different geographic regions. The method accommodates scenarios in which object data is stored in a file (second file) different from the first file to which the tile directory directs access, and the first file includes a reference to the second file, allowing the object data to be retrieved from the second file. This allows objects to be identified in a way that directs requests to the first file while providing versatility in accommodating shifts in geometry (e.g., that may be caused by changes in node coordinates crossing a tile boundary), thereby eliminating the need to delete and recreate the object if it is shifted across a tile boundary. Furthermore, for objects that extend across two or more tiles, this may reduce storage space requirements, since complete information does not need to be stored in each of the files corresponding to the various tiles across which the object extends. A tile directory associated with multiple files, each associated with a geographic region, also provides advantages in terms of access time. Thus, the present invention provides a technique in which object data can be modified (e.g., by changing, deleting, or adding object data) and / or read in an efficient manner. In particular, the method provides advantages in terms of access time while simultaneously providing increased versatility for modifying electronic map data during operation of the processing system.
[0009] The electronic map data may be or may include versioned electronic map data. The tile directory may include version information for each of the plurality of files and / or each of the plurality of tiles. Accessing the object data may include reading first file version information of a first file from the tile directory based at least on the request. Accessing the object data may include accessing the first file based at least on the first file version information.
[0010] This provides an efficient access mechanism even when versioned electronic map data is used. Versioned electronic map data offers the advantage that historical versions of electronic map data remain available. This may be useful for functions such as considering previous road network layouts, considering points of interest located at a certain time in the past, or other functions that require knowledge of electronic map data applicable at a certain time in the past. Furthermore, the use of versioned electronic map data offers robustness in the sense that it is possible to revert to a previous version that predates the latest version. This allows the processing system to undo some of the modifications to the electronic map data that were made in the meantime. This may be done by the processing system in response to detecting the existence of a consistency problem or other problem (such as data integrity) with the latest version of the electronic map data. Also, having access to previous versions helps ensure compliance with requirements that may need to be respected in a compliance context. Furthermore, versioning offers the advantage of making it possible to identify sources of errors. Versioning at the tile level may also offer storage advantages, as some areas may be changed / updated much more frequently than others.
[0011] Accessing the object data may further include reading second file version information for 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 the 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 versioned electronic map data is used. The access technique allows object data to be read, based at least on a request, by accessing a first file, which contains a reference to a second file in which the object data is stored. In either case, the tile directory contains version information that allows the processing system to determine which file and file version should be accessed.
[0013] Accessing the object data may include determining, based at least 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] This provides an efficient access mechanism even when versioned electronic map data is used, providing the combined effect of efficient access while supporting versioned electronic map data that allows electronic map versions other than the most recent map version to be accessed and / or reverted to electronic map versions other than the most recent map version.
[0015] Accessing the object data may include identifying time or version data in the request and determining which of several file versions of the first and / or second file should be accessed based at least on the tile directory and the time or version data in the request.
[0016] This provides an efficient access mechanism even when versioned electronic map data is used, providing the combined effect of efficient access while supporting versioned electronic map data.
[0017] Identifying the time or version data in the request may include determining, based at least on the tile directory, that the most recent file version of the first and / or second file should be accessed in response to detecting that the request does not include time or version data.
[0018] This provides an efficient access mechanism even when versioned electronic map data is used, providing the combined effect of efficient access while supporting versioned electronic map data.
[0019] Accessing the tile directory may include accessing the tile directory in a memory, such as random access memory (RAM).
[0020] This provides an efficient access mechanism while offering increased versatility in maintaining and providing electronic map data.
[0021] The tile directory may include a hash table and / or hash values, and accessing the tile directory may include accessing the table and / or hash values in memory, for example RAM.
[0022] This provides an efficient access mechanism while offering increased versatility in maintaining and providing electronic map data.
[0023] The first file may be associated with a first tile of the plurality of tiles, and the second file may be associated with a second tile of the plurality of tiles, the second tile being different from the first tile.
[0024] This does not require that object data for map objects be stored exclusively in files associated with the tile in which the coordinates of the individual map objects are located, although multiple files may relate to different geographic areas covered by different tiles of the tiling. This greatly enhances versatility. Illustratively, it more easily enables a processing system to adapt to changes in the coordinates of map objects that cause an individual map object to shift from a geolocation within one of the tiles of the tiling to a geolocation within another of the tiles of the tiling. Furthermore, for objects that extend across more than one tile, object information may only need to be stored in a file corresponding to one tile.
[0025] The electronic map data may store the entire geometry of a map object extending across several tiles in a file corresponding to one of the tiles, whereby this file may serve as an anchor. Other files associated with others of the tiles (i.e., tiles other than the tile to which the file in which the entire object geometry is stored pertains) may themselves store references to the file and / or tile that serves as the anchor.
[0026] This provides ease of manipulation and access to such objects. References facilitate efficient access operations for various queries, such as queries for objects that overlap an area.
[0027] The first tile may abut the second tile at a corner point of the first tile or along an edge of the first tile.
[0028] This allows for use cases of particular practical importance where the coordinates of map objects located close to an edge or corner point of a tile are shifted to be located in a different tile, which may occur in response to a modification of electronic map data, which may be caused at least based on coordinates established at least based on probe data that may originate from a fleet of vehicles.
[0029] Alternatively or additionally, the first tile may have a first size (e.g., a first edge length) and 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] Thereby, the tiles can be set up such that the tile size can vary as a function of location. The tile size can vary as a function of the density of map objects, and therefore as a function of geolocation. For illustrative purposes, the tile size can be larger in an area overlapping the ocean where the map objects are less densely packed, and the tile size can be smaller in another area corresponding to an urban area where the map objects are more densely packed. This provides advantages in terms of access time and facilitates handling of the map data, even when a large overall amount of data can be accommodated. The tiles can be defined (and the files can be structured accordingly) such that each of the files can store a large number of objects and / or have a file size that complies with threshold criteria, facilitating handling and accessing the files.
[0031] 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 integer, a negative integer, or 0. The index n may be a positive integer or a negative integer.
[0032] The tiles are thereby set up in a structured manner that facilitates identification of and access to the first files, thereby allowing the object data to be retrieved in an efficient manner. The structure of such a tiling including multiple tiles also facilitates dynamic adaptation of at least some of the tiles as the electronic map data is modified (i.e., changed, added, or deleted), thereby allowing the processing system to ensure that the files comply with size standards that facilitate handling of multiple files while providing efficient access to the electronic map data.
[0033] The tiles are arranged such that for any pair of tiles among the tiles, the quotient of the edge lengths of the pair of tiles is b n where b is a positive integer and n is a positive integer, a negative integer, or zero.
[0034] The tiles are thereby set up in a structured manner that facilitates identification of and access to the first files, thereby allowing the object data to be retrieved in an efficient manner. The structure of such a tiling including multiple tiles also facilitates dynamic adaptation of at least some of the tiles as the electronic map data is modified (i.e., changed, added, or deleted), thereby allowing the processing system to ensure that the files comply with size standards that facilitate handling of multiple files while providing efficient access to the electronic map data.
[0035] The tiles may be arranged such that the quotient is 2n, where n is a positive integer, a negative integer, or zero.
[0036] This allows multiple tiles to be set up in a structured way that facilitates their identification and access, and enables object data to be retrieved in an efficient way. The tiling defines a hierarchy that corresponds to a quadtree structure that facilitates dynamic adaptation of at least some of the tiles as the electronic map data is modified (i.e., changed, added, or deleted), thereby enabling the processing system to ensure that multiple files comply with size standards that facilitate handling of multiple files while providing efficient access to the electronic map data.
[0037] The tiles may be non-overlapping, with adjacent tiles abutting in a non-overlapping manner along tile edges and / or at tile corners.
[0038] This allows tiling to be used to provide structured storage of electronic map data that facilitates access to and / or modification of the electronic map data.
[0039] The request may include a request to modify the object. Accessing the electronic map data may include, in response to the request, generating an updated first file from the first file and causing the updated first file to be stored.
[0040] This allows the method to operate to accommodate modifications to the electronic map data in a manner that provides efficient access. Furthermore, the generation of the updated first file ensures that historical electronic map data remains available. This also provides robustness when inconsistencies are detected, as the processing system can revert to historical versions of multiple files.
[0041] Accessing the electronic map data may further include, in response to the request, updating the tile directory to reflect that the updated first file corresponds to the revision caused by the request.
[0042] This causes the tile directory to reflect that an updated first file has been generated and stored, providing efficient accessibility of the electronic map data.
[0043] The request may include a request to modify coordinates of an object from first coordinates located in a first tile to modified coordinates located in a third tile different from the first tile.
[0044] The method thereby accommodates changes to electronic map data corresponding to changes in the coordinates of already existing map objects. The method particularly accommodates changes that shift coordinates across tile boundaries. The method allows changes to be implemented without requiring changes to the object identifiers of the objects by allowing a file to contain references to object data in another file.
[0045] Accessing the electronic map data may further include, in response to a request to modify the coordinates of the object, generating an updated third file from a third file associated with the third tile and causing the updated third file to be stored. Alternatively or additionally, accessing the electronic map data may further include, in response to a request to modify the coordinates of the object, generating an updated second file from a second file associated with the second tile and causing the updated second file to be stored.
[0046] The method thereby accommodates changes to electronic map data corresponding to changes in the coordinates of already existing map objects. The method particularly accommodates changes that shift coordinates across tile boundaries. By allowing a file to contain references to object data in another file, the method allows coordinate changes to be implemented while still providing efficient retrieval of objects, for example in response to a request to identify a geographic area.
[0047] Generating the updated third file may include including a reference to the updated first file in the updated third file.
[0048] The method thereby accommodates changes that shift coordinates from a first tile to a third tile. The method allows the change in coordinates to be implemented while providing efficient retrieval of objects, for example in response to a request to identify a geographic area, by generating a third file to include a reference to the first file from which the object data can subsequently be read.
[0049] Generating the updated first file may include updating version data and object coordinate data in the first file.
[0050] This causes the versioned electronic map data to be updated to reflect that the first file has been modified.
[0051] Accessing the electronic map data may include leaving an identifier for the object unchanged when generating an updated first file and an updated third file, the identifier enabling the first file to be identified in the multiple files.
[0052] The method thereby provides for efficient searching of electronic map data. The object identifier may include a bit sequence that specifies a path through a hierarchical structure (e.g., a quadtree) representing the tiling to determine the first file to be accessed.
[0053] The identifier of the object may be a unique identifier, where the unique identifier for the object is different from all identifiers of objects other than the object stored in the electronic map data.
[0054] Thereby, object identifiers that uniquely identify objects may be set up such that they contain a bit sequence that specifies a path through a hierarchical structure (e.g., a quadtree) representing the tiling to determine the first file to be accessed.
[0055] Storing the updated first file may include storing the updated first file without overwriting or deleting the first file.
[0056] This allows the method to operate to implement modifications to electronic map data in a manner that provides efficient access while ensuring that historical electronic map data remains available. This also provides robustness when inconsistencies are detected, as the processing system can revert to historical versions of multiple files.
[0057] The request may include a data retrieval request originating from a map consumer.
[0058] Thereby, the method is operable to process data retrieval requests originating from a map consumer, enabling any one or any combination of a variety of electronic map-based functions to be performed by the map consumer.
[0059] The data retrieval request may include boundary data specifying a closed boundary enclosing the area. Accessing the electronic map data may include identifying all objects that overlap the area enclosed by the closed boundary.
[0060] This allows the processing system to process the data search request to efficiently identify all objects that overlap the area specified by the data search request. The structure of the electronic map data facilitates identifying such objects in an efficient manner.
[0061] The output may be based on at least all objects that overlap an area enclosed by the closed boundary.
[0062] This allows the processing system to provide output in response to the data retrieval request for use by the map consumer, which may include object data for all objects that overlap the area enclosed by the closed boundary specified by the data retrieval request.
[0063] The output may include at least the coordinates of all objects that overlap the area enclosed by the closed boundary.
[0064] This allows the processing system to provide output in response to the data retrieval request for use by the map consumer, which may include object data for all objects that overlap the area enclosed by the closed boundary specified by the data retrieval request.
[0065] The data retrieval request may include a membership request. Accessing the electronic map data may include identifying all objects stored within the electronic map data that contain (or comprise or otherwise include) a reference to an object specified in the membership request.
[0066] This allows the processing system to process the data search request to identify all objects stored in the electronic map data of which the object specified in the membership request is a member, thus the method is adaptable to different types of queries for map data.
[0067] The processing system may be operable to support different types of map object definitions, such as a first type (e.g., for defining nodes of a navigable network), a second type (e.g., for defining links of the navigable network), and a third type (e.g., for defining information related to objects of the first or second type, or other objects of a third type). A map object definition of the first type (e.g., a "node type") may define coordinates (such as, but not limited to, latitude and longitude) of individual nodes. A map object definition of the second type (e.g., a "road type") may define at least which nodes are part of a road. A map object definition of the third type (which may also be called a relationship) may define properties such as names that may be associated with objects of the first or second type, or even objects of the third type (such as the name of a point of interest (POI)), and thus may reference objects of either the first, second, or third type. Accessing the electronic map in response to a membership request may include identifying all objects referenced by (or that are part of or otherwise included in) an object definition of an object of the second or third object type.
[0068] This allows the processing system to process the data search request to identify all objects stored in the electronic map data of which the object specified in the membership request is a member, thus the method is adaptable to different types of queries for map data.
[0069] Identifying all objects stored in the electronic map data that include the object may include accessing, for the object, a membership data structure that identifies all objects stored in the electronic map data that include the object.
[0070] This allows the processing system to process data search requests to identify in an efficient manner all objects stored in the electronic map data that contain the object. The processing system maintains a membership data structure to provide output in response to such membership queries in a time-efficient manner.
[0071] The output may be based on at least all objects that include the object.
[0072] This allows the processing system to provide output in response to a data retrieval request for use by a map consumer, which may include identifiers and optionally coordinates or other information for all objects that contain the object.
[0073] The output may include at least the identifiers and / or coordinates of all objects stored in the electronic map data that include the object.
[0074] This allows the processing system to provide output in response to data retrieval requests for use by map consumers.
[0075] The versioned electronic map data may include a set of first 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 a first file.
[0076] This allows the method to provide the flexibility to access map versions that correspond to a point in time in the past and that differ from the most recent map version, while providing robustness against possible errors that may have occurred when updating the map data. In particular, maintaining historical map data allows the processing system to revert to a previous map version in response to detecting an inconsistency or other error, such as a reference error.
[0077] The request may include time and / or version data.
[0078] Thereby, the request may include a search request that specifies the time and / or version of the electronic map data from which the object data is to be accessed. Accessing historical electronic map data has various uses, such as for retrieving previous point of interest (POI) locations.
[0079] The method may include determining a first file to be accessed based at least on the time data and / or the version data.
[0080] This allows the processing system to use the time and / or version data contained in the request to determine the first file, and optionally the second file, to be accessed in response to the request, facilitating access to historical versions of electronic map data in an efficient manner.
[0081] The method may include determining a first file in the collection to be accessed based at least on the tile directory and the time data and / or the version data.
[0082] This allows the processing system to use the tile directory in combination with time and / or version data included in the request to determine the first file, and optionally the second file, to be accessed in response to the request, facilitating access to historical versions of electronic map data in an efficient manner.
[0083] The tile directory may associate each tile with the most recent revision that caused an update to the tile and that precedes the creation or update of the tile directory.
[0084] This allows the latest version of the file to be efficiently identified by accessing the tile directory, which contributes to providing efficient access to electronic map data.
[0085] The tile directory may include a hash table that is maintained in the memory of the processing system.
[0086] This allows the tile directory to be accessed in an efficient manner to retrieve information about the files to be accessed, which contributes to providing efficient access to electronic map data.
[0087] Performing an action may include generating, by the processing system, an output based at least on the object data.
[0088] The processing system thereby provides an output that depends 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 (such as by modifying existing object data, adding object data, or deleting existing object data), the output may include a confirmation ensuring that the correct action was performed.
[0089] Performing an action may include performing, by the processing system, an interface control action based at least on the object data.
[0090] The processing system thereby provides an output that depends 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 (such as by modifying existing object data, adding object data, or deleting existing object data), the output may include a confirmation ensuring that the correct action was performed.
[0091] The operations may include enabling at least one map data-related function to be performed by the processing system. The at least one map data-related function may include one, some, or all of: providing map data for use by a route planning 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] The efficient access to electronic map data provided by the method may thereby be beneficially utilized to enable the performance of such map data related functions, which may improve the quality and safety of vehicle operations, for example by enabling driver assistance, advanced driver assistance, and / or autonomous driving operations with more efficient access to electronic map data.
[0093] Performing the operations may include performing at least one map data-related function by the processing system and / or by a system or device remote from the processing system and operable to communicatively interface with the processing system. The at least one map data-related function may include one, some, or all of: providing map data for use by a route planning 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, map data updates, and map data update deployment.
[0094] The efficient access to electronic map data provided by the method may thereby be beneficially utilized for the performance of such map data related functions, which may improve the quality and safety of vehicle operations, for example by enabling driver assistance, advanced driver assistance, and / or autonomous driving operations with more efficient access to electronic map data.
[0095] According to an aspect of the present invention, there is provided a vehicle control method for performing a vehicle control action, the vehicle control method including performing a method for performing a map data related function according to an aspect or embodiment, receiving, by a system or device of the vehicle, an output generated by a processing system, and performing, by the system or device of the vehicle, at least one control action based at least on the output.
[0096] Thereby, the vehicle control method utilizes a method for performing map data related functions that efficiently provides access to electronic map data, which improves the quality and safety of vehicle operations, for example, by enabling driver assistance, advanced driver assistance, and / or autonomous driving operations with more efficient access to electronic map data.
[0097] According to an aspect of the present invention there is provided map data generated using a method according to any one of the preceding claims, wherein the electronic map data may be obtained by accessing an electronic map database and generating at least one of a plurality of files based at least on a request.
[0098] This provides electronic map data obtained when performing a method according to an aspect or embodiment. Such electronic map data includes multiple tiles, each associated with a tile of a tiling, providing the advantage of enabling efficient and versatile access to the electronic map data. Electronic map data is particularly useful for accommodating various types of requests, such as a request for all objects that overlap an area enclosed by a closed boundary, a request to identify all objects that are members of another object, or a legacy request for object data. It will be appreciated that electronic map data resulting from a request, including, for example, a request to modify the electronic map data, will have characteristic features that can be determined from the electronic map data itself, i.e., at least some of the multiple files will contain one or more references to other files. In a preferred embodiment, the electronic map data further includes a tile directory, which includes information about the tiling as well as the latest file versions for the various tiles of the tiling.
[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 one of the aspects or embodiments.
[0100] Thereby, the technical effects disclosed in connection with the methods according to the various embodiments are achieved upon execution of the machine-readable instruction code.
[0101] According to another aspect of the present invention, a data carrier is disclosed comprising machine-readable instruction code which, when executed by at least one processing circuit, causes the at least one processing circuit to perform the method of any one of the aspects or embodiments.
[0102] The data carrier thereby includes machine-readable instruction code that, when executed, provides the technical effects disclosed in connection with the methods according to the various embodiments.
[0103] The data carrier may include a non-transitory storage medium having machine-readable instruction code stored thereon.
[0104] Thereby, the data carrier can be embodied as a physical object.
[0105] According to an 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 to receive a request. The processing system includes at least one processing circuit operable to: access electronic map data, the electronic map data including a plurality of files storing object data for map objects located in a plurality of tiles, different tiles of which are associated with different geographic regions of an area covered by the electronic map data; access a tile directory based at least on the request to access the electronic map data; identify a first file of the plurality of files based at least on the request and the tile directory; access object data for the object in the first file based at least on the request in response to the processing system determining that the object data is included in the first file; and access object data for the object in a second file based at least on the request in response to the processing system determining that the first file includes a reference to a second file of the plurality of files for accessing the object data, the second file being different from the first file. The at least one processing circuit is operable to perform an action based on the at least one object data.
[0106] Various effects and advantages are achieved by the processing system. Electronic map data is stored in multiple files, each associated with a tile. Thus, the files are associated with different geographic regions. The processing system accommodates scenarios in which object data is stored in a file (second file) different from the first file to which the tile directory directs access, and the first file includes a reference to the second file, allowing the object data to be retrieved from the second file. This allows objects to be identified in a manner that directs requests to the first file while providing versatility in accommodating geometry shifts (which may be caused, for example, by changes in node coordinates across a tile boundary), thereby eliminating the need to delete and recreate the object if it is shifted across a tile boundary. A tile directory associated with multiple files, each associated with a geographic region, also provides advantages in terms of access time. Thus, the processing system is operable to enable modification and / or read access of electronic map data in an efficient manner. The processing system provides advantages in terms of access time while simultaneously providing increased versatility for modifying electronic map data during operation of the processing system.
[0107] The processing system may be operable to perform the method of any aspect or embodiment disclosed herein.
[0108] According to a further aspect, there is provided a system including a processing system and at least one map data consumer, wherein the processing system is operable such that the at least one operation includes an output operation for providing an output for use by the at least one map data consumer.
[0109] The output (e.g., map data) is thereby made available for use by an electronic map data consumer, which may be or include a device or vehicle system operable to perform one, some, or all of the following based at least on the output: route planning, route guidance, driver assistance functions, advanced driver assistance functions, automated driving functions, and traffic flow control.
[0110] At least one map data consumer may include control circuitry operable to control vehicle actuators and / or vehicle human-machine interfaces based at least on the output.
[0111] This allows the output (eg, an output stream providing map data) to be used to perform vehicle or other navigation-related functions.
[0112] The system may further include at least one map data source operable to generate a request including a request for a modification of the electronic map data.
[0113] Thereby, the map data source of the data that causes the modification of the electronic map data may be provided separately from the processing system, which facilitates aggregating data into the electronic map data from different map data sources that may be associated with different map layers.
[0114] The processing system may be operable to receive and process a request for modification of the electronic map data. The processing system may be operable to process the request for modification of the electronic map data such that one or several additional files are generated without overwriting or deleting pre-existing files.
[0115] This makes the processing system operable to maintain versioned electronic map data.
[0116] Each of the map data sources may be associated with at least one (eg, exactly one) of several map layers.
[0117] This allows for more flexibility in modifying the map data.
[0118] The map data sources may include at least one map data source operable to modify map layers of various map layers in response to observations captured using the sensing devices (e.g., links of the navigable network, traffic signs, and / or traffic conditions). The sensing devices may be installed in a fleet of probes, such as vehicle probes.
[0119] Thereby, appropriate modifications of the map layers that improve the quality of the output (eg, accuracy of the output compared to real infrastructure conditions) may be performed, eg automatically.
[0120] Methods and processing systems for enabling access to electronic map data are described below. These techniques may (but need not) be performed in combination with the methods for performing map data-related functions disclosed herein.
[0121] According to an aspect of the present invention, there is provided a method for enabling access to electronic map data. The method includes determining, by a processing system, a hierarchical tile structure for storing the electronic map data, the hierarchical tile structure including a plurality of tiles, the plurality of tiles covering a geographic coverage area of the electronic map. The method includes generating, by the processing system, a plurality of files and causing the plurality of files to be stored. The processing system generates the plurality of files such that each of the plurality of files includes object data for map objects located in an associated one of the plurality of tiles. Determining the hierarchical tile structure includes determining, by the processing system, the hierarchical tile structure based at least on the geolocation and storage space requirements of the map objects and at least on a threshold criterion. The processing system determines the hierarchical structure such that the threshold criterion is met if each of the plurality of files includes object data for tiles larger than a predetermined minimum tile size.
[0122] The method for enabling access to electronic map data achieves various effects and advantages. By generating multiple files so that there is a correspondence between map objects and geolocations, and each file is associated with a tile (and therefore a geographic area), efficient access is possible to accommodate various queries, such as queries by object identifier and queries by geographic area. A threshold criterion enables the generation of multiple files, each associated with a tile of a hierarchical tile structure, so that efficient access is achieved. The threshold criterion ensures that all files comply with the threshold criterion when associated with a tile that does not have a minimum tile size (e.g., a minimum border size). This provides efficient access by allowing each file required to handle a query received by the processing system to be kept in memory, with the upper limit of memory space and / or number of objects known in advance by the threshold criterion.
[0123] Relaxing the threshold criteria for files associated with tiles having a minimum tile size (by not requiring such files to comply with the threshold criteria) allows object identifiers to include bit sequences having a fixed length that uniquely identify the tile (and therefore its corresponding file) to be accessed in response to a request, thereby facilitating handling of various types of queries and providing efficient access to combine files associated with geographic regions in a manner that accommodates spatially varying tile sizes.
[0124] The electronic map data may include or be versioned electronic map data. The method may further include generating, by the processing system, a tile directory including information about the tiling and version information for each tile of the at least one tiling to enable file identification of the plurality of files.
[0125] This provides an efficient access mechanism even when versioned electronic map data is used. Versioned electronic map data offers the advantage that historical versions of electronic map data remain available. This may be useful for functions such as taking into account previous road network layouts, taking into account points of interest located at a certain time in the past, or other functions that require knowledge of electronic map data applicable at a certain time in the past. Furthermore, the use of versioned electronic map data provides robustness in the sense that it is possible to revert to a previous version that predates the latest version. This allows the processing system to undo some of the modifications of the electronic map data that have been made in the meantime. This may be done by the processing system in response to detecting the existence of a consistency problem or other problem (such as data integrity) with the latest version of the electronic map data.
[0126] Determining the hierarchical tile structure may include determining, by the processing system, a depth of the hierarchical structure based at least on the spatial variation of map object density. The depth may have a one-to-one correspondence with the edge length. Different depths may correspond to different edge lengths of the tiles, with each depth corresponding to a single associated edge length, and vice versa. The depth may be a positive integer indicating the number of nodes to be traversed on the tree, e.g., a quadtree, from the root of the tree to the leaf nodes of the tree.
[0127] Thereby, the tiles can be set up such that the tile size can vary as a function of location. The tile size can vary as a function of the density of map objects, and therefore as a function of geolocation. For illustrative purposes, the tile size can be larger in an area overlapping the ocean where the map objects are less densely packed, and the tile size can be smaller in another area corresponding to an urban area where the map objects are more densely packed. This provides advantages in terms of access time and facilitates handling of the map data, even when a large overall amount of data can be accommodated. The tiles can be defined (and the files can be structured accordingly) such that each of the files can store a large number of objects and / or have a file size that complies with threshold criteria, facilitating handling and accessing the files.
[0128] The processing system determines whether, for any pair of tiles among the plurality of tiles, the quotient of the edge lengths of the pair of tiles is b n where b is a positive integer and n is a positive integer, a negative integer, or zero.
[0129] The tiles are thereby set up in a structured manner that facilitates identification of and access to the first files, thereby allowing the object data to be retrieved in an efficient manner. The structure of such a tiling including multiple tiles also facilitates dynamic adaptation of at least some of the tiles as the electronic map data is modified (i.e., changed, added, or deleted), thereby allowing the processing system to ensure that the files comply with size standards that facilitate handling of multiple files while providing efficient access to the electronic map data.
[0130] The processing system may be configured to determine the number of tiles such that the quotient is 2n, where n is a positive integer, a negative integer, or zero.
[0131] This allows multiple tiles to be set up in a structured way that facilitates their identification and access, and enables object data to be retrieved in an efficient way. The tiling defines a hierarchy that corresponds to a quadtree structure that facilitates dynamic adaptation of at least some of the tiles as the electronic map data is modified (i.e., changed, added, or deleted), thereby enabling the processing system to ensure that multiple files comply with size standards that facilitate handling of multiple files while providing efficient access to the electronic map data.
[0132] The processing system may determine the tiles such that the tiles are non-overlapping and adjacent tiles abut in a non-overlapping manner along tile edges and / or at tile corners.
[0133] This allows tiling to be used to provide structured storage of electronic map data that facilitates access to and / or modification of the electronic map data.
[0134] The processing system determines whether the tiles do not overlap and whether the quotient of the sizes for different levels of the hierarchical tile structure is b n The hierarchical tile structure may be generated such that b is a positive integer greater than 1, and n is a positive or negative integer.
[0135] This allows multiple tiles to be set up in a structured way that facilitates their identification and access, and enables object data to be retrieved in an efficient way. The tiling defines a hierarchy that corresponds to a quadtree structure that facilitates dynamic adaptation of at least some of the tiles as the electronic map data is modified (i.e., changed, added, or deleted), thereby enabling the processing system to ensure that multiple files comply with size standards that facilitate handling of multiple files while providing efficient access to the electronic map data.
[0136] The processing system may be operable to allow threshold criteria to be set.
[0137] This allows the processing system to configure the generation of multiple files, which allows for efficient access taking into account the details of the processing system. Illustratively, the tunability and configurability of the threshold criteria allows the threshold criteria to take into account the memory configuration (e.g., memory size), memory access controller configuration, and / or memory bus configuration of the processing system. This allows for efficient access that takes into account the configuration of the processing system.
[0138] The threshold criteria may include a file size criteria.
[0139] The processing system is thereby operable to ensure that any file of the plurality of files that is not associated with a tile at the minimum tile size level has a file size that does not exceed the file size threshold, which facilitates access by providing an upper file size limit for any file that is not associated with a tile having the minimum tile size supported by the processing system.
[0140] The threshold criteria may include an object count criterion.
[0141] The processing system is thereby operable to ensure that any file of the plurality of files that is not associated with a tile at the minimum tile size level stores data for a number of map objects that does not exceed the object count threshold, which facilitates access by providing an upper limit on the number of objects for any file that is not associated with a tile having the minimum tile size supported by the processing system.
[0142] The processing system may generate the hierarchical tile structure such that any tile in a hierarchical tile structure different from the root of the hierarchical tile structure that is larger than a predetermined minimum tile size has a size such that generation of a file storing a map object of an ancestor tile in the hierarchical tile structure (i.e., a tile that is larger than and includes an individual tile) results in a file that violates the threshold criteria. That is, the processing system may generate the hierarchical tile structure such that any tile in a hierarchical tile structure different from the root of the hierarchical tile structure that is larger than a predetermined minimum tile size is the largest tile that results in an associated file that complies with the threshold criteria.
[0143] This causes the processing system to generate the files in a manner that provides efficient access to the electronic map data while facilitating maintenance of the files by the processing system. The hierarchical tile structure, and therefore the files, are set up by the processing system in such a way that any file not associated with a tile having a predetermined minimum tile size complies with the threshold criterion, while an individual tile is the largest such tile whose file complies with the threshold criterion. This allows tiles to be kept as large as possible while still ensuring compliance with the threshold criterion, and may ensure compliance with the threshold criterion at a level that does not correspond to the minimum tile size.
[0144] The processing system may generate the hierarchical tile structure such that any tile in the hierarchical tile structure that is larger than a predetermined minimum tile size is the root of the hierarchical tile structure, and generation of a file storing the map object of an ancestor tile in the hierarchical tile structure results in a file that violates a threshold criterion.
[0145] This causes the processing system to generate the files in a manner that provides efficient access to the electronic map data while facilitating maintenance of the files by the processing system. The hierarchical tile structure, and therefore the files, are set up by the processing system in such a way that any file not associated with a tile having a predetermined minimum tile size complies with the threshold criterion, while an individual tile is the largest such tile whose file complies with the threshold criterion. This allows tiles to be kept as large as possible while still ensuring compliance with the threshold criterion, and may ensure compliance with the threshold criterion at a level that does not correspond to the minimum tile size.
[0146] The method may further include receiving, by the processing system, at least one message indicating a modification to the versioned electronic map data. Generating the plurality of files may include, in response to the at least one message, generating, by the processing system, an updated file from at least one file of the plurality of files and causing storage of the updated file, the updated file based at least on the modification.
[0147] This allows the processing system to handle messages that cause modifications to the electronic map data (e.g., changing an existing object, adding a new object, or deleting an existing object). The method is operable to accommodate modifications to the electronic map data in a manner that provides efficient access. Furthermore, the generation of the updated first file ensures that historical electronic map data remains available. This also provides robustness when inconsistencies are detected, as the processing system can revert to historical versions of multiple files.
[0148] Generating the tile directory may include reading and updating the version of the tile directory prior to the modification so that the tile directory indicates that tiles associated with the updated file version have been affected by the modification request.
[0149] This allows the tile directory to reflect that updated files have been generated and stored, providing efficient accessibility of electronic map data.
[0150] The tile directory may associate each tile with the most recent revision that caused an update to the tile and that precedes the creation or update of the tile directory.
[0151] This allows the latest version of the file to be identified efficiently by clearing the tile directory, which contributes to providing efficient access to electronic map data.
[0152] The tile directory may include a hash table that is maintained in the memory of the processing system.
[0153] This allows the tile directory to be accessed in an efficient manner to retrieve information about the files to be accessed, which contributes to providing efficient access to electronic map data.
[0154] The processing system may also be configured to store updated file versions of the at least one file in addition to the at least one file.
[0155] This allows historical electronic map data to remain available. It also provides robustness when inconsistencies are detected, as the processing system can revert to historical versions of multiple files.
[0156] The modification may include one of adding a new map object, making a change to an existing map object, or deleting an existing map object.
[0157] Thereby, the processing system is operable to adapt various modifications of the electronic map data to ensure continued compliance with the threshold criteria in such a way that the generation of the hierarchical tile structure is repeated as necessary.
[0158] The at least one message may indicate a geolocation change from a first geolocation that overlaps the first tile to a third geolocation that overlaps one or more third tiles. Updating the plurality of files may include generating an updated first file from a first file of the plurality of files, the first file being associated with the first tile, the updated first file including data identifying the third geolocation, and generating an updated version of each of one or more third files of the plurality of files. Each of the one or more third files may be associated with an associated one of the 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 in each of the one or more third files.
[0159] The method thereby accommodates changes to electronic map data corresponding to changes in the coordinates of already existing map objects. The method particularly accommodates changes that shift coordinates across tile boundaries. By allowing a file to contain references to object data in another file, the method allows coordinate changes to be implemented while still providing efficient retrieval of objects, for example in response to a request to identify a geographic area.
[0160] The method may further include modifying the hierarchical tile structure in response to determining, by the processing system, that tile splitting or tile merging requires modification for continued compliance with the threshold criteria.
[0161] The method thereby adapts to changes in the electronic map data while ensuring continued compliance with the threshold criteria by triggering tile splitting and / or tile merging as required to modify the electronic map data, which enhances access to the electronic map data and improves the process of modifying the electronic map data.
[0162] Each of the map data sources may be associated with at least one (eg, exactly one) of several map layers.
[0163] This allows for more flexibility in modifying the map data.
[0164] The map data sources may include at least one map data source operable to modify map layers of various map layers in response to observations captured using the sensing devices (e.g., links of the navigable network, traffic signs, and / or traffic conditions). The sensing devices may be installed in a fleet of probes, such as vehicle probes.
[0165] Thereby, appropriate modifications of the map layers that improve the quality of the output (eg, accuracy of the output compared to real infrastructure conditions) may be performed, eg automatically.
[0166] The method may be or include the initial creation of a number of files and a hierarchical tile structure to enable access to electronic map data.
[0167] The method is thereby operable to generate a plurality of files that store electronic map data in a manner that provides efficient access to the electronic map data for retrieval and / or modification of object data contained in the electronic map.
[0168] The method may be or may include the modification of previously generated electronic map data. The modification may include the generation of additional files and / or modification of the hierarchical tile structure by tile mergers or tile splitting.
[0169] The method is thereby operable to maintain a plurality of files storing the electronic map data as the electronic map data continues to be modified, the plurality of files and the hierarchical tile structure continuing to provide efficient access to the electronic map data for retrieval and / or modification of object data contained in the electronic map, and the hierarchical tile structure being appropriately modified to ensure continued compliance with the threshold criteria for any tiles having a size greater than a predetermined minimum tile size.
[0170] The method may further include enabling, by the processing system, upon request, access to the versioned electronic map data for performance of a map database function.
[0171] This allows the processing system to provide access to electronic map data that is stored in a manner that allows efficient access.
[0172] Enabling access may include accessing the tile directory to identify at least one file to be accessed, accessing the at least one file to retrieve object data for one or more map objects, and generating output based at least on the object data.
[0173] This allows the processing system to provide access to electronic map data in an efficient manner.
[0174] Enabling access may include generating, by the processing system, an output based at least on the object data read from the plurality of files.
[0175] The processing system thereby provides an output that depends 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 (such as by modifying existing object data, adding object data, or deleting existing object data), the output may include a confirmation ensuring that the correct action was performed.
[0176] The method may include performing, by the processing system, an interface control action based at least on the object data.
[0177] The processing system thereby provides an output that depends 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 (such as by modifying existing object data, adding object data, or deleting existing object data), the output may include a confirmation ensuring that the correct action was performed.
[0178] The method may include enabling, by the processing system, at least one map data-related function to be performed. The at least one map data-related function may include one, some, or all of: providing map data for use by a route planning 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, map data updates, and map data update deployment.
[0179] The efficient access to electronic map data provided by the method may thereby be beneficially utilized to enable the performance of such map data related functions, which may improve the quality and safety of vehicle operations, for example by enabling driver assistance, advanced driver assistance, and / or autonomous driving operations with more efficient access to electronic map data.
[0180] The method may include performing, by the processing system and / or by a system or device remote from the processing system and operable to communicatively interface with the processing system, at least one map data-related function. The at least one map data-related function may include one, some, or all of: providing map data for use by a route planning 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, map data updates, and map data update deployment.
[0181] The efficient access to electronic map data provided by the method may thereby be beneficially utilized for the performance of such map data related functions, which may improve the quality and safety of vehicle operations, for example by enabling driver assistance, advanced driver assistance, and / or autonomous driving operations with more efficient access to electronic map data.
[0182] According to an aspect of the present invention, there is provided a vehicle control method for performing a vehicle control action, the vehicle control method including a method for enabling access to electronic map data according to an aspect or embodiment, receiving, by a system or device of the vehicle, output generated by a processing system based at least on the plurality of files, and performing, by the system or device of the vehicle, at least one control action based at least on the output.
[0183] Thereby, the vehicle control method utilizes an access enabling method that efficiently provides access to electronic map data, which improves the quality and safety of vehicle operation, for example, by enabling driver assistance, advanced driver assistance, and / or autonomous driving operation with more efficient access to electronic map data.
[0184] According to an aspect of the present invention there is provided map data generated using an access enabling method according to any one of the preceding claims. The electronic map data may be obtained by initial generation of a hierarchical tile structure and a plurality of files or by modification of a hierarchical tile structure and a plurality of files generated by a processing system.
[0185] This provides electronic map data obtained when performing a method according to an aspect or embodiment. Such electronic map data includes multiple tiles, each associated with a tile of a tiling, offering the advantage of enabling efficient and versatile access to the electronic map data. Electronic map data is particularly useful for accommodating various types of requests, such as a request for all objects overlapping an area enclosed by a closed boundary, a request to identify all objects that are members of another object (the latter specified in a data retrieval request), or a legacy request for object data. It will be appreciated that electronic map data resulting from a request, including, for example, a request to modify the electronic map data, has characteristic features that can be determined from the electronic map data itself, i.e., at least some of the multiple files contain one or several references to other files. In a preferred embodiment, the electronic map data further includes a tile directory, which includes information about the tiling as well as information about the latest file versions for the various tiles of the tiling.
[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 one of the aspects or embodiments.
[0187] Thereby, the technical effects disclosed in connection with the methods according to the various embodiments are achieved upon execution of the machine-readable instruction code.
[0188] According to another aspect of the present invention, a data carrier is disclosed comprising machine-readable instruction code which, when executed by at least one processing circuit, causes the at least one processing circuit to perform the method of any one of the aspects or embodiments.
[0189] The data carrier thereby includes machine-readable instruction code that, when executed, provides the technical effects disclosed in connection with the methods according to the various embodiments.
[0190] The data carrier may include a non-transitory storage medium having machine-readable instruction code stored thereon.
[0191] Thereby, the data carrier can be embodied as a physical object.
[0192] According to an 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, the hierarchical tile structure including a plurality of tiles, the plurality of tiles covering a geographic coverage area of the electronic map. The at least one processing circuit is operable to generate a plurality of files and cause the plurality of files to be stored. The at least one processing circuit is operable to generate the plurality of files such that each of the plurality of files includes object data for map objects located in an associated one of the plurality of tiles. To determine the hierarchical tile structure, the at least one processing circuit is operable to determine the hierarchical tile structure based at least on geolocations and storage space requirements of the map objects and at least on a threshold criterion. The at least one processing circuit is operable to determine the hierarchical structure such that the threshold criterion is met if each of the plurality of files includes object data for tiles larger than a predetermined minimum tile size.
[0193] A processing system for enabling access to electronic map data achieves various effects and advantages. Generating multiple files such that there is a correspondence between map objects and geolocations, each associated with a tile (and therefore a geographic area), enables efficient access accommodating various queries, such as queries by object identifier and queries by geographic area. A threshold criterion enables the generation of multiple files, each associated with a tile in a hierarchical tile structure, such that efficient access is achieved. The threshold criterion ensures that all files comply with the threshold criterion when associated with a tile that does not have a minimum tile size (e.g., a minimum border size). This provides efficient access by allowing each file required to handle a query received by the processing system to be kept in memory, with the upper limit of memory space and / or number of objects known in advance by the threshold criterion.
[0194] Relaxing the threshold criteria for files associated with tiles having a minimum tile size (by not requiring such files to comply with the threshold criteria) allows object identifiers to include bit sequences having a fixed length that uniquely identify the tile (and therefore its corresponding file) to be accessed in response to a request, thereby facilitating handling of various types of queries and providing efficient access to combine files associated with geographic regions in a manner that accommodates spatially varying tile sizes.
[0195] The optional features of the processing system and the effects achieved thereby correspond to the optional features of the method for enabling access to electronic map data according to any one of the various aspects or embodiments disclosed herein.
[0196] The processing system may be operable to perform a method for enabling access to electronic map data according to any one of the various aspects or embodiments disclosed herein.
[0197] A processing system for providing access to electronic map data may include at least one interface operable to communicatively interface the processing system with one or more map data sources and / or one or more map data consumers.
[0198] According to a further aspect, there is provided a system including a processing system for enabling access to electronic map data and at least one map data consumer, wherein the processing system is operable to perform output operations to provide an output for use by the at least one map data consumer.
[0199] The output (e.g., a portion of the electronic map data) is thereby made available for use by an electronic map data consumer, which may be or include a device or vehicle system operable to perform one, some, or all of the following based at least on the output: route planning, route guidance, driver assistance functions, advanced driver assistance functions, automated driving functions, and traffic flow control.
[0200] At least one map data consumer may include control circuitry operable to control vehicle actuators and / or vehicle human-machine interfaces based at least on the output.
[0201] This allows the output (eg, an output stream providing map data) to be used to perform vehicle or other navigation-related functions.
[0202] The system may further include at least one map data source operable to generate a request including a request for a modification of the electronic map data.
[0203] Thereby, the map data source of the data that causes the modification of the electronic map data may be provided separately from the processing system, which facilitates aggregating data into the electronic map data from different map data sources that may be associated with different map layers.
[0204] The processing system may be operable to receive and process a request for modification of the electronic map data. The processing system may be operable to process the request for modification of the electronic map data such that one or several additional files are generated without overwriting or deleting pre-existing files.
[0205] This makes the processing system operable to maintain versioned electronic map data.
[0206] Each of the map data sources may be associated with at least one (eg, exactly one) of several map layers.
[0207] This allows for more flexibility in modifying the map data.
[0208] The map data sources may include at least one map data source operable to modify map layers of various map layers in response to observations captured using the sensing devices (e.g., links of the navigable network, traffic signs, and / or traffic conditions). The sensing devices may be installed in a fleet of probes, such as vehicle probes.
[0209] Thereby, appropriate modifications of the map layers that improve the quality of the output (eg, accuracy of the output compared to real infrastructure conditions) may be performed, eg automatically.
[0210] The methods and processing systems for enabling access to electronic map data may be operable to perform the methods for performing electronic map data-related functions according to any aspect or embodiment disclosed herein. Thus, the techniques for enabling access to electronic map data may (but need not) be performed in combination with the methods for performing map data-related functions disclosed herein.
[0211] The techniques disclosed herein may be used for, but are not limited to, navigation, route planning, driver assistance, and autonomous driving functions. [Brief explanation of the drawings]
[0212] Embodiments of the present invention will be described with reference to the drawings, in which like or corresponding reference numerals indicate elements of like or corresponding construction and / or function. [Figure 1] 1 is a schematic representation of a system including a processing system that operates to enable access to electronic map data and / or performance of map data related functions. [Figure 2] 1 is a schematic representation of tiling and multiple files. [Figure 3] 1 is a schematic representation of tiling and multiple files. [Figure 4] 1 is a schematic representation of a portion of a tiling and a subset of multiple files. [Figure 5] 1 is a schematic representation of an object identifier and its association with a tiling. [Figure 6] 1 is a schematic representation of a quadtree representing a tiling. [Figure 7] 1 is a schematic representation illustrating the operation of a processing system. [Figure 8] 1 is a schematic representation of a tile directory. [Figure 9] 1 is a flowchart of a method. [Figure 10] 1 is a flowchart of a method. [Figure 11] 1 is a schematic representation of a subset of tiles. [Figure 12] 1 is a further schematic representation of a subset. [Figure 13] 10 is yet another schematic representation of a subset. [Figure 14] 1 is a flowchart of a method. [Figure 15] 1 is a schematic representation of an object of electronic map data for illustrating the generation and / or adaptation of tiling. [Figure 16] 1 is a schematic representation of threshold criteria. [Figure 17] 1 is a block diagram representation of processing circuitry of a processing system. [Figure 18] FIG. 1 is a signal flow diagram of a system including a processing system. [Figure 19] FIG. 1 is a signal flow diagram of a system including a processing system. [Figure 20] 1 is a flowchart of a method. [Figure 21] 1 is a schematic block diagram representation of a processing system. [Figure 22] 1 is a flowchart of a method. [Figure 23] 1 is a schematic representation of a modification of electronic map data and an associated modification of a tile directory. [Figure 24] A schematic representation of a tiling. [Figure 25] 1 is a flowchart of a method. [Figure 26] 1 is a schematic representation of tiles and files of a tiling used to store electronic map data. [Figure 27] 1 is a flowchart of a method. [Figure 28] 1 is a flowchart of a method. [Figure 29] 1 is a flowchart of a method. [Figure 30] A schematic representation of a tiling. [Figure 31] 1 is a schematic representation of a system including a processing system. [Figure 32] 1 is a schematic representation of a system including a processing system. [Figure 33]1 is a flowchart of a method. [Figure 34] 1 is a flowchart of a method. DETAILED DESCRIPTION OF THE INVENTION
[0213] DETAILED DESCRIPTION OF THE INVENTION Embodiments of the present invention will now be described in detail. Although some embodiments are described with reference to particular example map layers, the embodiments are not limited thereto.
[0214] Features of the embodiments may be combined with each other unless otherwise specified.
[0215] The techniques disclosed in detail herein may be used in connection with electronic map data. The techniques disclosed herein are operable to enable access to electronic map data and / or to enable map database functions to be performed. In some embodiments, a method and / or processing system uses a hierarchical tiling including tiles of several different sizes, the tiling being set up to take geolocation into account for storing object data while allowing the object data to be accessed in an efficient manner.
[0216] As used herein, "tiling" refers to multiple tiles that combine to cover a target area. Adjacent tiles abut each other along edges and / or at corners, but do not overlap each other outside of the edges and / or corners. Tiling is defined as a tiling where tiles can have a variety of sizes, but the quotient of any pair of tiles for their edge lengths is b n where b is a positive integer greater than 1 and n may be defined such that it can be a positive integer, a negative integer, or 0 depending on the pair of tiles for which the quotient is determined. In particular, the tiling may be defined such that the quotient of any pair of tiles for their edge lengths is equal to 2n, where n may be a positive integer, a negative integer, or 0 depending on the pair of tiles for which the quotient is determined, although tiles may have different sizes.
[0217] The method and processing system may be operable to support tiles ranging from a maximum tile size to a minimum tile size. The maximum tile size may have a maximum tile size edge length at the equator (e.g., the edge length of a square tile shape at the Earth's equator) of 40 km or more, 80 km or more, 160 km or more, or 320 km or more. The minimum tile size may have a minimum tile size edge length (e.g., the edge length of a square tile shape) of 600 m or less, 300 m or less, 150 m or less, or 75 m or less. The method and processing system may be operable to operate on a tiling including a plurality of tiles, the plurality of tiles having a maximum edge length (e.g., for a square) that is 40 km or more and a minimum edge length (e.g., for a square) that is 600 m or less, a maximum edge length (e.g., for a square) that is 80 km or more and a minimum edge length (e.g., for a square) that is 300 m or less, a maximum edge length (e.g., for a square) that is 160 km or more and a minimum edge length (e.g., for a square) that is 150 m or less, or a maximum edge length (e.g., for a square) that is 320 km or more and a minimum edge length (e.g., for a square) that is 75 m or less. The method and processing system may be operable such that the tile size of the plurality of tiles varies as a function of geolocation, while the plurality of tiles continuously cover an area such that any point located within the area is contained in only one tile. The structure of the tiling allows a hierarchical tile structure that determines a path from the root of the hierarchical structure to the leaves to be identified, thereby determining one or several files to be accessed in response to a message received by the processing system.
[0218] It is possible, but not required, that object data associated with a map object be stored only in the tile corresponding to the object's geolocation. For illustrative purposes, a change in the object's geocoordinates may correspond to a shift across a tile boundary. In such a case, the object data may continue to be stored in a file associated with the tile in which the object was previously located, and a reference is added to a file corresponding to another tile in which the new geocoordinates are located. As a further example, a map object may extend across several tiles. In such a case, the entire geometry may be stored in a file corresponding to one of several tiles, thereby serving as an anchor with references contained in other tiles. Thus, while the processing system and method utilize an association between geolocation and file, it is possible and beneficial for the processing system and method to adapt to the use of references to other tiles, for example, in the scenarios described herein.
[0219] As used herein, the term "hierarchical tile structure" refers to a structure that may include or be a quadtree or another decision tree structure, among other things. The hierarchical tree structure may be set up such that for any object in the electronic map data, a bit sequence contained in a unique object identifier for that object defines a path through the hierarchical tile structure that determines which files should be accessed to obtain object data for the particular object.
[0220] The method and processing system may be operable such that object data for map objects of an electronic map is stored in "multiple files." Each of the multiple files may be associated with only one of the multiple tiles. More than two files may be associated with the same tile, e.g., they may relate to different versions of the electronic map for individual tiles.
[0221] As used herein, “object data” refers to data related to a map object. Object data may include or be a map object definition. Processing systems and methods may be operable to support different types of map object definitions, such as a first type (e.g., for defining nodes of a navigable network), a second type (e.g., for defining links of the navigable network), and a third type (e.g., for defining information related to objects of the first or second type, or other objects of a third type). A map object definition of the first type (e.g., “node type”) may specify coordinates (such as, but not limited to, latitude and longitude) of individual nodes. A map object definition of the second type (e.g., “road type”) may specify at least which nodes are part of a road, optionally in association with attributes; note that a “road” may reasonably be specified by a single node, for example, if the road defines a turning area or a roundabout. A third type map object definition (which may also be called a relationship) may specify properties such as a name that may be associated with a first or second type object, or even a third type object (such as the name of a point of interest (POI)), and thus may refer to an object of either the first, second, or third type. Other map object definitions may also be used.
[0222] As used herein, "version" or "versioned" means that a separate entity is provided with respect to a different point in time. Information about a version may be specified as a time point (e.g., relative to a system time source) and / or a version number. Processing systems and methods may be operable such that versioned electronic map data is stored in multiple files, with different files having different versions (e.g., different times at which they were last updated and / or different version numbers). Thus, processing systems and methods may be operable to update electronic map data such that a given file for storing object data for a given tile may have a different version number and / or last update time than another given file for storing object data for another given tile that is different from the given tile. Versioned electronic map data may include not only the latest version but also previous versions. This provides robustness and allows data integrity to be re-established if an error is detected in the latest version.
[0223] As used herein, a "processing system" operable to maintain and / or provide access to electronic map data may be implemented as a distributed system, for example as a distributed architecture for handling requests for object data and / or requests to modify object data.
[0224] The processing systems and methods may be operable to process various types of requests. By way of illustration, the structure and operation of the processing systems and methods may accommodate at least one, some, or all of the following: a request for object data based at least on a unique object identifier; a query for object data for objects located within an area enclosed by a closed boundary specified in the request (such as a "bounding box" query); and a request for data identifying all map objects of which the object specified in the request is a member (such as a "membership" query).
[0225] As used herein, "output" may include output provided via a data interface, and may include output to a map data consumer.
[0226] As used herein, a "map data consumer" refers to any device or system operable to process electronic map data to perform an action. Examples of map data consumers include, but are not limited to, a mobile communication terminal (such as a smartphone), a vehicle processing system, a vehicle, a navigation device, and a wearable. An electronic map data consumer may be operable to perform a control action, for example, to control vehicle actuators and / or a human-machine interface (HMI).
[0227] As used herein, a "map data providing system" or "map data source" acts as a source for changes to electronic map data. A map data providing system may, but need not, be implemented in separate hardware. A map data providing system may also be implemented in a distributed architecture.
[0228] As used herein, "modification" may include or be any one of the following: adding a new map object definition, deleting an existing map object definition, and changing an existing map object definition.
[0229] 1 is a schematic representation of a system 10. The system 10 includes a processing system 20 operable to perform map data related functions and / or execute methods that enable access to electronic map data.
[0230] The processing system 20 comprises at least one interface 21, 22 operable to receive messages originating from one or several map data sources 11 and / or one or several map data consumers 15. The messages 47 may comprise requests 47 for modifications to the electronic map data. Alternatively or additionally, the processing system 20 may be operable to process requests 48 originating from the map data consumers 15.
[0231] The processing system 20 includes a storage system 23. The storage system 23 stores a plurality of files 24, each associated with a tile among the plurality of tiles. At any given time, the plurality of tiles cover an area in a contiguous manner, such that any point within the area is located within a single tile among the plurality of tiles. Each of the files 24 is associated with a single tile among the plurality of tiles. Each of the plurality of files 24 stores object data for map objects that are currently located within the tile, were previously located within the tile, extend into or out of the respective tile, or previously extend into or out of the respective tile. The object data may include object definitions. The object definitions may include object definitions for nodes, paths, and / or relationships. Each path or relationship may include one or several nodes. The electronic map data may include versioned electronic map data, in which several file versions exist for the same tile. Modification of object data may result in the creation and storage of a new file without overwriting an existing file for the same tile.
[0232] The processing system 20 includes a memory system 25. The memory system 25 may include or be a random access memory (RAM). The memory system 25 stores a tile directory 26. The tile directory 26 provides, for any tile, information about the latest version of the file associated with the individual tile prior to the generation of the tile directory 26. The tile directory also identifies the tiling, since it provides a list of tiles (at a given moment in time). To provide lists of tiles at several points in time, different versions of the tile directory may be provided, as described in detail herein. The tile directory 26 may include or be in-memory hash data, such as a hash table in memory. This may achieve particularly efficient access. Modifications to the electronic map data may result in modifications to the tile directory 26. It is possible, but not required, that the tile directory 26 be updated each time the electronic map data in the plurality of files 24 is updated. Preferably, the tile directory 26 is updated by at least one processing circuit 30 at configurable intervals, for example after a configurable time interval has elapsed and / or after a configurable number of modifications of the electronic map data stored in the storage system 23.
[0233] The processing system 20 includes at least one processing circuit 30 operable to process messages 47, 47′, 48 for performance of at least one map data-related function and / or to enable access to electronic map data. The at least one processing circuit 30 may include any one or any combination of the following: an integrated circuit, a semiconductor circuit, a processor, a controller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and a circuit including quantum bits (qubits) and / or quantum gates. The at least one processing circuit 30 is operable to perform the operations described herein.
[0234] At least one processing circuit 30 is operable to perform a request process 31 for processing requests 47, 47' for modification of electronic map data and / or requests 48 for retrieval of parts of electronic map data or information generated thereon.
[0235] The at least one processing circuit 30 is operable to implement an access controller 32 for controlling access to the electronic map data and the plurality of files 24. The access controller 32 may be operable to determine which of the plurality of files 24 should be accessed in response to requests 47, 47′, 48. The access controller 32 may be operable to determine which file and which file version should be accessed based at least on the tile directory 26. The access controller 32 may be operable to access at least a first file of the plurality of files 24 based at least on version information from the tile directory 26 and the requests 47, 47′, 48, the first file having a version determined at least on the version information in the tile directory 26. In response to determining by the access controller 32 that the first file is different from the first file and includes a reference to at least one second file corresponding to a different tile than the first file, the access controller 32 accesses the at least one second file to read object data. As mentioned above, the access controller 32 may determine the file version to be accessed based at least on the tile directory 26. The access controller 32 may be operable to perform these operations of identifying one or more files to be accessed based at least on the tile directory and the request 47, 47′, 48, regardless of whether the at least one processing circuit 30 processes a request 47, 47′ to modify electronic map data or a request 48 to retrieve electronic map data.
[0236] The 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 for storage in the plurality of files 24 in response to a request 47, 47′ for modifying the electronic map data. The updater 33 is operable to interact with the access controller 32, which determines from which of the plurality of files 24 data should be read for inclusion in the new file to be generated. The updater 33 may be operable to generate several additional files in response to a request for modifying an object that shifts object coordinates across a tile boundary, the object data being stored in a file associated with the tile in which the object was located initially or before the change in object coordinates, and a reference to the file being stored in another file associated with another tile in which the object coordinates are located after being shifted across the tile boundary. The updater 33 may also be operable to maintain a record of file version changes, which may be kept in the memory system 25, and / or may be operable to update the tile directory 26 in response to detecting that update criteria for updating the tile directory 26 have been met. The updater 33 may be operable to interact with the interface controller 36 to cause the issuance of an output confirming that the electronic map data has been updated.
[0237] At least one processing circuit 30 is operable to implement a reader 34. The reader 34 is operable to retrieve electronic map data from the plurality of files 24 in response to a request 48 for electronic map data. The reader 34 may be operable to handle various types of requests, such as any one or combination of a request for object data for an object, the request including a unique object identifier, a request for object data for objects located within a closed boundary, the request including information about the closed boundary, and a request for all objects of which the object is a member, the request including a unique object identifier. The reader 34 may be operable to interact with the access controller 32 to determine which one or more files should be accessed to retrieve the respective data. The reader 34 may be operable to interact with the interface controller 36 to cause the generation and output of an output 49. The output 49 may include the data retrieved in response to the request 48. At least one processing circuit 30 may be operable to generate and provide an output 49 for transmission to and / or use by the map consumer 15 from which the request 48 originated.
[0238] At least one processing circuit 30 is operable to implement a tiling controller 35. The tiling controller 35 is operable to control changes made to the tiling and invokes an updater 33 to modify the plurality of files 24 according to determined changes to the tiling. The tiling controller 35 may be operable to determine whether tile splitting should occur and / or whether tile merging is possible based at least on threshold criteria (such as a threshold on file size and / or a threshold on the number of objects to be stored for each tile). In response to tile splitting and / or tile merging, the plurality of files 24 are updated according to the modified tiling. The tile directory is also updated. As described in more detail below, the tiling is maintained to have a hierarchical tile structure that ensures that each of the plurality of files not associated with the minimum tile size supported by the processing system 20 complies with the threshold criteria. The tiling may further be maintained such that the hierarchical tile structure ensures that each tile is a maximum tile that maintains a quadtree structure while ensuring that each of the plurality of files not associated with the minimum tile size supported by the processing system 20 complies with the threshold criteria.
[0239] The at least one processing circuit 30 is operable to implement an interface controller 36. The interface controller 36 may be operable to control the at least one interface 21, 22 to provide an output 49, for example in response to a request 48 for electronic map data.
[0240] 2, 3, 4, and 5 show schematic representations of the tiles of the plurality of tiles forming the tiling and the files of the plurality of files 24, respectively. With reference to FIGS. 2, 3, 4, and 5, the operation of the processing system 20 will be described in more detail. It should be understood that the number of tilings and / or files is merely exemplary and embodiments are not limited thereto. In general, a hierarchical tile structure is set up and, if necessary, modified during operation of the processing system 20 to ensure that the files storing the electronic map data within the plurality of files 24 comply with threshold criteria.
[0241] The processing system 20 is operable to determine a hierarchical tile structure such that there is a tiling 60 that continuously covers an area 69. Each of a plurality of tiles 61, 62, 63, 64, 65, 66, 67, and 68 is associated with a region within the area 69 such that any point within the area 69 is contained within a single tile of the tiling. Tile size (which may be determined, for example, by the edge length of the tiles, which are optionally square in shape) may vary across the tiling. For illustrative purposes, tiles 61 and 62 have an edge length that is half the edge length of tile 68. Tiles 63, 64, 65, and 66 have edge lengths that are half the edge lengths of tiles 61, 62, and 67, respectively, and one-quarter the edge length of tile 68.
[0242] The plurality of files 24 includes a set 71 of first files, each associated with a tile 61. Different first files in the set 71 correspond to different points in time, i.e., different versions of the electronic map data change over time, with the most recent first file 71' corresponding to the most recent revision. The plurality of files 24 includes another set 72 of files, each associated with a tile 62. Different files in the set 72 correspond to different points in time, i.e., different versions of the electronic map data change over time, with the most recent file 72' corresponding to the most recent revision. Similarly, the plurality of files 24 may include a set 73 of files associated with another tile 63, a further set 74 of files associated with a further tile 64, a further set 77 of files associated with a further tile 67, and a still further set 78 of files associated with a still further tile 68. The most recent file in each set is indicated by an apostrophe, with files 73', 74', 77', and 78' being the most recent files in the respective sets 73, 74, 77, 78.
[0243] The tiling 60, which defines multiple tiles 61, 62, 63, 64, 65, 66, 67, and 68, is determined such that, for any tile having a tile size greater than the minimum tile size supported by the processing system 20, each of the multiple files 24 associated with any such tile complies with the threshold criteria. Thus, it may be necessary to dynamically adjust the tiling 60 as map objects are modified (e.g., added, changed, or deleted). In other embodiments, the tiling 60 need not be adjusted during operation of the processing system 20, thereby accommodating that some of the files may no longer comply with the threshold criteria at some point during operation of the processing system 20. For tiles corresponding to the minimum tile size supported by the processing system 20, it is not necessary for the associated files to comply with the threshold criteria. By relaxing the threshold criteria at the minimum tile scale, a fixed-length bit sequence as part of a new node object identifier may be used to uniquely determine the tile whose associated file should be accessed, e.g., to retrieve object data.
[0244] None of the tiles in the tiling need have the minimum tile size supported by processing system 20. The minimum tile size is generally determined by the length of the bit sequence used to provide a unique identifier for the tile based at least on the hierarchical tile structure, up to the minimum tile size, if used. However, even if all tiles are larger than the minimum tile size supported by processing system 20, a subset of the bits in the bit sequence still provides a unique identification of the tile. Thus, all files in the plurality of files 24 comply with the threshold criterion if all tiles have a tile size larger than the minimum tile size supported by processing system 20 (which is often the case in supporting more than 10 hierarchical levels of tile, for example). Note that the minimum tile size supported by processing system 20 and / or the smallest tile size possible in the hierarchical tile structure may be smaller than any of the tiles in the tiling.
[0245] As a result of the threshold criteria, tile size is variable as a function of geolocation within area 69. To illustrate, a greater number of map objects normalized by area and / or higher storage space demands may be greater in the area occupied by tiles 63, 64, 65, 66 compared to the area occupied by tiles 61, 62, 67, 68, and tiles may be larger without any of the files in the associated sets 71, 72, 77, 78 violating the threshold criteria.
[0246] Changes in the number and / or storage space requirements of map objects may require tiling during operation of the processing system, which is explained with reference to Figures 2 and 3.
[0247] Considering a scenario in which the addition of a map object to the area covered by tile 67 results in an update of associated file 77' that violates the threshold criteria, the processing system divides tile 67 into an integer number of smaller tiles 67a, 67b, 67c, 67d of the same size and offset from one another so as to contiguously cover the area previously covered by tile 67 (FIG. 3). Following the tile division, sets of files 77a, 77b are created, each associated with an associated one of the smaller tiles 67a, 67b, 67c, 67d. The set of files 77 associated with larger tile 67 is maintained in set of files 24 to provide access to historical electronic map data and / or enable processing system 20 to revert to previous versions of multiple files if referential and / or semantic integrity issues are detected.
[0248] 2 and 3, the sets of files associated with different ones of the tiles in tiling 60 may differ in number. For illustrative purposes, the number of different files included in the plurality of files for one tile (such as tile 61) may differ from the number of different files included in the plurality of files for another tile (such as tiles 62, 63, 64, and 68). Thus, the version number of the most recent file may differ from tile to tile. For illustrative purposes, the most recent file 71′ of a set of files 71 associated with a tile (such as tile 61) may have a different version number than the most recent file 72′ of another set of files 72 associated with another tile (such as tile 62).
[0249] The files included in the plurality of files are associated with tiles and therefore linked to different regions. However, while a file associated with a tile may, and typically will, store object data for an object having geocoordinates located in the area of the associated tile, the object data may also be stored in a different tile. This may 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 a tile boundary. In such a case, the object data may remain in the file associated with the tile in which the object was originally located, and another file associated with a different tile in which the object is located after the coordinate shift contains a reference to the file associated with the tile in which the object was originally located. Thus, the plurality of files 24 may include one or more files containing references to other files associated with different tiles.
[0250] FIG. 4 illustrates that a first file 91 is associated with a first tile 81. The first file 91 stores object data 93 for objects located within the first tile 81, i.e., objects having geocoordinates located within the first tile 81. For illustrative purposes, nodes 82, 83, 84 and roads 86, 87, 88, as well as other objects such as traffic signs or points of interest 89, may each have geocoordinates located within the first tile, and the individual object data 93 is stored in the first file 91. However, for another object 85 having geocoordinates located within the first tile 81, the first file 91 includes a reference 94 to object data 95 contained in a second file 92 associated with a second tile 82. The second tile 82 may be adjacent to the first tile 81, but need not be. Such a situation may occur, for example, if the node 85 was originally located within the second tile 82 and a coordinate shift caused the node 85 to move across a tile boundary into the first tile 81.
[0251] Thus, to provide efficient access to versioned electronic map data using a bit sequence that specifies a path through the quadtree (as described in more detail with reference to Figures 5 and 6), the file associated with the tile in which an object's current geocoordinates are located need not store the object definition for that object. This file may contain a reference to another file that is useful for retrieving the object data. Similarly, a file (such as file 92) may store object data that includes object definitions that include geocoordinates outside the tile (such as tile 82) with which file 92 is associated.
[0252] Such an arrangement of multiple tiles and / or multiple files provides various advantages: by way of illustration, efficient access is provided for various types of requests, such as queries by object identifier, queries by area which may specify closed boundaries of an area, and / or membership queries which return data about all objects that are members of a map object specified in a particular query.
[0253] Each object in the electronic map data has a unique object identifier that includes a bit sequence that determines the path through the hierarchical tile structure to follow to identify the tile whose associated file should be accessed in response to a message specifying the unique object identifier, as will now be further described.
[0254] FIG. 5 shows a schematic representation of a unique object identifier 100 for an electronic map object. The unique object identifier 100 includes a bit sequence 101 configured to be used by a processing system to identify a path through a hierarchical tile structure to follow to identify the tile in which an associated file stores object data. The bit sequence 101 is configured to be used by a processing system to identify a path through a hierarchical tile structure that may be represented by or stored in a tile directory. The bit sequence 101 may have a length that depends on the maximum tile size for the minimum tile size supported by the processing system 20. As explained above, it is not necessary for a tiling to have tiles that are actually as small as the minimum tile size supported by the processing system 20. Nevertheless, the bit sequence 101 is long enough to completely identify the tile in which object data or a reference to that object is stored, even if multiple tiles include tiles that are as small as the minimum tile size supported by the processing system 20. For tiles larger in size than the minimum tile size supported by the processing system 20, the bit sequence 101 includes a first set of bits 104 that specifies a path through the quadtree (or other hierarchical tile structure) up to the actual tile size, and a second set of bits 105 that specifies a continuation of the access path through the hierarchical tile structure (e.g., the quadtree) that becomes relevant only when the tile size is reduced (e.g., in a tile splitting operation caused by an increase in the number of objects or storage space) to the minimum tile size supported by the processing system.
[0255] With reference to tiling 60, unique object identifier 100 includes bit sequence 101, which is followed by a first set of bits 104. First set of bits 104 uniquely identifies a tile 63 having the minimum tile size currently used in tiling 60, but which still has an edge length greater than the minimum edge length 103 of the minimum tile size supported by the processing system. Thus, first set of bits 104 is sufficient to determine, for tiling 60, the tile with which the file to be accessed is associated. Second set of bits 105 provides additional information needed for tilings having finer (i.e., smaller) tiles, such as tile 63b. Second set of bits 105 need not be used to determine, for tiling 60, the tile with which the file to be accessed is associated. However, because tiling 60 may be modified, second set of bits 105 may have the potential to, and is operable to, uniquely determine the tile with which the file to be accessed is associated, even if it is a tile with the minimum tile size supported by processing system 20.
[0256] Thus, the method and processing system disclosed herein is operable to accommodate and accommodate various access operations, while the bit sequence 101 comprised of the unique object identifier is useful for accessing multiple files 24 for efficient electronic map data access, and accommodates changes in multiple tiles (e.g., due to tile splitting and / or tile merging) that may occur during operation of the processing system 20.
[0257] FIG. 6 is a schematic representation of a hierarchical tile structure 110 organized as a quadtree 110. The hierarchical tile structure 110 may be defined by a tile directory 26 (as further described with reference to FIG. 8 below). Any node in the hierarchical tile structure 110 includes either zero or four child nodes. The root node 114 represents the entire area covered by a tiling including multiple tiles. If present, the four child nodes of any node represent the four quadrants located within the tile associated with the respective node. The bit sequence 101 identifies, for any node having child nodes, which path through the hierarchical tile structure (e.g., quadtree) needs to be followed by the at least one processing circuit 30 to identify the tile with which the file to be accessed is associated. For illustrative purposes, for a map object, the bit sequence 101 defines a path 111 through the hierarchical tile structure 110, which terminates in a leaf node representing a tile of multiple tiles. The processing system 20 is operable to access the file associated with this tile to access object data for the object having the distinct bit sequence 101. For different map objects, the different bit sequences 101 define different paths 112 through the hierarchical tile structure 110, which terminate at different leaf nodes representing different tiles of the plurality of tiles. The processing system 20 is operable to access different files associated with the different tiles to access object data for the different objects having the distinct, different bit sequences 101. Tile splitting and / or tile mergers cause changes in the hierarchical tile structure 110. For illustrative purposes, as illustrated schematically by the additional child node 113, tile splitting of a tile associated with a previous leaf node of the hierarchical tile structure 110 results in the creation of four new leaf nodes, each a child node of the previous leaf node. Thus, the depth 115 of the hierarchical tile structure (which determines the number of nodes to be traversed to reach a leaf node) may vary from region to region and / or as a function of time.
[0258] In general, the bit sequence 101 in the unique object identifier 100 is configured to be used by a processing system to determine a path through a quadtree or other hierarchical tile structure to be traversed to efficiently identify within the tile directory the tile with which the file to be accessed is associated. The tile directory 26, in combination with the bit sequence 101, determines at what level within the hierarchical tile structure 110 the tile at which a file (first file) should access to perform an access operation. The processing system and method are operable such that even after the tiling has been dynamically changed (e.g., by performing a tile merger and / or tile split operation), the (subsequently updated) tile directory, in combination with the same bit sequence 101, determines at what level within the hierarchical tile structure 110 the updated tile at which an updated file (first file) should access to perform an access operation.
[0259] In general, different file versions may (and often do) exist for a tile. Tile directory 26 provides information about such different versions and is accessed by at least one processing circuit 30 to determine which of several files should be accessed for an identified tile based at least on hierarchical tile structure 110.
[0260] 7 illustrates the operation of the processing system 20 in response to messages 124, 125, 126, each of which includes a request to modify electronic map data. The modifications may each include any one or any combination of changing existing map objects, adding new map objects, and / or deleting pre-existing map objects.
[0261] The processing system 20 is operable in response to the message 124 to execute an update process 121 that generates an updated file 72″ from the file 72′ of the plurality of files, the updated file 72″ being generated by modifying the file 72′ based at least on the message 124. The update process 121 may optionally include modifying the plurality of tiles (such as by a tile merger and / or tile splitting) and / or generating an updated tile directory from the tile directory 26.
[0262] The processing system 20 is operable in response to the message 125 to execute a further update process 122 that generates an updated further file 74″ from the further file 74′ of the plurality of files, the updated further file 74″ being generated by modifying the further file 74′ based at least on the message 125. The further update process 122 may optionally include further modification of the plurality of tiles (such as by a tile merger and / or tile splitting) and / or generating a further updated tile directory from the tile directory 26.
[0263] The processing system 20 is operable in response to the message 126 to execute a still further update process 123 that generates an updated still further file 73″ from the still further file 73′ of the plurality of files, the updated still further file 73″ being generated by modifying the still further file 73′ based at least on the message 126. The still further update process 123 may optionally include still further modification of the plurality of tiles (such as by a tile merger and / or tile splitting) and / or generating a still further updated tile directory from the tile directory 26.
[0264] The processing system 20 is operable to process the messages 124, 125, 126 to correct the electronic map data even if the messages 124, 125, 126 are received at irregular times. For illustrative purposes, a time interval 127 between the start of an update process 121 and the start of a further update process 122 that immediately follows the update process 121 may be different from a further time interval 128 measured between the start of the further update process 122 and a yet further update process 123 that immediately follows the further update process 122.
[0265] FIG. 8 shows a schematic representation of the data contained in an exemplary tile directory, where tile directory data 131 represents (part of) the tile directory for the tiling of FIG. 2 and further tile directory data 135 represents (part of) the further tile directory for the tiling of FIG. 3.
[0266] The left-most columns of the table in Figure 8 represent the reference numbers used to designate the tiles in Figures 2 and 3, respectively. These left-most columns are provided for ease of reference and understanding of Figure 8. These left-most columns do not form part of or are not included in the tile directory, but merely serve to aid in understanding the present disclosure.
[0267] The tile directory data 131 and the further tile directory data 135 each include a unique tile identifier 132, 136, each unique for one of the tiles in the respective tiling. Each unique tile identifier 132, 136 may have significant digits that depend on and / or reflect the size (e.g., edge length) of the tile to which the unique tile identifier applies. Dynamic changes to the tiling due to tile mergers and / or tile splitting change the significant digits of the unique tile identifier. For illustrative purposes, tile splitting increases the significant digits of the unique tile identifier, as shown for tiles 67a, 67b, 67c, and 67d in the further tile directory 135. The significant digits of the unique tile identifiers in the respective tile directories are configured to be used by the processing system in combination with the object identifier bit sequence 101 to determine the file (e.g., the first file) to be accessed in an access operation.
[0268] The tile directory data 131 and further tile directory data 135 each include version data 133, 137. The version data identifies, for each tile, the version of the individual tile and / or file associated with the tile. The versions may be different for different tiles of the same tiling.
[0269] 9 is a flowchart of a method 140 for performing map data related functions and / or providing access to electronic map data. Method 140 may be performed automatically by processing system 20.
[0270] At 141, the processing system 20 receives a request. The request may include a request to obtain electronic map data and / or a request to modify electronic map data. The request may have any of a variety of supported request types, such as a request for object data for an object identified by a unique object identifier, a request for all objects located within an area enclosed by a closed boundary defined in the request, and / or a request for information about all objects of which the object identified in the request is a member.
[0271] At 142, the processing system obtains file information and version information for the file to be accessed. Obtaining the tile information may include using the tile directory 26 to identify tiles and associated files within the quadtree. Obtaining the version information may include using the tile directory 26 to obtain the version information. To obtain the version information for the correct file, the processing system 20 may identify the tile with which the one or more files to be accessed are associated. This may include using the bit sequence 101 and unique object identifier 100 in conjunction with the tile directory to determine the tile, and then using the tile directory 26 to obtain the version information. Alternatively or additionally, the processing system 20 may identify tiles that overlap the area specified in the request based at least on the closed boundary of the area (optionally in conjunction with the tile directory 26 and the hierarchical tile structure defined thereby). The processing system 20 may then use the tile directory 26 to obtain the version information.
[0272] At least one file of the plurality of files 24 is accessed at 143. The access operation at 143 may be based at least on version information contained in the tile directory 26 and one or more tiles identified based at least on the request and the hierarchical tile structure in which the tiling is organized.
[0273] At 144, the processing system 20 performs or enables the performance of an action. The action may include modifying the electronic map data, including generating at least one new file and storing the at least one new file in addition to pre-existing files, based at least on the received request. Alternatively or additionally, the action may include generating an output and controlling at least one data interface to communicate the output in response to the request.
[0274] 10 is a flowchart of a method 145 for performing map data related functions and / or providing access to electronic map data. Method 145 may be performed automatically by processing system 20.
[0275] Process blocks 141 and 142 of method 145 may be implemented as described above in connection with method 140 of FIG.
[0276] At process block 146, processing system 20 accesses a first file of the plurality of files 24. Accessing the first file may include determining a first tile with which the first file to be accessed is associated based at least on the hierarchical tile structure. Accessing the first file may further include determining version information based at least on the tile directory and using the version information to identify the first file to be accessed.
[0277] At process block 147, processing system 20 determines whether the first file contains a reference to a second file associated with a second tile that is different from the first tile.
[0278] In response to determining at process block 148 that the first file includes a reference to the second file, processing system 20 reads the object data from the second file.
[0279] In response to determining at process block 149 that the first file does not contain a reference to a second file associated with the individual object, processing system 20 reads the object data from the first file.
[0280] At process block 144, an action is caused or enabled based at least on the retrieved object data. The object data may include at least coordinates or other information associated with at least one electronic map object. Process block 144 may be performed as described above in connection with method 140 of FIG. 9.
[0281] 11 , 12 and 13 illustrate an exemplary tiling 150 including a plurality of tiles 151, 152, 153, 154, with reference to which the operation of the processing system 20 will be described in further detail. The electronic map data includes object data including object definitions for several map objects, such as map objects including a first node 161, another node 162, a further node 163, and / or a node, such as a road 164 defined with respect to its constituent nodes 161, 162. The object definition of the first node 161, including its geocoordinates, may be stored in a first file associated with the first tile 151. The object definition of the second node 162, including its geocoordinates, may be stored in a second file associated with the second tile 152. The geometry of the road 164 may be stored in one of the files associated with the tiles 151, 152, such as the first file associated with the first tile 151. The coordinate shift 165 (FIG. 12) may shift the geo-coordinates of the first node 161 to a new location, such that the shifted first node 161 is located in a second tile 152 that is different from the first tile 151. Taking into account the bit sequence 101 included in the unique object identifier 100, the updated geo-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 to include a reference to the first tile 151. Similarly, the resulting change in the geometry of the road with the modified geometry 164' may be stored in the updated first file associated with the first tile, and a reference is included in the updated second file associated with the second tile 152. The tile directory 26 may be updated accordingly.
[0282] A reference to the first tile 151 may also be included in a third file associated with the third tile 153 if the path 164, 164′ includes all three nodes 161, 162, 163. This facilitates efficient handling of area-based requests, such as requests to identify closed boundaries surrounding an area of interest.
[0283] When node 163 is deleted (Figure 13), this causes an update of the geometry of road 164, 164' to a modified road geometry 164" stored in a further updated file associated with the first tile 151. The road geometry may be updated in the first file associated with the first tile 151 to take into account this modification. Node 163 and associated object data may be deleted from a third file associated with the third tile 153. The road definition in the further updated first file is changed by removing node 163 from the road now having road geometry 164". The tile directory 26 may be updated accordingly.
[0284] 14 is a flowchart of a method 170 for performing map data related functions and / or providing access to electronic map data. Method 170 may be performed automatically by processing system 20.
[0285] Process blocks 141, 142 and 143 of method 170 may be implemented as described above in connection with method 140 of Figure 9. The request received at 141 may include a request for modification of electronic map data.
[0286] At process block 171, processing system 20 determines that changes should be made to the electronic map data. The changes are determined based at least on the received request and in relation to multiple files in the hierarchical tile structure. Determining that changes should be made may include determining whether geocoordinates of map objects shift across tile boundaries. Alternatively or additionally, determining that changes should be made may include determining whether a tile merger or tile splitting should be performed.
[0287] In process block 172, the processing system 20 generates a new first file or several new first files from the existing first file to reflect the changes to the electronic map data specified by the request received at 141. Generating the new first file may include generating the new first file such that it includes updated geo-coordinates of the map object. Generating the new first file may alternatively or additionally include generating the new first file such that it includes at least one map object (such as a node, a road, or a relationship) that was added to the electronic map data based at least on the request received at 141. Generating the new first file may alternatively or additionally include generating the new first file such that it includes updated nodes of the map object on which it is based or a relationship, for example.
[0288] In process block 173, processing system 20 may optionally generate one or more updated second files, which may include references to the first file, especially if the changes shifted object coordinates across tile boundaries.
[0289] At process block 174, the version information is updated, which may include updating the tile directory and / or creating a record indicating the new version created at process blocks 172, 173.
[0290] The modification of the electronic map data may further include modification of the tiling, including tile mergers and / or tile splitting, which is explained in more detail with reference to Figures 15 and 16.
[0291] FIG. 15 illustrates an exemplary tiling 150. Compared to the electronic map data illustrated in FIG. 11, the addition of a map object 165 triggers tile splitting, whereby the tile 152 is split into multiple smaller tiles, such as a smaller tile. The tile splitting is selectively initiated in response to a determination by the processing system that the addition of the map object 165 causes a second file associated with the (larger) second tile 152 to no longer comply with a threshold criterion. The threshold criterion may include an object number-based threshold criterion and / or a file size threshold criterion. Thus, the processing system may dynamically adapt the tiling 150, and therefore the hierarchical tile structure representing the tiling 150, to ensure that at least all files associated with tiles larger than the minimum tile size supported by the processing system 20 comply with the threshold criterion.
[0292] FIG. 16 illustrates a threshold comparison based at least on which a tile splitter or tile merger is initiated during operation of the processing system 20. The quantity used in the threshold comparison is shown along axis 180. Axis 180 may represent the number of map objects in a tile and / or file size. Responsive to determining that a modification of the electronic map data results in a tile or file that does not comply with the threshold criteria (as illustrated generally by symbol 183), a modification of the tile and the hierarchical tile structure representing the tile is triggered (as illustrated generally by symbol 182) so that the corresponding tile after modification complies with the threshold criteria. To illustrate, if the addition of map objects to the area covered by the tile causes the number of map objects to reach a numerical value 183 that is greater than threshold 181, then tile splitting is performed such that any of the resulting smaller tiles into which the original tile is split have a number 182 of map objects, where number 182 may vary for each smaller tile but is less than threshold 181 for each smaller tile. Alternatively, or additionally, if the addition or modification of map objects within the area covered by a tile causes the file associated with the tile to have a file size 183 that is greater than the file size threshold 181, then the tile division is performed such that the file associated with any of the smaller tiles obtained by dividing the original tile has a file size 182, which may vary for each smaller tile, but is less than the threshold 181 for each of the smaller tiles.
[0293] Although tile splitting has been described, tile merging may also be performed in response to detecting that combining several smaller tiles into a larger tile still adheres to threshold criteria. This may occur, for example, when a map object is deleted.
[0294] The 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 tiling. Thus, the at least one bit sequence 101 of the object identifier 100 continues to fulfill its function even after the processing system performs a tile merger and / or tile split to modify the tiling. This is achieved by the hierarchical structure of the tiling. The organization of the tile identifier (FIG. 8) contributes to the ability of the bit sequence 101 of the object identifier 100 to fulfill its function even after the processing system performs a tile merger and / or tile split to modify the tiling.
[0295] 17 is a schematic block diagram representation of at least one processing circuit 30 of processing system 20. Access controller 32 may include both a tile directory access controller 191 operable to access tile directory 26 to obtain version information and a file access controller 192 operable to access desired ones of plurality of files 24. Access controller 192 may be operable to determine the file to be accessed based at least on both the version information in tile directory 26 and a hierarchical tile structure that determines which tile the file to be accessed is associated with.
[0296] The updater 33 may include an object data updater 193 operable to update object data by causing the generation of new files and, optionally, by generating files that contain references to other files. The updater 33 may include a tile directory updater 194. The tile directory updater 194 is not required to update the tile directory after each map data revision, but may keep a record of the updates, and the tile directory updater 194 causes the updating of the tile directory in response to trigger criteria, which may be configurable (such as the expiration of a timer, which may be configurable, and / or criteria based at least on a revision count threshold against which the number of revisions is compared).
[0297] The tiling 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 of the electronic map data requires that at least one tile be split into an integer number of smaller tiles to ensure that the associated file complies with the threshold criteria. Alternatively or additionally, the tiling controller 35 may 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 of the electronic map data enables merging of some tiles into a larger tile associated with the parent node of some tiles in the hierarchical tile structure and that the larger tile complies with the threshold criteria. This may keep the number of tiles to a minimum while ensuring compliance with the threshold criteria for all tiles, rather than the minimum tile size supported by the processing system 20.
[0298] The interface controller 36 may include an output generation controller 197 operable to control at least one data interface to provide an output. The output generation controller 197 may be operable to cause an output to be provided in response to a request for a modification of electronic map data, the output confirming that the modification has been implemented. Alternatively or additionally, the output generation controller 197 may be operable to cause an output to be provided in response to a request for electronic map data, the output including the requested electronic map data.
[0299] FIG. 18 illustrates a signaling flow in a system 200 including a processing system 20 and one or several map data providing systems 11, 12. Each of the one or several map data providing systems 11, 12 may 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 the request 201, the processing system 20 is operable to perform identification 202 of a tile with an associated file from the plurality of files 24, the tile to be accessed in response to the request 201. The tile identification 202 may be performed based at least on a hierarchical tile structure representing the tiling, as reflected in the tile directory 26. The processing system 20 may further be operable to determine, based at least on the tile directory 26, which file version for the determined tile to be accessed. The processing system 20 may be operable to perform verification 203 to determine whether the request for modification requires a tile split or tile merge operation. Verification 203 may include determining whether the requested modification results in a violation of threshold criteria and initiating a modification of the tiling in response to such determination. The processing system 20 may be operable to perform file generation 204, generating one or several additional files to be stored in addition to pre-existing files, such that each newly generated file is associated with only one of the tiles of the tiling. The processing system 20 may further be operable to update the tile directory and / or log the updates in conjunction with the tile directory. The processing system 20 is operable to generate and provide output 205 confirming that the request for modification has been implemented. The processing system 20 is operable to enable access 206 to the electronic map data being modified in response to the request.Processing system 20 may be operable to enable the performance of map data related functions such as, but not limited to, a driver assistance function, an advanced driver assistance function, an autonomous driving function, or another vehicle control operation.
[0300] FIG. 19 illustrates a signaling flow in a system 210 including a processing system 20 and one or several map data consumers 15. The processing system 20 is operable to receive a request 211 originating from a map data consumer 15. The request may be selected from any of a variety of request types, such as a request for object data of a specific object (which may be identified by its unique object identifier 100), a request for object data of objects located within an area specified by a closed boundary included in the request, or a request for information about all objects that are members of an object (which may be identified by its unique object identifier 100). The processing system 20 is operable to perform an access operation 212, which includes identifying tiles with which one or more files to be accessed are associated. Furthermore, the processing system 20 may determine the version of the file to be accessed based at least on the tile directory 26. The processing system 20 is operable, depending on the request 211, to provide an output 213 based at least on the retrieved electronic map data. At least one map data consumer 15 may be operable to perform a map data-related function based at least on the output 213. The map data-related function may include, for example, but is not limited to, a driver assistance function, an advanced driver assistance function, an autonomous driving function, or another vehicle control operation.
[0301] 20 is a flowchart of a method 220 for performing map data related functions and / or providing access to electronic map data. Method 220 may be performed automatically by processing system 20.
[0302] At process block 221, the processing system 20 receives a request to modify electronic map data.
[0303] At process block 222, processing system 20 determines which file of plurality of files 24 is to be accessed. This may include determining, based at least on the request, the tile with which the file to be accessed is associated. This may further include determining, based at least on the tile and tile directory 26, the version of the file to be accessed.
[0304] In process block 223, the processing system 20 determines whether the tiling should be modified. Determining whether the tiling should be modified may include determining whether a new file generated by the processing system 20 to reflect the modifications to the electronic map data specified by the request received in process block 221 still adheres to a threshold criterion. The threshold criterion may be based at least on the number of map objects for the tile or profile and / or on file size. Determining whether the tiling should be modified may further include determining by the processing system 20 whether the modifications to the electronic map data specified by the request received in process block 221 will allow some tiles to be merged with their parent tile (according to a hierarchical tile structure, such as a code tree structure) while ensuring that the associated files adhere to the threshold criterion.
[0305] In response to determining that the tiling should be modified, tile merging and / or tile splitting is performed at process block 224. Tile merging and / or tile splitting is performed according to a hierarchical tile structure, for example, by dividing 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 with their parent tiles in the quadtree structure. Process block 224 is selectively executed only if it is determined that the tiling should be modified.
[0306] At process block 225, processing system 20 generates updated files without deleting the pre-existing files. Optionally, processing system 20 may generate an updated tile directory. As an alternative to generating an updated tile directory, processing system 20 may maintain a record of the new version generated for subsequent use in updating the tile directory.
[0307] At process block 226, the processing system controls at least one data interface to modify the map data for use by one or several map data consumers.
[0308] 21 is a schematic block diagram representation 230 for further illustrating the operation of the processing system 20 with respect to tile directories and their updates. In addition to the tile directory 26, the processing system 20 may store one or several historical tile directories 236, 236′. The one or more historical tile directories correspond to revisions of the electronic map data prior to the most recent revision. Maintaining one or several historical tile directories facilitates access to previous versions of the electronic map data. Maintaining one or several historical tile directories also facilitates the processing system 20 to revert to previous versions of the electronic map data in response to detecting semantic and / or referential integrity problems.
[0309] The processing system 20 may further maintain transaction data 231 indicating revisions to the electronic map data, in particular the generation of new files for inclusion in the plurality of files 24, that have occurred since the generation of the most recent tile directory 26. Updates to the tile directory 26 may be generated according to configurable criteria, for example, after a period of time that may be configurable and / or after a number of revisions that may be configurable. Updates to the tile directory 26 may then be performed based at least on the transaction data 231. The transaction data 231 is also useful for determining which file versions should be accessed.
[0310] 22 is a flowchart of a method 240 for performing map data-related functions and / or providing access to electronic map data. Method 240 may be performed automatically by processing system 20. Method 240 may be used in combination with any of the other methods disclosed herein, although method 240 focuses on tile directory-related aspects of the process.
[0311] At process block 241, the processing system 20 receives a request to modify electronic map data.
[0312] 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, method 220, described in detail with reference to FIG.
[0313] In process block 243, processing system 20 determines whether a first criterion is met. The first criterion may be a first configurable criterion. The first criterion may be a configurable time-based or revision-count-based first criterion.
[0314] In response to determining that the first criterion is met at process block 244, processing system 20 generates an updated tile directory. Generating the updated tile directory may include generating an updated tile directory and maintaining the updated tile directory in memory in addition to the historical tile directory. The updated tile directory may be generated based at least on the most recent tile directory preceding generation process block 244, in combination with transaction data 231 available at the time of generation of the updated tile directory. The method may then proceed to process block 245.
[0315] In process block 245, processing system 20 determines whether a second criterion is met. The second criterion may be a second configurable criterion. The second criterion may be a configurable time-based or revision count-based second criterion.
[0316] In response to determining that the second criterion is met at process block 246, processing system 20 deletes at least one history tile directory, and optionally several history tile directories. Processing system 20 may delete the oldest of several tile directories and / or subsets that ensure that historical records remain available. This allows history tile directories to remain available for a longer time span in the past, at the expense of reduced time resolution due to the deletion of a subset of the history tile directories.
[0317] 23 illustrates schematically the operation of updating a tile directory as a function of time along a time axis 250 by the processing system 20. The filled circles indicate the generation 251, 252 of an updated tile directory. The open circles indicate the storage of revision data 253 within the transaction data 231. A time-based criterion (such as the expiration of a period 254, which may be configurable by control input via one or several interfaces 21, 22) may trigger the generation 252 of an updated tile directory. The previously generated tile directory may be maintained for the time being.
[0318] The processing system 20 and / or method utilizes tiling with a hierarchical tile structure and associated multiple files to facilitate and support the processing of various types of requests for electronic map data. Illustratively, requests for area-specific electronic map data and / or membership requests for all map objects of which the identified object is a member may be processed efficiently. This is described in more detail with reference to Figures 24, 25, 26, and 27.
[0319] 24 is a schematic representation of a tiling including a first tile 151, a second tile 152, a third tile 153, and a fourth tile 154. The electronic map data includes nodes 265, 266, and 267 and roads 261 and 263, and the road geometries are stored in the second tile 152 and the third tile 153 where the nodes 262 and 264 of the respective roads 261 and 263 are located. Because the road 261 overlaps not only the second tile 152 but also the first tile 151 and the fourth tile 154, the files associated with the first tile 151 and the fourth tile 154 include references to the second tile 152 (or the files associated therewith). Because the road 263 overlaps not only the third tile but also the fourth tile 154, the file associated with the fourth tile 154 includes a reference to the second tile 152 (or the files associated therewith).
[0320] The processing system 20 is operable to process a request identifying a closed boundary 269, which may be rectangular. In response to such a request, the processing system 20 may determine all map objects that overlap the area enclosed by the closed boundary 269. A file system in which files contain references to other files associated with different tiles allows this operation to be performed in an efficient manner. More specifically, the processing system 20 may determine that the roads 261, 263 extend into the first tile 151 and / or the fourth tile 154 based at least on the files associated with the first tile 151 and the fourth tile 154 that the rectangular closed boundary 269 overlaps. Thus, by reference, the processing system 20 can efficiently determine object data for all map objects that overlap the area identified by the closed boundary 269.
[0321] 25 is a flowchart of a method 270 for performing map data related functions and / or providing access to electronic map data. Method 270 may be performed automatically by processing system 20.
[0322] At process block 271, processing system 20 receives a request for electronic map data. The request includes data specifying a closed boundary. The request may specify a rectangular boundary or may be a request to processing system 20 to return map objects that overlap a rectangular area defined by the rectangular boundary.
[0323] At process block 272, processing system 20 determines tiles of the plurality of tiles that overlap an area enclosed by the closed boundary.
[0324] At process block 273, processing system 20 determines version information for the file to be accessed based at least on tile directory 26.
[0325] At process block 274, the processing system 20 accesses the file according to the version information, and the accessed file is associated with a tile that overlaps the area enclosed by the closed boundary, or the file associated with the tile that overlaps the area is associated with the tile that contains the reference.
[0326] At process block 275, processing system 20 generates a response. Processing system 20 generates the response based at least on the object data read from the file accessed at process block 274. Processing system 20 may be operable to perform data interface control operations to generate and output the response.
[0327] FIG. 26 is a schematic representation of a tile 81 and the map objects stored in association with the tile 81. The map objects include nodes 82, 83, 84, 85, roads 86, 87, 88, and / or relationships 89. Node 82 may be a member of one or several roads (e.g., road 86) and / or one or several relationships (e.g., traffic signs or POIs 89) (in the sense referenced by the definition). A file 91 associated with tile 81 contains object data 93 for at least some of the map objects 82-89. File 91 may contain one or several references to other tiles (or files associated with such other tiles). File 91 may contain membership data 96 that specifies, for any map object, all other map objects of which the former is a member. For illustrative purposes, membership data 96 may specify, for node 81, the road methods 82 and / or any relationships 89 of which node 81 is a member. Processing system 20 may be operable to access and utilize membership data 96 to provide responses to requests for map objects of which the identified map object is a member.
[0328] 27 is a flowchart of a method 280 for performing map data related functions and / or providing access to electronic map data. Method 280 may be performed automatically by processing system 20.
[0329] 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 of which the map object identified in the request is a member. The request may identify the target object by its unique object identifier 100.
[0330] At process block 282, processing system 20 determines a tile of the plurality of tiles that should be accessed based at least on the unique object identifier 100 of the target object in conjunction with the tile directory.
[0331] At process block 283 , processing system 20 determines version information for the file to be accessed based at least on tile directory 26 , the file being associated with the tile determined at process block 282 .
[0332] At process block 284, processing system 20 accesses the file according to the version information, and the accessed file is associated with the tile identified at process block 282 based at least on the unique object identifier (more specifically, based at least on its bit sequence 101). Accessing the file includes accessing at least membership data to determine the map objects of which the target map object identified in the request is a member.
[0333] At process block 285, processing system 20 generates a response. Processing system 20 generates the response based at least on the object data read from the file accessed at process block 284. Processing system 20 may be operable to perform interface control operations to generate and output the response. The response may identify map objects of which the target map object is a member. The response may also optionally include additional object data about these map objects, such as geolocation.
[0334] Tiling with a hierarchical tile structure provides various advantages, such as providing efficient accessibility of electronic map data used by the processing system 20 to meet various types of requests. To support efficient accessibility, the tiling and the multiple files each associated with one of the tiles are determined in a way that facilitates handling of the files by the processing system (regardless of rate or correct operation performed) while keeping the number of tiles as small as possible. This applies during the initial generation of the hierarchical tile structure and the multiple files, and for modifications made during operation of the processing system 20 when the electronic map data is modified.
[0335] 28 is a flowchart of a method 290 for performing map data related functions and / or providing access to electronic map data. Method 290 may be performed automatically by processing system 20. Method 290 may be performed both during the initial generation of tiling and files and during modification of the electronic map data as they are modified.
[0336] At 291, the processing system 20 determines a 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 a tile size such that, for any tile larger than the minimum tile size supported by the hierarchical tile structure, the file associated with this tile complies with a threshold criterion. As described above, the threshold criterion may be file-size based and / or based at least on several map objects. Determining the hierarchical tile structure may include determining a tile size such that, for any tile other than the largest tile supported by the hierarchical tile structure (corresponding to the root node 114 of the hierarchical tile structure 110), the threshold criterion is satisfied, while a larger tile obtained by merging an individual tile with several adjacent tiles results in a violation of the threshold criterion. In other words, determining the hierarchical tile structure may include determining as a maximum tile size that any tile larger than the minimum supported tile size complies with the threshold criterion and is achieved.
[0337] At 292, the processing system 20 generates a plurality of files, each of the files associated with one of the tiles of the tiling determined at 291. Generating the plurality of files may include storing object definitions of map objects located in the individual tiles in the associated files. Generating the plurality of files may include including version numbers in the individual tiles. The version numbers are modified as the files are modified during operation of the processing system 20, more specifically, during modification of the electronic map data.
[0338] 29 is a flowchart of a method 300 for performing map data related functions and / or providing access to electronic map data. Method 300 may be performed automatically by processing system 20. Method 300 may be performed during the initial generation of tiling and files and / or during modification of electronic map data.
[0339] At 301, processing system 20 may generate an initial tiling in which all tiles have the same tile size. The same tile size may, but need not, be equal to the minimum tile size supported by processing system 20 for the tiling. For purposes of illustration, if it is clear from the total number of objects and / or the density of the objects that tiles larger than the minimum tile size supported by processing system 20 will not result in a violation of the threshold criteria, process 300 may start with a tile size (which is determined by the number of bits in bit sequence 101) larger than the minimum tile size supported by processing system 20.
[0340] At 302, processing system 20 determines, for each tile, a quantity associated with the threshold comparison. The quantity may include the number of map objects. Alternatively or additionally, the quantity may include the file size of a file that stores object definitions for all map objects located within a particular tile.
[0341] In 303 through 306, tiles are systematically consolidated so that they remain accessible by a hierarchical tile structure (such as quadtree 110) in a systematic way, while taking advantage of the fact that larger tiles may be used in areas where the density of map objects is lower than in other areas.
[0342] At 303, tiles are automatically selected by the processing system.
[0343] At 304, it is determined whether the tile can be merged with an adjacent tile that has the same parent node in the hierarchical tile structure while the merged tile (corresponding to the parent node) still adheres to the threshold criteria.
[0344] At 305, in response to determining that merging can be performed without violating the threshold criteria, adjacent tiles having the same parent node are merged, thereby informing the larger tile that corresponds to the parent node in the hierarchical tile structure of the several merged tiles.
[0345] At 306, it is determined whether any unconsidered tiles remain. If so, the process returns to 303.
[0346] Through the iterative reputation of 303 through 306, process 300 identifies a tiling such that tiles can be accessed in a systematic manner according to a hierarchical tile structure (such as quadtree 110), while ensuring compliance with threshold criteria for any tiles larger than the minimum tile size supported by the processing system, and further ensuring that the tiling is composed of the largest tiles that ensure compliance with the threshold criteria (i.e., merging a tile into a larger tile corresponding to a parent node in the hierarchical tile structure results in a violation of the threshold criteria).
[0347] At 307, the processing system 20 generates a plurality of files, each associated with one of the tiles of the tiling determined at 301-306. Generating the plurality of files may include storing object definitions of map objects located within the respective tiles in the associated files. Generating the plurality of files may include including version numbers in the respective tiles. The version numbers are modified as the files are modified during operation of the processing system 20, more specifically, during modification of the electronic map data.
[0348] At 308, the processing system 20 enables access to the electronic map data and / or enables performance of map data related functions.
[0349] The processing system 20 and methods disclosed herein are operable so that the size of the tiles within the tiling varies as a function of object density, and therefore as a function of geolocation.
[0350] FIG. 30 illustrates this for tiling 60, with map objects indicated schematically by circles for all tiles except the smallest tile size shown in FIG. 30. Tile 68 has a larger size than the other tiles because the density of map objects in the area covered by tile 68 is smaller than in other areas covered by tiling 60. Due to the organization of the tiling according to a hierarchical tiling structure (such as quadtree structure 110), some of the smaller tiles, such as tiles 61 and 62, may also have a relatively small density of map objects. To illustrate, processing system 20 and methods will not use larger tiles in tiling 60 if any one of several sibling nodes in the hierarchical tiling structure (sibling nodes are nodes that have a common parent node) represents a tile with such a high density of map objects that the tile associated with the parent node would result in a violation of a threshold criterion. The tiling utilized by the processing systems and methods disclosed herein thereby provides efficient access due, among other things, to its structure and consideration of the threshold criterion for generating the tiling and / or multiple files.
[0351] Modification of electronic map data by adding, changing or deleting map object definitions may be performed to improve the match between the electronic map data and the physical world reality in which the electronic map data is used to perform map-based functions.
[0352] 31, 32, 33 and 34, the operation of processing system 20 and / or system 310 comprising processing system 310 will be described in more detail.
[0353] 31 shows a system 310 in which processing system 20 performs stream processing 320 to generate map data 321 for one or several map products stored in multiple files 24. Processing system 20 includes map data serving 322 for making the map data available to map data consumers, which may include devices and / or systems in vehicles 314. Requests for modifications to the electronic map data may be received by processing system 20 via at least one communication link 319, representing changes to different map layers 318.
[0354] 32 shows a schematic representation of a system 310 including one or more map data providing systems 311, a processing system 20, and a map data consumer 316. The map data consumer 316 includes at least one control circuit 330. The at least one control circuit 330 may be communicatively coupled to a communication interface 336 of the electronic map data consumer 268. The at least one control circuit 330 may be operable to perform a map data-related function based at least on the electronic map data that is based at least on the output stream 321 of the stream processing 320, which may result in modification of the electronic map data stored in multiple files. The at least one control circuit 330 may be operable to perform at least one control action based at least on the electronic map data to control one or more actuators 331, 332 and / or a human-machine interface 335. The at least one control circuit 330 may be operable to use electronic map data in combination with sensor data captured using one or several sensors, such as distance sensor 334 and / or camera 333, to perform at least one control action.
[0355] 33 is a flowchart of a method 340. Method 340 may be performed automatically by or using processing system 20 and at least one map data consumer, such as map data consumer 316.
[0356] At process block 341, the processing system 20 processes at least one request for electronic map data to enable access to the electronic map data and / or to perform map data related functions.
[0357] At process block 342, output is provided by processing system 20 to at least one map data consumer. The output is based at least on the processing performed by processing system 20.
[0358] In process block 343, the map data consumer 316 performs at least one action based at least on the output of the stream processing. The at least one action may include a control action. The at least one action may be any one or any combination of a route search, a navigation function, a driver assistance function, an advanced driver assistance function, and an 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.
[0359] 34 is a flowchart of a method 350. The method 350 may be performed automatically by or using the processing system 20. The method 350 may be or include a method of using the processing system 20 to enable efficient access to versioned electronic map data.
[0360] At process block 351, the processing system 20 operates to maintain electronic map data. Maintaining the electronic map data may include providing a number of files 24 associated with the tiling and, optionally, providing a tile directory that includes version information.
[0361] At process block 352, the processing system 20 enables access to the electronic map data for performance of map data-related functions. The enabling of access to the electronic map data may include modifying the electronic map data by the processing system 20 in response to a request for modification of the electronic map data. The enabling of access to the electronic map data may include providing, by the processing system 20, an output based at least on at least one request generated by a map data consumer.
[0362] While embodiments have been described above with reference to the drawings, modifications and variations may be implemented in other embodiments. While exemplary use cases to which the method and vehicle processing system may be applied have been described in detail, the techniques disclosed herein may be used in connection with a variety of additional scenarios. For further explanation, exemplary map layers, hierarchical tile structures, and object identifier structures have been described, but the techniques disclosed herein are generally applicable to a wide variety of map layers, hierarchical tile structures, and object identifier structures.
[0363] This description and the accompanying drawings, which describe aspects and embodiments of the present invention, should not be construed as limiting the scope of the claims defining the protected invention. In other words, while the invention has been illustrated and described in detail in the drawings and the foregoing description, such illustration and description should be considered illustrative and not limiting. Various mechanical, compositional, structural, electrical, and operational changes may be made without departing from the spirit and scope of this description and claims. In some instances, well-known circuits, structures, and techniques have not been shown in detail so as not to obscure the invention. Thus, it will be understood that changes and modifications may be made by those skilled in the art within the scope and spirit of the following claims. In particular, the present invention covers further embodiments having any combination of features from the various embodiments described above and below.
[0364] The present disclosure also individually covers all additional features shown in the drawings, which may not be described above or in the following description. Also, single alternatives of the embodiments described in the drawings and description, as well as single alternatives of the features thereof, may be discarded from the subject matter of the present invention or from the disclosed subject matter. The present disclosure includes subject matter consisting of features defined in the claims or embodiments, as well as subject matter including such features.
[0365] The word "comprising" does not exclude other elements or process blocks, and the indefinite articles "a" or "an" do not exclude a plurality. A single unit or process block may fulfill the functions of several features recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. Components described as coupled or connected may be directly coupled electrically or mechanically, or indirectly coupled via one or more intermediate components. Any reference signs in the claims should not be construed as limiting the scope.
[0366] The machine-readable instruction code may be stored / distributed on a suitable medium, such as an optical storage medium or a solid-state medium, supplied together with or as part of other hardware, or may be distributed in other forms, such as over a wide area network or other wired or wireless telecommunications system. Furthermore, the machine-readable instruction code may be a data structure product or a signal for implementing a particular method, such as a method according to an embodiment.
Claims
1. 1. A method for performing map data related functions, the method comprising: receiving, by a processing system (20), a request (47, 47', 48); accessing, by the processing system (20), electronic map data including versioned electronic map data, the versioned electronic map data including a plurality of files (24) storing object data of map objects located in a plurality of tiles (61-68), different ones of the plurality of tiles (61-68) being associated with different geographic regions of an area covered by the electronic map data, the accessing of the electronic map data comprising: accessing a tile directory (26) based at least on the request (47, 47', 48), the tile directory (26) including version information for one or both of each of the plurality of files (24) and each of the plurality of tiles (61-68); identifying a first file (91) of the plurality of files (24) based at least on the request (47, 47', 48) and the tile directory (26); Based at least on said request (47, 47', 48), object data for the object, in response to the processing system (20) determining that the object data is included in the first file (91), accessing object data for an object in a second file (92) of the plurality of files (24), the second file (92) being different from the first file (91), in response to determining by the processing system (20) that the first file (91) contains a reference (94) to access the object data (95); and performing, by said processing system (20), at least one action based on said object data.
2. 2. The method of claim 1, wherein the first file (91) is associated with a first tile (81) of the plurality of tiles (61-68), and the second file (92) is associated with a second tile (82) of the plurality of tiles that is different from the first tile (81).
3. 3. The method of claim 2, wherein the first tile abuts the second tile at a corner point of the first tile or along an edge of the first tile, and / or the first tile has a first size and the second tile has a second size different from the first size, and optionally the quotient of the first size divided by the second size is b n wherein b is a positive integer and n is a positive or negative integer.
4. 4. The method according to claim 1, wherein the request (47, 47', 48) comprises a request (47, 47', 48) to modify the object, and wherein accessing the electronic map data comprises generating an updated first file from the first file in response to the request (47, 47', 48) and causing the updated first file to be stored.
5. 5. The method of claim 4, wherein accessing the electronic map data further comprises updating the tile directory (26) in response to the request (47, 47', 48) to reflect that the updated first file corresponds to a revision caused by the request (47, 47', 48).
6. 6. The method according to claim 4 or 5, the request (47, 47', 48) includes a request (47, 47', 48) to modify coordinates of the object from first coordinates located in the first tile to modified coordinates located in a third tile different from the first tile; The method, wherein accessing the electronic map data further includes generating an updated third file from a third file associated with the third tile and causing the updated third file to be stored, and generating the updated third file includes including a reference to the updated first file in the updated third file.
7. 7. The method of claim 6, wherein generating the updated first file includes updating version data and object coordinate data in the first file, and accessing the electronic map data includes leaving an identifier for the object unchanged when generating the updated first file and the updated third file, the identifier enabling the first file to be identified in the plurality of files (24).
8. 8. The method of claim 4, wherein the updated first file is stored without overwriting or deleting the first file.
9. 9. The method of claim 1, wherein the versioned electronic map data includes a set of first files corresponding to different versions of the versioned electronic map data, the set of first files being associated with the first tile, and the set of first files including the first file.
10. 10. The method of claim 9, wherein the request (47, 47', 48) includes time data and / or version data, and the processing system (20) determines the first file to be accessed in the collection based at least on the time data and / or the version data.
11. 11. The method of any one of claims 1 to 10, The method of claim 1, wherein the tile directory (26) associates each tile with the most recent revision that caused an update of the tile and that precedes the creation or update of the tile directory (26).
12. 12. The method of any one of claims 1 to 11, wherein performing the actions includes generating, by the processing system (20), an output based at least on the object data.
13. 13. The method of any one of claims 1 to 12, wherein performing the operations includes enabling the processing system (20) to perform at least one map data related function, the at least one map data related function comprising: Providing map data for use by a route finding system; Providing map data for use by a route guidance system; Providing map data for use by driver assistance systems; and Providing map data for use by advanced driver assistance systems; and Providing map data for use by an autonomous vehicle system; and Map data updates, and deploying map data updates.
14. Map data generated using a method according to any one of claims 1 to 13.
15. 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 of any one of claims 1 to 14.