US11423062B2 - Apparatus and methods for generating update data for a map database - Google Patents
Apparatus and methods for generating update data for a map database Download PDFInfo
- Publication number
- US11423062B2 US11423062B2 US16/584,367 US201916584367A US11423062B2 US 11423062 B2 US11423062 B2 US 11423062B2 US 201916584367 A US201916584367 A US 201916584367A US 11423062 B2 US11423062 B2 US 11423062B2
- Authority
- US
- United States
- Prior art keywords
- node
- digest
- update
- data
- map
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Definitions
- Example embodiments generally relate to mapping and navigation applications.
- An example embodiment relates generally to generating update data for a map database for mapping and navigation applications.
- a client/user vehicle retrieves a map between different locations, such as a source location and a destination location, for navigation based on map data stored in a client device.
- problems can occur when the map data stored by the client device is outdated. It may be particularly difficult or impossible for the client vehicles to safely and efficiently navigate if the outdated map data is used by the client vehicles.
- the client vehicles utilizing this outdated map data for navigation may be prone to undesired navigational conditions and may lead to catastrophic events such as reporting a road sign related to some weight limitation (such as a road sign displaying a weight of 12 tons) as a speed limit value, like 120 KPH, or manifesting a route between two locations which no longer exists at present time.
- a road sign related to some weight limitation such as a road sign displaying a weight of 12 tons
- a speed limit value like 120 KPH
- Various embodiments provide an apparatus, a method and computer program product for generating update data for a map database.
- the map database may include a cloud based backend system that contains the updated map data.
- the client device may retrieve the updated map data stored in the backend system to provide the updated map data for use in various scenarios, such as navigation applications.
- a method for generating update data for a map database may be provided.
- the method may comprise: receiving a node identifier and a first node digest of an update candidate node; obtaining, based on the node identifier, a second node digest of the update candidate node; comparing the first node digest and the second node digest of the update candidate node; and generating, based on the comparison, the update data for the map database, the update data containing one of: an indication of unchanged content; node digests of the child nodes of the update candidate node; or updated content corresponding to the update candidate node.
- the method may further comprise transmitting the generated update data for the map database to a client.
- the update data for the map database contains an indication of unchanged content in case of match of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains node digests of child nodes of the update candidate node, if the update candidate node corresponds to a parental node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains updated content corresponding to the update candidate node, if the update candidate node corresponds to a leaf node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the method may further comprise accessing a hierarchical tree structure, wherein a root node or an inner node comprises a parental node digest based on an eXclusive OR (XOR) function of the node digests of corresponding child nodes, and wherein a leaf node in the hierarchical tree structure comprises a leaf node digest based on the node identifier of the leaf node and map content associated with the node identifier of the leaf node.
- XOR eXclusive OR
- the method may further comprise, in response to a data service-side content update, recomputing the hierarchical tree structure based on the updated content.
- the method may further comprise associating the map area identifier to a map tile of a quad-tree map data structure, wherein tiles corresponding to quad-tree leaf nodes are data tiles.
- the method may further comprise associating the map area identifier to a map cube of an oct-tree map data structure, wherein cubes corresponding to oct-tree leaf nodes are data cubes.
- an apparatus for generating update data for a map database may include at least one memory configured to store computer executable instructions and at least one processor may be configured to execute the computer executable instructions to: receive a node identifier and a first node digest of an update candidate node; obtain, based on the node identifier, a second node digest of the update candidate node; compare the first node digest and the second node digest of the update candidate node; and generate, based on the comparison, the update data for the map database, the update data containing one of: an indication of unchanged content; node digests of the child nodes of the update candidate node; or updated content corresponding to the update candidate node.
- the apparatus may be further configured to transmit the generated update data for the map database to a client.
- the update data for the map database contains an indication of unchanged content in case of match of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains node digests of child nodes of the update candidate node, if the update candidate node corresponds to a parental node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains updated content corresponding to the update candidate node, if the update candidate node corresponds to a leaf node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the apparatus may be further configured to access a hierarchical tree structure, wherein a root node or an inner node comprises a parental node digest based on an eXclusive OR (XOR) function of the node digests of corresponding child nodes, and wherein a leaf node in the hierarchical tree structure comprises a leaf node digest based on the node identifier of the leaf node and map content associated with the node identifier of the leaf node.
- XOR eXclusive OR
- the apparatus may be further configured to in response to a data service-side content update, recompute the hierarchical tree structure based on the updated content.
- the apparatus may be further configured to carry out the operations to associate the map area identifier to a map tile of a quad-tree map data structure, wherein tiles corresponding to quad-tree leaf nodes are data tiles.
- the apparatus may be further configured to carry out the operations to associate the map area identifier to a map cube of an oct-tree map data structure, wherein cubes corresponding to oct-tree leaf nodes are data cubes.
- a computer program product comprises a non-transitory computer-readable medium having stored thereon computer-executable instructions which when executed by one or more processors of an apparatus, cause the apparatus to carry out operations for updating the map database, the operations comprising: receiving a node identifier and a first node digest of an update candidate node; obtaining, based on the node identifier, a second node digest of the update candidate node; comparing the first node digest and the second node digest of the update candidate node; and generating, based on the comparison, the update data for the map database, the update data containing one of: an indication of unchanged content; node digests of the child nodes of the update candidate node; or updated content corresponding to the update candidate node.
- the operations may further comprise transmitting the generated update data for the map database to a client
- the update data for the map database contains an indication of unchanged content in case of match of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains node digests of child nodes of the update candidate node, if the update candidate node corresponds to a parental node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains updated content corresponding to the update candidate node, if the update candidate node corresponds to a leaf node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the apparatus may be further configured to carry out the operations to access a hierarchical tree structure, wherein a root node or an inner node comprises a parental node digest based on an eXclusive OR (XOR) function of the node digests of corresponding child nodes, and wherein a leaf node in the hierarchical tree structure comprises a leaf node digest based on the node identifier of the leaf node and map content associated with the node identifier of the leaf node.
- a root node or an inner node comprises a parental node digest based on an eXclusive OR (XOR) function of the node digests of corresponding child nodes
- XOR eXclusive OR
- the apparatus may be further configured in response to a data service-side content update, recompute the hierarchical tree structure based on the updated content.
- the apparatus may be further configured to carry out the operations to associate the map area identifier to a map tile of a quad-tree map data structure, wherein tiles corresponding to quad-tree leaf nodes are data tiles.
- the apparatus may be further configured to carry out the operations to associate the map area identifier to a map cube of an oct-tree map data structure, wherein cubes corresponding to oct-tree leaf nodes are data cubes.
- FIG. 1 is a block diagram that illustrates a network environment of a system for generating update data for a map database, in accordance with an example embodiment
- FIG. 2 is a block diagram that exemplarily illustrates a system for generating update data for the map database, in accordance with an example embodiment
- FIG. 3 is a block diagram that exemplarily illustrates a user equipment for generating update data for the map database, in accordance with an example embodiment
- FIG. 4 illustrates hierarchical tree structure of 3D map data, in accordance with an example embodiment
- FIG. 5 illustrates hierarchical tree structure of 2D map data, in accordance with an example embodiment.
- FIG. 6A illustrates a flowchart illustrating operations performed for implementation of an exemplary method to update the map database, in accordance with an example embodiment
- FIG. 6B illustrates a block diagram of an exemplary hierarchical tree data structure used in the methods and apparatuses for generating update data for the map database, in accordance with an example embodiment
- FIG. 6C illustrates a flowchart illustrating operations performed for implementation of another exemplary method to generate update data for the map database, in accordance with an example embodiment
- FIG. 6D illustrates a table illustrating update operations performed for implementing a method to generate update data for the map database, in accordance with an example embodiment
- FIG. 7 illustrates a flowchart for implementation of an exemplary method to update the map database, in accordance with an example embodiment
- FIG. 8 illustrates a flowchart for implementation of an exemplary method to generate update data for a map database, in accordance with an example embodiment.
- references in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure.
- the appearance of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments.
- the terms “a” and “an” herein do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced items.
- various features are described which may be exhibited by some embodiments and not by others.
- various requirements are described which may be requirements for some embodiments but not for other embodiments.
- the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention.
- the terms “substantially” and “approximately” refer to values that are within manufacturing and/or engineering guidelines and/or limits. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
- circuitry refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present.
- This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims.
- the term ‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware.
- the terms “for example.” “For instance.” and “such as, and the verbs “comprising,” “having.” “including.” and their other verb forms, when used in conjunction with a listing of one or more components or other items, are each to be construed as open ended, meaning that that the listing is not to be considered as excluding other, additional components or items.
- the term “based on” means at least partially based.
- the terms “first” and “second” are not intended to represent any particular order or arrangement of elements. Instead, these terms are used herein to indicate that an element is different from another element. Other terms are to be construed using their broadest reasonable meaning unless they are used in a context that requires a different interpretation.
- the apparatus, the method, and a computer program product provided herein are directed towards generating update data for a map database and thus update the outdated map data based on the generated update data.
- the generated update data may be considered to be a representation of the update state of the map database.
- the apparatus, the method, and the computer program product provided herein efficiently synchronize map data between the client device and a server that contains updated map data.
- empty portions of map data of a region do not consume any storage space in the client system and don't need to be updated.
- various embodiments provide for operating on portions of the map data of the region in the client system where the map data exists.
- various embodiments also provide for storing the map data in a hierarchical tree structure type of data structure. Subsequently, the hierarchical tree data structure forms a quad tree (or an oct-tree) where data tiles (or data cubes) form leaves and parent tiles (or parent cubes) form inner nodes respectively of the quad tree (or oct-tree).
- the system, the method, and the computer program product provided in accordance with various embodiments disclosed herein provide an efficient protocol to update map data of the region without affecting map data of other regions. Further, the system, the method, and the computer program product provided herein minimize the payload to save bandwidth and optimize response time in various applications.
- FIG. 1 is a block diagram that illustrates a network environment 100 of a system for updating a map database, in accordance with an example embodiment.
- the network environment 100 may include a mapping platform 103 , a network 109 , user equipment 111 , 113 and an OEM cloud 115 .
- the mapping platform 103 may include a server 105 and a database 107 .
- the server 105 and the database 107 may be communicatively coupled to each other.
- the mapping platform may be communicatively coupled to the user equipment 111 , 113 directly or indirectly, via the network 109 .
- the user equipment 113 may be communicatively connected to the OEM cloud 115 which in turn may be accessible to the mapping platform 103 via the network 109 .
- the user equipment 111 may be communicatively coupled to the mapping platform 103 directly, via the network 107 .
- All the components in the network environment 100 may be coupled directly or indirectly to the network 109 .
- the components described in the network environment 100 may be further broken down into more than one component and/or combined together in any suitable arrangement. Further, one or more components may be rearranged, changed, added, and/or removed.
- the mapping platform may comprise suitable logic, circuitry, interfaces and code that may be configured to obtain map update data of the region.
- the server 105 may comprise processing means and communication means.
- the processing means may comprise one or more processors configured to process requests received from the user equipments 111 , 113 .
- the processing means may fetch map data from the database 107 and transmit the same to the user equipments 111 , 113 in a format suitable for use by the user equipments 111 , 113 .
- the mapping platform 103 may periodically communicate with the user equipments 111 , 113 via the processing means to update a local cache of the map data stored on the user equipments 111 , 113 .
- the map data may also be stored on the user equipments 111 , 113 and may be updated based on periodic communication with the mapping platform 101 .
- the mapping platform 103 may comprise the database 107 for storing the map data and the server 105 .
- the server 105 and the database 107 may be together referred to as an update data service.
- the database 107 may store node data, road segment data, link data, point of interest (POI) data, link identification information, heading value records or the like.
- POI point of interest
- the database 107 may also store cartographic data, routing data, and/or manoeuvring data.
- the road segment data records may be links or segments representing roads, streets, or paths, as may be used in calculating a route or recorded route information for determination of one or more personalized routes.
- the node data may be end points corresponding to the respective links or segments of road segment data.
- the road link data and the node data may represent a road network, such as used by vehicles, cars, trucks, buses, motorcycles, and/or other entities.
- the database 107 may contain path segment and node data records, such as shape points or other data that may represent pedestrian paths, links or areas in addition to or instead of the vehicle road record data, for example.
- the road/link segments and nodes can be associated with attributes, such as geographic coordinates, street names, address ranges, speed limits, turn restrictions at intersections, and other navigation related attributes, as well as POIs, such as fuelling stations, hotels, restaurants, museums, stadiums, offices, auto repair shops, buildings, stores, parks, etc.
- the database 107 may also store data about the POIs and their respective locations in the POI records.
- the database 107 may additionally store data about places, such as cities, towns, or other communities, and other geographic features such as bodies of water, mountain ranges, etc. Such place or feature data can be part of the POI data or can be associated with POIs or POI data records (such as a data point used for displaying or representing a position of a city).
- the database 107 can include event data (e.g., traffic incidents, construction activities, scheduled events, unscheduled events, accidents, diversions etc.) associated with the POI data records or other records of the database 107 .
- the database 107 may store 3D building maps data (3D map model of objects) of structures surrounding roads and streets.
- the database 107 may be maintained by a content provider e.g., a map developer.
- the map developer may collect geographic data to generate and enhance the database 107 .
- the map developer may employ field personnel to travel by vehicle along roads throughout the geographic region to observe features and/or record information about them, for example.
- remote sensing such as aerial or satellite photography, may be used to generate map geometries directly or through machine learning as described herein.
- the database 107 may be a master map database stored in a format that facilitates updating, maintenance, and development.
- the master map database or data in the master map database may be in an Oracle spatial format or other spatial format, such as for development or production purposes.
- the Oracle spatial format or development/production database may be compiled into a delivery format, such as a geographic data files (GDF) format.
- GDF geographic data files
- the data in the production and/or delivery formats may be compiled or further compiled to form geographic database products or databases, which may be used in end user navigation devices or systems.
- geographic data may be compiled (such as into a platform specification format (PSF) format) to organize and/or configure the data for performing navigation-related functions and/or services, such as route calculation, route guidance, map display, speed calculation, distance and travel time functions, and other functions, by a navigation device, such as by the user equipments 111 , 113 .
- the navigation-related functions may correspond to vehicle navigation, pedestrian navigation, or other types of navigation.
- the compilation to produce the end user databases may be performed by a party or entity separate from the map developer. For example, a customer of the map developer, such as a navigation device developer or other end user device developer, may perform compilation on a received map database in a delivery format to produce one or more compiled navigation databases.
- the network 109 may be wired, wireless, or any combination of wired and wireless communication networks, such as cellular, Wi-Fi, interne, local area networks, or the like.
- the network 109 may include one or more networks such as a data network, a wireless network, a telephony network, or any combination thereof.
- the data network may be any local area network (LAN), Personal Area Network (PAN), metropolitan area network (MAN), wide area network (WAN), a public data network (e.g., the Internet), short range wireless network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fibre-optic network, and the like, or any combination thereof.
- the wireless network may be, for example, a cellular network and employ various technologies including enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX), Long Term Evolution (LTE) networks, 5G New Radio networks, ITU-IMT 2020 networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (Wi-Fi), wireless LAN (WLAN), Bluetooth®, Internet Protocol (IP) data casting, satellite, mobile ad-hoc network (MANET).
- EDGE enhanced data rates for global evolution
- GPRS general packet radio service
- GSM global system for mobile communications
- IMS Internet protocol multimedia subsystem
- UMTS universal mobile telecommunications system
- any other suitable wireless medium e.g., worldwide interoperability for microwave access (W
- the network 109 may comprise the automotive cloud, digital transportation infrastructure (DTI), radio data system (RDS)/high definition (HD) radio or other digital radio system, and/or the like.
- the user equipments 111 , 113 may be in communication with a network apparatus via the network 109 .
- the user equipment 113 may communicate with the network apparatus via a network, such as the Cloud.
- the Cloud may be a computer network, such as the OEM cloud 115 that provides shared computer processing resources and data to computers and other devices connected thereto
- the mapping platform 103 may retrieve the map data directly from the user equipments 111 , 113 with connected communications capabilities (e.g., cellular or other wireless communications equipped vehicles) or from the Original Equipment Manufacturer (OEM) cloud.
- the OEM cloud 115 may be operating an OEM platform (e.g., a services platform) that collects the map data from the user equipment 113 .
- the retrieval of the map data may occur in real-time or near real-time, continuously, periodically, according to a schedule or on demand.
- the user equipments 111 , 113 may be any user accessible device such as a mobile phone, a smartphone, a portable computer, and the like that is portable in itself or as a part of another portable/mobile object such as a vehicle.
- the user equipments 111 , 113 may be vehicles itself.
- the use equipments 111 , 113 may be referred to as client devices.
- the user equipments 111 and 113 may comprise a processor, memory, a communications interface as illustrated later in conjunction with FIG. 3 .
- the user equipments 111 and 113 may further comprise, a user interface, one or more sensors (e.g., a location sensor such as a GNSS sensor; IMU sensors; camera(s); image sensors; two dimensional (2D) and/or three dimensional (3D) light detection and ranging (LiDAR)(s); long, medium, and/or short range radio detection and ranging (RADAR); ultrasonic sensors; electromagnetic sensors; (near-) infrared (IR) cameras; 3D cameras; 360° cameras; fuel level sensors; vehicle system sensors (e.g., oil status sensors, tire pressure sensors, engine oil pressure sensors, coolant level sensors, engine/coolant temperature sensors, and/or other sensors that enable the user equipments 111 and 113 to determine the location enable the user equipments 111 and 113 and/or one or more features of the corresponding vehicle's surroundings and/or monitor the vehicle's operating parameters), and/or other components configured to perform various operations, procedures, functions or the like described herein.
- sensors e.g.,
- each of user equipments 111 and 113 may store a mobile version of a digital map (e.g., in memory).
- the memory may be non-transitory, and may use the map to retrieve updated map from a map database.
- FIG. 2 is a block diagram that exemplarily illustrates an apparatus for updating the map database, such as the database 107 , in accordance with an example embodiment.
- the apparatus 101 may comprise a processor 201 , a memory 203 and a communication interface 205 .
- the processor 201 , the memory 203 and the communication interface 205 may be communicatively coupled to each other.
- the processor 201 may be embodied in a number of different ways.
- the processor 201 may be embodied as one or more of various hardware processing means such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like.
- the processor 201 may include one or more processing cores configured to perform independently.
- a multi-core processor may enable multiprocessing within a single physical package.
- the processor 304 a may include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
- the apparatus may be embodied as part of the mapping platform.
- the memory 203 may be non-transitory and may include, for example, one or more volatile and/or non-volatile memories.
- the memory 203 may be an electronic storage device (for example, a computer readable storage medium) comprising gates configured to store data (for example, bits) that may be retrievable by a machine (for example, a computing device like the processor 201 ).
- the memory 203 may be configured to store information, data, content, applications, instructions, or the like, for enabling the apparatus to carry out various functions in accordance with an example embodiment of the present invention.
- the memory 203 could be configured to buffer input data for processing by the processor 201 .
- the memory 203 could be configured to store instructions for execution by the processor 201 .
- the processor 201 may be in communication with the memory 203 via a bus for passing information among components of the server 105 and thus the user equipments 111 , 113 .
- the processor 201 may be configured to execute instructions stored in the memory 203 or otherwise accessible to the processor 201 . Additionally, or alternatively, the processor 201 may be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor 201 may represent an entity (for example, physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly.
- the processor 201 when the processor 201 is embodied as an ASIC, FPGA or the like, the processor 201 may be specifically configured hardware for conducting the operations described herein.
- the processor 201 when the processor 201 is embodied as an executor of software instructions, the instructions may specifically configure the processor 201 to perform the algorithms and/or operations described herein when the instructions are executed.
- the processor 201 may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the server 105 .
- ALU arithmetic logic unit
- the communication interface 205 may comprise input interface and output interface for supporting communications to and from the user equipments 111 , 113 .
- the communication interface 205 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data to/from a communications device in communication with the user equipments 111 , 113 .
- the communication interface 205 may include, for example, an antenna (or multiple antennae) and supporting hardware and/or software for enabling communications with a wireless communication network. Additionally or alternatively, the communication interface 205 may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s).
- the communication interface 205 may alternatively or additionally support wired communication.
- the communication interface 205 may include a communication modem and/or other hardware and/or software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB) or other mechanisms.
- DSL digital subscriber line
- USB universal serial bus
- FIG. 3 is a block diagram that exemplarily illustrates the user equipment 111 of the network environment 100 for updating the map database, in accordance with an example embodiment.
- the user equipment 111 may comprise a processor 301 , a memory 303 and a communication interface 305 .
- the processor 301 , the memory 303 and the communication interface 305 may be communicatively coupled to each other.
- the processor 301 , the memory 303 and the communication interface 305 may be same as the processor 201 , the memory 203 and the communication interface 205 , respectively, described in FIG. 2 .
- the user equipment 111 may also be referred to as a client device.
- the user equipment 111 may be associated, coupled, or otherwise integrated with a vehicle of the user, such as an advanced driver assistance system (ADAS), a personal navigation device (PND), a portable navigation device, an infotainment system and/or other device that may be configured to provide route guidance and navigation related functions to the user.
- ADAS advanced driver assistance system
- PND personal navigation device
- infotainment system infotainment system and/or other device that may be configured to provide route guidance and navigation related functions to the user.
- the user may be an autonomous or semi-autonomous vehicle.
- the user equipment 111 may comprise processing means such as a central processing unit (CPU), storage means such as on board read only memory (ROM) and random access memory (RAM), acoustic sensors such as a microphone array, position sensors such as a GPS sensor, orientation sensors such as gyroscope, motion sensors such as accelerometer, a display enabled user interface such as a touch screen display, and other components as may be required for specific functionalities of the user equipment 111 . Additional, different, or fewer components may be provided.
- the user equipment 111 may be configured to execute and run mobile applications such as a messaging application, a browser application, a navigation application, and the like.
- the user equipment 113 may be same as the user equipment 111 described above.
- FIG. 4 illustrates a hierarchical tree data structure of 3D map data, in accordance with an example embodiment.
- the 3D map data in the hierarchical tree structure may be stored in one or more levels.
- the one or more levels may correspond to level-0 to level LEVEL.
- the level-0 may correspond to lowest level of the one or more levels and level LEVEL may correspond to highest level of the one or more levels.
- map data in each level of level-0 to level LEVEL may be partitioned into 3D shapes, such as but not limited to cubes, tetrahedrons or cuboids.
- the cubes are considered.
- the cubes may be referred to as nodes.
- the 3D map data at the level-0 may correspond to whole earth map data.
- each location in the cube may be represented by (x, y, z) coordinates.
- Earth of radius 6371 km may be centred at the centre of the cube i.e. at coordinates (8000 km, 8000 km, 8000 km).
- the cube may further include approximately 1500 km of earth's atmosphere.
- the cube may be referred to as earth-cube.
- Node 401 may correspond to the earth-cube in accordance with the example.
- the node 401 may be referred to as root node.
- the node 401 may be divided into eight equal sized sub-cubes 401 a to 401 h i.e. the 3D map data in the cube 401 is divided into eight equal sized sub-cubes.
- the node 401 may be divided into more than eight sub-cubes, such as but not limited to 64, 512 or 4096.
- the nodes 401 a to 401 h may be referred to as level-1 nodes. Further, each node of the nodes 401 a to 401 h may be divided into eight equal sized sub-cubes.
- the nodes 401 aa to 401 ah may correspond to sub-cubes of the node 401 a
- the nodes 401 ba to 401 bh may correspond to sub-cubes of the nodes 401 b and similarly the nodes 401 ha to 401 hh may correspond to sub-cubes of node 401 h
- the nodes 401 aa to 401 ah , 401 ba to 401 bh and similar nodes till the nodes 401 ha to 401 hh may be referred to as level-2 nodes.
- one or more nodes of the level-2 nodes may be divided into equal sized sub-cubes.
- the sub-cubes of the one or more nodes of the level-2 nodes may correspond to level-3 nodes (not shown in the FIG. 4 ).
- Nodes 401 aaa . . . a to 401 aaa . . . h may correspond to sub-cubes of one of a node of level- ⁇ LEVEL-1 ⁇ .
- nodes 401 hhh . . . a to 401 hhh . . . h may correspond to sub-cubes of one of a node of level- ⁇ LEVEL-1 ⁇ .
- the level LEVEL may be the highest level of the one or more levels and may not contain sub-cubes i.e. the nodes of the level LEVEL are not divided into sub-cubes.
- the nodes at level-0 to level- ⁇ LEVEL-1 ⁇ may be referred to as parent nodes.
- Each parent node may comprise child nodes.
- the node 401 is a parent node and the sub-cubes 401 a to 401 h are the child nodes of the node 401 .
- the nodes 401 a to 401 h may be the parent nodes and respective sub-cubes may be child nodes.
- the child nodes may be contemplated as subset of the parent nodes.
- the hierarchical tree data structure of 3D map data may also be represented as an oct-tree structure.
- the nodes at level LEVEL may be referred to as oct-tree leaf nodes.
- the cubes corresponding to the oct-tree leaf nodes are data cubes.
- the leaf nodes contain the map data content.
- Each node at level 0 to level LEVEL may be associated with identity data which is referred to as node identifier.
- the node identifier of each node may also be referred to as CUBE-ID.
- the node identifier of each node may be defined by respective center x, y, z coordinates and level of each node, which implies that node identifier of a node depends on the level of the node. Thus, from the node identifier of a node, the level of the node may be known.
- FIG. 5 illustrates hierarchical tree structure of 2D map data, in accordance with an example embodiment.
- the 2D map data in the hierarchical tree structure may be stored in one or more levels.
- the one or more levels may correspond to level-0 to level LEVEL.
- the 2D map data in each level of level-0 to level LEVEL may be partitioned into tiles.
- the tiles may refer to 2D shapes, such as but not limited to squares, equilateral triangles, rectangles or tessellations.
- the tiles may be referred to as nodes.
- the node 501 may be referred to as root node.
- the node 501 may be divided into four equal sized sub-tiles nodes 501 a to 501 d . Further, each node of the nodes 501 a to 501 d may be divided into four equal sized sub-tiles.
- the nodes 501 aa to 501 ad may correspond to sub-tiles of the node 501 a
- the nodes 501 ba to 501 bd may correspond to sub-nodes of the node 501 b and similarly the nodes 501 da to 501 dd may correspond to sub-tiles of node 501 d
- Nodes 501 aa . . . a to 501 aa . . . d may correspond to sub-tiles of one of a tile of level- ⁇ LEVEL-1 ⁇ .
- the nodes 501 aaa . . . a to 501 aaa . . . d and similar nodes till the nodes 501 ddd . . . a to 501 ddd . . . d may correspond to nodes of level LEVEL.
- the level LEVEL may be the highest level of the one or more levels and may not contain sub-tiles i.e. the nodes of the level LEVEL are not divided into sub-tiles.
- the nodes at level-0 to level- ⁇ LEVEL-1 ⁇ may be referred to as the parent nodes.
- Each parent node may comprise child nodes.
- the node 501 is a parent node and the nodes 501 a to 501 d are child nodes of the node 501 .
- the nodes 501 a to 501 d may be the parent nodes and respective sub-tiles may be child nodes.
- the hierarchical tree structure of 2D map data may also be referred to as quad-tree structure.
- the nodes at level LEVEL may be referred to as quad-tree leaf nodes.
- the tiles corresponding to the quad-tree leaf nodes are data tiles.
- the leaf nodes contain the map data content.
- Each node at level 0 to level LEVEL may be associated with identity data which is referred to as node identifier.
- the node identifier of each node may also be referred to as tileID.
- FIG. 6A illustrates flowchart illustrating operations performed for implementation of an exemplary method to update map database, in accordance with an example embodiment. The FIG. 6A is described in conjunction with elements from FIG. 1 .
- the method may include storing the map data in hierarchical tree structure (also interchangeable referred to as hierarchical tree data structure hereinafter).
- FIG. 6B illustrates a block diagram of an exemplary hierarchical tree data structure used in the methods and apparatuses for updating a map database, in accordance with an example embodiment.
- the FIG. 6B shows an example of hierarchical tree data structure for map data at level 2.
- Each tile of the hierarchical tree structure may be referred to as node.
- Each node is associated with a node identifier.
- the level 0 (not shown in FIG. 6B ) of the hierarchal tree structure consists a tile that corresponds to whole earth 2D map data without partitions.
- the tile of level 0 may be divided into four tiles, namely, nodes A B, C, and D.
- the nodes A B, C, and D may be referred to as inner nodes or parent nodes. Further, each node of the nodes A B, C, and D is divided into four tiles. The four tiles of each node of the nodes A B, C, and D may be referred to as child nodes of respective node. For example, nodes AA, AB, AC and AD are child nodes of node A.
- the tiles at level 2 may be referred to as leaf nodes. The tiles corresponding to the leaf nodes may be data tiles. The leaf nodes may contain the map data.
- the method may include computing node digest of leaf nodes.
- the node digest may correspond to a hash value.
- a hash function with robust collision-resistance may be used in computing the node digest of the leaf nodes.
- the hash function which generates a 64 bit or higher hash value, such as but not limited to, MD5, MD6, SHA, HAVAL, SWIFFT, ECOH, MuHASH or RIPEMD may be utilized in computing the node digest.
- the hash value size may be chosen to lower the likelihood of node digests colliding.
- the node identifier is included in computing the node digest of each leaf node to generate different node digests even if two leaf nodes contain same content.
- the leaf nodes at level 2 may include empty leaf nodes.
- the empty leaf nodes may correspond to tiles that contain no data.
- the node digest of the empty leaf nodes may be predefined and/or correspond to zero.
- map data which includes data about road links, segments, shapes, curvatures and the like, cannot and/or does not exist for the water bodies (with the exception of bridges, underwater tunnels, and the like).
- this data for water bodies may correspond to zero or a predefined value, such as null. Consequently, the empty leaf nodes do not have to be explicitly stored.
- the map data exists and the node digest may not correspond to zero. Consequently, such map data is explicitly stored.
- the method may include computing node digest of parent nodes. Prior to computing the node digest of parent node, node digests of each child node of each parent node may be determined. In some example embodiments, the hashing function used for determining the node digests of the child node and the leaf node may be same. In some example embodiment, the hashing function used for the leaf node and the child node may be different. The node digest of the child node may be computed by hashing the associated node identifier. An eXclusive OR (XOR) function may be used to compute the node digest of the parent node. Embodiments described herein employ an XOR function or XOR logic gate.
- XOR eXclusive OR
- the XOR function is a logic gate that gives a “true” output when the number of true inputs is odd.
- the XOR function sometimes called the “Exclusive OR”, provides a “true” output if one and only one of the inputs to the function is true.
- the XOR function represents an inequality function where the output is true if the inputs are not alike, otherwise the output is false.
- XOR provides a true output when for a logic issue where one or the other of two inputs is true, but not both.
- An n-bit XOR function is made from n gates.
- Bit-wise XOR involves where corresponding bits from two identifiers (e.g., 6-bit identifiers) are logically XOR'd to form a corresponding bit in a third identifier.
- XOR(x_ 1 , . . . , x_n) denotes the sequentially applied bitwise XOR function, otherwise represented as x_ 1 XOR . . . XOR x_n.
- the node digest of the parent node may be computed by XORing the node digests of corresponding child nodes.
- H(A) (H(AA) ⁇ H(AB) ⁇ H(AC) ⁇ H(AD)), wherein AA, AB, AC and AD are the node identifiers of the child nodes of the parent node A.
- the parent nodes may include empty parent nodes.
- the empty parent nodes may correspond to nodes that contain empty child nodes. For example, as discussed above, if a child node represents a water body, such as if child nodes with identifiers AA, AB, AC, and AD belong to a water body, like sea, then node digests H(AA), H(AB), H(AC), and H(AD) may correspond to zero.
- the parent node A which will also correspond to a portion of water body, will also correspond to zero.
- the node digest of the empty parent nodes may be predefined and/or correspond to zero.
- the empty parent nodes do not have to be explicitly stored.
- the method may include transmitting node identifier and node digest of an update candidate node, to update data service.
- the update candidate node may refer to a node that is checked for map data updating.
- the update data service may include the server 105 with the database 107 .
- the database 107 may contain updated map data and corresponding node digests and node identifiers.
- the node digests in the database 107 may be referred to as update data service-side node digests.
- the server 105 may retrieve, from the database 107 , the node digest corresponding to the received node identifier of the update candidate node.
- the method may include comparing, by the system 101 , the received node digest with the corresponding update data service-side node digest.
- the apparatus 101 may generate the update data for the map database based on the comparison.
- the server 105 may compare the received node digest with the corresponding update data service-side node digest of the update candidate node and generate the update data for the map database based on the comparison.
- the server 105 may recompute the hierarchical tree structure based on the updated content, thereby maintaining the hierarchical tree structure up to date with respect to the content available to the data service.
- the method may include generating an indication of unchanged content.
- the method may include transmitting the indication of unchanged content to the user equipment 111 .
- the indication of unchanged content may include indication ‘NOT CHANGED’.
- an indication of unchanged content may be implicit in a reply to the user equipment 111 that does not content update content.
- the method may include receiving the indication of unchanged from the update data service.
- the indication ‘NOT CHANGED’ signifies that the update candidate node at the user equipment 111 contains updated map data.
- the method may further include, generating an update indication ‘CHANGED’ and update data corresponding to the update candidate node, if the received node digest and the corresponding update data service-side node digest of the update candidate node are not same.
- FIG. 6C illustrates a flowchart illustrating operations performed for implementation of another exemplary method to update the map database, in accordance with an example embodiment.
- the method may include receiving a request to update a candidate node.
- the method may include determining if the update candidate node is a leaf node. If the update candidate node is not a leaf node, then it signifies that the update candidate node is a parent node. Further, at block 625 , the method may include generating parent node update data of the update candidate node, wherein the parent node update data may contain node digests of corresponding child nodes at the update data service-side.
- the method may include transmitting the node digests of the corresponding child nodes to the user equipment 111 .
- the method may include receiving the node digests of the corresponding child nodes.
- the method may further include comparing the received node digests of child nodes with the corresponding child nodes at the user equipment 111 . In case of mismatch between the node digests of compared child nodes, the method may include, transmitting the node digest and the node identifier of at least one mismatched child node to the update data service.
- the method may include generating leaf node update data if the update candidate node is a leaf node, wherein the leaf node map update data may include new content of the update candidate node. Subsequently, at block 633 , the method may include transmitting the new content of the update candidate node to the user equipment 111 .
- node D (shown in FIG. 6B ) as the update candidate node.
- the node digest and node identifier of node D may be sent to the update data service.
- the node D As the node D is at the level-1, the node corresponds to parent node.
- the update data service may generate and subsequently transmit, to the user equipment 111 , the parent node update data if the received node digest and the corresponding node digest at the update data service-side are not same.
- the parent cube map update data may comprise node digests of the child nodes of the node D i.e. node digests of the nodes DA, DB, DC, and DD. Consequently, the user equipment 111 may compare the received node digests of the child nodes with the corresponding node digests of the child nodes at the user equipment 111 . Since it is assumed that the node digest of nodes DC and DD is zero and no map data changes in the node DA, only the received node digest of the node DB and the node digest of the node DB at the user equipment 111 results in mismatch. Therefore, the user equipment 111 may transmit the node identifier and the node digest of the node DB to the update data service.
- FIG. 6D illustrates a table illustrating update operations performed for implementing a method to update the map database, in accordance with an example embodiment.
- the update operations may include updating the node digests of changed child nodes if the node is a parent node.
- the table also illustrates that the update operation may include updating the content of a node if that node is a child node and its content is changed.
- the change status of a node may be transmitted to the user at block 615 of the method illustrated in FIG. 6A .
- the method may include transmitting, to the user equipment 111 , update indication ‘CHANGED’ and the update data corresponding to the update candidate node.
- the method may include receiving the update indication ‘CHANGED’ and the update data.
- the update indication ‘CHANGED’ may be implicitly communicated by the act of sending update data corresponding to the update candidate node.
- the method may include updating the map data based on the received update data. As a result of the hierarchical tree structure, if a leaf node is updated, all hash values along a path from level of the leaf node to root of the leaf node are affected and hash values of other cubes in other levels remain unaffected.
- the user equipment 111 may receive the leaf node update data of the node DA comprising new content of the node DA. Subsequently, the user equipment 111 may update the node DA based on the received leaf node update data.
- the node digest of a leaf node depends on its content
- the node DA is updated corresponding node digest changes as well. Consequently, the node digest of the corresponding parent node i.e. node D also changes, as the hash value the parent node D depends on its child nodes. Therefore, the hierarchical tree structure may be recomputed based on the received update data.
- the whole 2D earth map data may be updated by exercising the method on each tile of the whole 2D earth map data.
- the method described with reference to the FIGS. 6A-6D is pertinent to the hierarchical tree structure of the 3D map data.
- the method may be carried out on each node of the one or more levels of the hierarchical tree structure of the 3D map data. Consequently, the whole 3D map data may be updated.
- FIG. 7 illustrates a flowchart for implementation of an exemplary method to update the map database, in accordance with an example embodiment of the disclosure.
- each block of the flowcharts and combination of blocks in the flowcharts may be implemented by various means, such as hardware, firmware, processor, circuitry, and/or other communication devices associated with execution of software including one or more computer program instructions.
- one or more of the procedures described above may be embodied by computer program instructions.
- the computer program instructions which embody the procedures described above may be stored by a memory device of an apparatus employing an embodiment of the present invention and executed by a processor of the apparatus.
- any such computer program instructions may be loaded onto a computer or other programmable apparatus (for example, hardware) to produce a machine, such that the resulting computer or other programmable apparatus implements the functions specified in the flowchart blocks.
- These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture, the execution of which implements the function specified in the flowchart blocks.
- the computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions specified in the flowchart blocks.
- blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
- the method may include determining an update candidate node, wherein the update candidate node is associated with a node identifier and a first node digest. Further, at block 701 , the method may include determining a hierarchical tree structure, wherein a root node or an inner node comprises a parental node digest based on an eXclusive OR (XOR) function of the node digests of their corresponding child nodes, and wherein a leaf node comprises a leaf node digest based on the node identifier of the leaf node and map content associated with the node identifier of the leaf node.
- XOR eXclusive OR
- the method may include sending the node identifier and the node digest to an update data service.
- the update data service may include a server with a database containing updated map data.
- the method may include receiving, from the update data service, a response containing one of node digests of the child nodes of the update candidate node at the update data service, or updated content corresponding to the update candidate node.
- the method may include updating the map database, based on the received response. Further, in some example embodiments, in response to receiving updated content corresponding to the update candidate node, at block 707 , the method may include recomputing the hierarchical tree structure based on the received updated content.
- an apparatus for performing the method of FIG. 7 above may comprise a processor configured to perform some or each of the operations (blocks 701 - 707 ) described above.
- the processor may, for example, be configured to perform the operations (blocks 701 - 707 ) by performing hardware implemented logical functions, executing stored instructions, or executing algorithms for performing each of the operations.
- the apparatus may comprise means for performing each of the operations described above.
- examples of means for performing operations blocks 701 - 707 may comprise, for example, the processor and/or a device or circuit for executing instructions or executing an algorithm for processing information as described above.
- FIG. 8 illustrates a flowchart for implementation of an exemplary method to generate update data for a map database, in accordance with an example embodiment of the disclosure. It will be understood that each block of the flowcharts and combination of blocks in the flowcharts may be implemented by various means, such as hardware, firmware, processor, circuitry, and/or other communication devices associated with execution of software including one or more computer program instructions.
- blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
- the method may include receiving a node identifier and a first node digest of an update candidate node.
- the method may include obtaining, based on the node identifier, a second node digest of the update candidate node.
- the obtaining of a second node digest of the update candidate node further comprises accessing a hierarchical tree structure, wherein a root node or an inner node comprises a parental node digest based on an eXclusive OR (XOR) function of the node digests of corresponding child nodes, and wherein a leaf node in the hierarchical tree structure comprises a leaf node digest based on the node identifier of the leaf node and map content associated with the node identifier of the leaf node.
- XOR eXclusive OR
- the method may include comparing the first node digest and the second node digest of the update candidate node.
- the method may further include generating, based on the comparison, the update data for the map database, the update data containing one of an indication of unchanged content, node digests of the child nodes of the update candidate node or updated content corresponding to the update candidate node.
- the update data for the map database contains an indication of unchanged content in case of match of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains node digests of child nodes of the update candidate node, if the update candidate node corresponds to a parental node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the update data for the map database contains updated content corresponding to the update candidate node, if the update candidate node corresponds to a leaf node and in case of mismatch of the first node digest and the second node digest of the update candidate node.
- the method may further include transmitting the generated update data for the map database to a client.
- an apparatus for performing the method of FIG. 8 above may comprise a processor configured to perform some or each of the operations (blocks 801 - 807 ) described above.
- the processor may, for example, be configured to perform the operations (blocks 801 - 807 ) by performing hardware implemented logical functions, executing stored instructions, or executing algorithms for performing each of the operations.
- the apparatus may comprise means for performing each of the operations described above.
- examples of means for performing operations blocks 801 - 807 may comprise, for example, the processor and/or a device or circuit for executing instructions or executing an algorithm for processing information as described above.
- FIGS. 6A-6D, 7, and 8 illustrate flowcharts of a network 109 and/or user equipment 111 , methods, and computer program products according to an example embodiment of the invention. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by various means, such as hardware, firmware, processor, circuitry, and/or other devices associated with execution of software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions.
- the computer program instructions which embody the procedures described above may be stored by the memory device, such as the memory 203 or 303 of an apparatus employing an embodiment of the present invention and executed by the processor, such as the processor 201 or 301 of the apparatus.
- any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that the resulting computer or other programmable apparatus implements the functions specified in the flowchart blocks.
- These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture the execution of which implements the function specified in the flowchart blocks.
- the computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions specified in the flowchart blocks.
- blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
- certain ones of the operations above may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, additions, or amplifications to the operations above may be performed in any order and in any combination.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Navigation (AREA)
Abstract
Description
Claims (22)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/584,367 US11423062B2 (en) | 2019-09-26 | 2019-09-26 | Apparatus and methods for generating update data for a map database |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/584,367 US11423062B2 (en) | 2019-09-26 | 2019-09-26 | Apparatus and methods for generating update data for a map database |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210097092A1 US20210097092A1 (en) | 2021-04-01 |
| US11423062B2 true US11423062B2 (en) | 2022-08-23 |
Family
ID=75163480
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/584,367 Active 2040-05-09 US11423062B2 (en) | 2019-09-26 | 2019-09-26 | Apparatus and methods for generating update data for a map database |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US11423062B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210245055A1 (en) * | 2020-02-08 | 2021-08-12 | Carlos R. Villamar | Augmented reality gaming system and method employing real world geolocation parameters |
Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120191773A1 (en) | 2011-01-26 | 2012-07-26 | Google Inc. | Caching resources |
| US20120303263A1 (en) | 2011-05-23 | 2012-11-29 | Microsoft Corporation | Optimization of navigation tools using spatial sorting |
| US20130328941A1 (en) * | 2012-06-10 | 2013-12-12 | Apple Inc. | Scalable Processing for Associating Geometries with Map Tiles |
| US20140108462A1 (en) * | 2012-10-15 | 2014-04-17 | Navteq B.V. | Map Update Scripts with Tree Edit Operations |
| EP2775410A1 (en) | 2013-03-04 | 2014-09-10 | My Virtual Reality Software AS | Method for providing and receiving information representing physical features of a portion of a three-dimensional surface |
| US8880589B2 (en) | 2010-12-29 | 2014-11-04 | Environmental Systems Research Institute, Inc. | Signature based map caching |
| US8892522B2 (en) * | 2006-10-12 | 2014-11-18 | Zenrin Co., Ltd. | Map information management system and map information distribution system |
| US9141372B1 (en) | 2014-06-20 | 2015-09-22 | GM Global Technology Operations LLC | Secure and interruptible transfer of a map update package to a navigation device |
| US20160140153A1 (en) * | 2014-10-09 | 2016-05-19 | Crfs Limited | Processing spatiotemporal data records |
| US9396249B1 (en) * | 2013-06-19 | 2016-07-19 | Amazon Technologies, Inc. | Methods and systems for encoding parent-child map tile relationships |
| US9965689B2 (en) | 2016-06-09 | 2018-05-08 | Qualcomm Incorporated | Geometric matching in visual navigation systems |
| US9986060B2 (en) | 2015-03-30 | 2018-05-29 | General Electric Company | Persistent caching of map imagery and data |
| US10002156B2 (en) | 2015-03-16 | 2018-06-19 | Here Global B.V. | Version management for incrementally compiled map data |
| US20180299274A1 (en) | 2017-04-17 | 2018-10-18 | Cisco Technology, Inc. | Real-time updates to maps for autonomous navigation |
| US20190155928A1 (en) * | 2017-11-22 | 2019-05-23 | Intel Corporation | Preparing a hierarchical clustering data structure for compression |
-
2019
- 2019-09-26 US US16/584,367 patent/US11423062B2/en active Active
Patent Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8892522B2 (en) * | 2006-10-12 | 2014-11-18 | Zenrin Co., Ltd. | Map information management system and map information distribution system |
| US8880589B2 (en) | 2010-12-29 | 2014-11-04 | Environmental Systems Research Institute, Inc. | Signature based map caching |
| US20120191773A1 (en) | 2011-01-26 | 2012-07-26 | Google Inc. | Caching resources |
| US20120303263A1 (en) | 2011-05-23 | 2012-11-29 | Microsoft Corporation | Optimization of navigation tools using spatial sorting |
| US20130328941A1 (en) * | 2012-06-10 | 2013-12-12 | Apple Inc. | Scalable Processing for Associating Geometries with Map Tiles |
| US20140108462A1 (en) * | 2012-10-15 | 2014-04-17 | Navteq B.V. | Map Update Scripts with Tree Edit Operations |
| EP2775410A1 (en) | 2013-03-04 | 2014-09-10 | My Virtual Reality Software AS | Method for providing and receiving information representing physical features of a portion of a three-dimensional surface |
| US9396249B1 (en) * | 2013-06-19 | 2016-07-19 | Amazon Technologies, Inc. | Methods and systems for encoding parent-child map tile relationships |
| US9141372B1 (en) | 2014-06-20 | 2015-09-22 | GM Global Technology Operations LLC | Secure and interruptible transfer of a map update package to a navigation device |
| US20160140153A1 (en) * | 2014-10-09 | 2016-05-19 | Crfs Limited | Processing spatiotemporal data records |
| US10002156B2 (en) | 2015-03-16 | 2018-06-19 | Here Global B.V. | Version management for incrementally compiled map data |
| US9986060B2 (en) | 2015-03-30 | 2018-05-29 | General Electric Company | Persistent caching of map imagery and data |
| US9965689B2 (en) | 2016-06-09 | 2018-05-08 | Qualcomm Incorporated | Geometric matching in visual navigation systems |
| US20180299274A1 (en) | 2017-04-17 | 2018-10-18 | Cisco Technology, Inc. | Real-time updates to maps for autonomous navigation |
| US20190155928A1 (en) * | 2017-11-22 | 2019-05-23 | Intel Corporation | Preparing a hierarchical clustering data structure for compression |
Non-Patent Citations (2)
| Title |
|---|
| Microsoft Corporation, "[MS-FILESYNC]: File Synchronization Protocol", retrieved from https://interoperability.blob.core.windows.net/files/MS-FILESYNC/[MS-FILESYNC].pdf, Mar. 19, 2019, pp. 1-48. |
| Sharma, "Differential Map Updates for Highly Automated Driving and Enhanced Driver Assistance Services", Thesis, Dec. 2016, 91 pages. |
Also Published As
| Publication number | Publication date |
|---|---|
| US20210097092A1 (en) | 2021-04-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11194847B2 (en) | Method, apparatus, and computer program product for building a high definition map from crowd sourced data | |
| US11391595B2 (en) | Method, apparatus, and computer program product for updating a map database | |
| US11333505B2 (en) | Method and system to generate updated map data for parallel roads | |
| US20220238013A1 (en) | Dynamic privacy-sensitive operating modes | |
| US11193789B2 (en) | Method, apparatus, and computer program product for identifying at-risk road infrastructure | |
| US11282394B2 (en) | Methods and systems for spatial clustering based on mobility data | |
| US11499838B2 (en) | Method, system, and computer program product for providing traffic data | |
| US10899348B2 (en) | Method, apparatus and computer program product for associating map objects with road links | |
| US11644333B2 (en) | Apparatus, method, and computer program product for generating map data of categorized links | |
| US20230137263A1 (en) | Method and apparatus for generating structured trajectories from geospatial observations | |
| US20240199023A1 (en) | System to assist vehicle turns during limited visibility of incoming vehicles based on an intersection turning confidence index | |
| US20210123763A1 (en) | Method, system, and computer program product for generating map update data | |
| US20220252424A1 (en) | System and computer-implemented method for validating a road object | |
| US11423062B2 (en) | Apparatus and methods for generating update data for a map database | |
| US11353331B2 (en) | Method, apparatus, and computer program product for requesting traffic data | |
| US11567928B2 (en) | Apparatus and methods for updating a map database | |
| US11796322B2 (en) | Apparatus, method, and computer program product for updating link information on a client device | |
| US20220092092A1 (en) | Method, apparatus, and computer program product for updating a map database using subtree data structures | |
| US20230135578A1 (en) | Method and apparatus for generating structured trajectories from geospatial observations | |
| US11580850B2 (en) | Method, apparatus and computer program product for determining lane status confidence indicators using probe data | |
| US12140690B2 (en) | Positioning using locally unique neighbor cell identifiers | |
| US20220090920A1 (en) | Method, system, and computer program product for generating map update data using subtree data structures | |
| US20240175704A1 (en) | Method, apparatus, and computer program product for intelligent gap placement within mobility data using junctions inferred by features of the mobility data | |
| US20250196866A1 (en) | Method to predict "high gradient" wind effects to increase safety of two-wheeled vehicles | |
| US12307897B2 (en) | System to predict vehicle parking bunching |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| AS | Assignment |
Owner name: HERE GLOBAL B.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CAJIAS, RAUL;ROLF, DANIEL;REEL/FRAME:050581/0031 Effective date: 20190924 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |