Method, device and equipment for quickly compiling and publishing map data
By determining the changed area based on the map data change time input by the user, and using a distributed engine for tile range conversion and parallel compilation, the real-time and resource utilization issues in the rapid compilation and publication of geographic information base maps are solved, achieving efficient incremental compilation and minute-level updates.
Patent Information
- Application Number
- CN202511505500.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-21
- Publication Date
- 2026-02-27
AI Technical Summary
Existing technologies suffer from low real-time performance, low resource utilization, and difficulty in supporting high-frequency updates at the minute level in the rapid compilation and publication of geographic information base maps. In particular, the full tile compilation method consumes a lot of computational resources and has a high I/O load, while the incremental update method is prone to missed or false detections in change area detection, resulting in incomplete map data updates.
The range of tiles in the changed area is determined by the map data change time input by the user. A distributed engine is used to convert the tile range into tile coordinates and generate a list of tile keys. This is then split into parallel compilation tasks, distributed intermediate storage, and embedded database updates to avoid missed or false detections, thereby improving resource utilization and compilation speed.
It enables minute-level high-frequency updates of map data, reduces computational resource consumption and compilation time, improves compilation speed and resource utilization, reduces costs, and supports the parallel execution of large-scale distributed tasks.
Smart Images

Figure CN121579009A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of geographic information technology, specifically relating to a method, apparatus, and device for rapid compilation and publishing of map data. Background Technology
[0002] In the field of digital map services, the rapid deployment of geographic information base maps relies on tile generation technology. The mainstream technical solution in conventional technologies typically employs a full tile compilation method. This method is usually implemented based on Hadoop / MapReduce or a single-machine processing framework, and the main processes include: (1) Data preparation: loading complete vector or raster base map data (such as global road network data); (2) Task splitting: dividing the map into multiple processing units according to preset zoom levels and tile coordinates (XYZ); (3) Full calculation: performing rendering or vector tile calculation on each tile to generate all tile files; (4) Result storage: packaging all tiles into MBTiles or hash files and storing them on disk. The full tile compilation method generally involves a scheduled task or manual triggering of full compilation, requiring the reprocessing of all tiles for each update.
[0003] With the development of technology, some solutions have attempted to optimize the efficiency of full compilation and proposed an incremental update method based on automatic change detection. This method is usually implemented based on HDFS distributed storage. The main process includes: (1) Change detection: using an automatic change detection algorithm, including spatial overlay analysis algorithm (such as GeoHash boundary comparison), comparing the attribute information (such as geometric range) of the old and new versions of data, and automatically identifying the changed area; (2) Local compilation: only the tiles corresponding to the changed area are regenerated; (3) Result merging: the new tiles are overwritten into the original tile library. However, this method also requires periodic full scanning at set time intervals to perform full tile compilation to assist in change detection. Summary of the Invention
[0004] To improve the efficiency of rapid compilation and publication of geographic information base maps, and to enhance the real-time performance and resource utilization of map publication, this invention provides a method, apparatus, and device for rapid compilation and publication of map data.
[0005] In a first aspect, embodiments of the present invention provide a method for rapid compilation and publication of map data, the method comprising: Extract the tile range of the changed area based on the map data change time input by the user; Based on a distributed engine, each changed tile within the changed area is converted into tile coordinates, and a tile key list is generated based on the tile coordinates of each changed tile. The list of tile keys is split into multiple parallel compilation tasks; For each compilation task, obtain all feature data of each changed tile in the compilation task from the map dataset, generate the tile, obtain the tile file, and perform distributed intermediate storage. The system retrieves tile files corresponding to all compilation tasks from the intermediate storage, inserts each tile file into the embedded database storing map data based on the tile coordinates of each tile file, generates map data files, and publishes them.
[0006] In one or more optional embodiments of this application, the step of extracting the tile range of the changed area based on the map data change time input by the user includes: Based on the map data change time input by the user, extract the tiles that have been updated in the two versions of map data before and after the map data change time, and determine the range of tiles in the changed area based on the updated tiles.
[0007] In one or more optional embodiments of this application, the step of converting each changed tile within the changed area tile range into tile coordinates based on a distributed engine, and generating a tile key list based on the tile coordinates of each changed tile, includes: Based on a distributed engine, the tile number of each changed tile within the tile range of the changed area is determined; The tile number of each changed tile is converted into a list of tile coordinates for multiple tiles in the XYZ tile coordinate system using a spatial mapping algorithm. Convert the list of tile coordinates corresponding to each changed tile into tile key format to generate a tile key list.
[0008] In one or more optional embodiments of this application, splitting the tile key list into multiple parallel compilation tasks includes: Based on the distributed engine, the task granularity is dynamically adjusted according to the data density of the geographical region where each tile in the tile key list is located. The tile key list is split into multiple parallel compilation tasks and assigned to different executors.
[0009] In one or more optional embodiments of this application, the step of obtaining all feature data of each changed tile in the compilation task from the map dataset for each compilation task, generating tiles, obtaining tile files, and performing distributed intermediate storage includes: For each compilation task, the corresponding executor queries the map dataset to obtain all feature data for each changed tile in the compilation task; The tile generation process is executed based on all element data of each modified tile in the compilation task to obtain tile files, and the tile files are stored in the distributed intermediate storage location according to the preset directory structure.
[0010] In one or more optional embodiments of this application, before retrieving all feature data of each changed tile in the compilation task from the map dataset based on the corresponding executor, the method further includes: Use broadcast variables to cache static basemap data from the map dataset into the executor's memory.
[0011] In one or more optional embodiments of this application, before retrieving all feature data of each changed tile in the compilation task from the map dataset based on the corresponding executor, the method further includes: The map dataset is stored using a spatial index structure; For each compilation task, based on the corresponding executor, all feature data of each changed tile in the compilation task are retrieved from the map dataset, including: For each compilation task, based on the corresponding executor, the query range of the map dataset is determined in the spatial index structure, and all feature data of each changed tile in the compilation task within the query range are obtained from the map dataset.
[0012] In one or more optional embodiments of this application, the step of retrieving tile files corresponding to all compilation tasks from intermediate storage, inserting each tile file into the embedded database storing map data according to the tile coordinates corresponding to each tile file, generating a map data file, and publishing it includes: Based on the driver, the tile files corresponding to all compilation tasks are read from the storage location of the intermediate storage, and the tile coordinates corresponding to each tile file are determined. Based on the tile coordinates corresponding to each tile, the corresponding tile file is inserted into the embedded database storing map data to overwrite the original tile file, generating an updated map data file and publishing it; or, Based on the tile coordinates of each tile, the corresponding tile file is inserted into the embedded database that stores map data, generating a new version of the map data file and publishing it.
[0013] Secondly, embodiments of the present invention provide a map data rapid compilation and publishing device, the device comprising: The change detection module is used to extract the tile range of the changed area based on the map data change time input by the user; The conversion module is used to convert each changed tile within the tile range of the changed area into tile coordinates, and generate a tile key list based on the tile coordinates of each changed tile; The task splitting module is used to split the tile key list into multiple parallel compilation tasks; The compilation and execution module is used to obtain all feature data of each changed tile in the map dataset for each compilation task, generate tiles, obtain tile files, and perform distributed intermediate storage. The merging module is used to retrieve the tile files corresponding to all compilation tasks from the intermediate storage, and insert each tile file into the embedded database storing map data according to the tile coordinates of each tile file, thereby generating map data files and publishing them.
[0014] Thirdly, embodiments of the present invention provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the map data rapid compilation and publishing method described above.
[0015] Fourthly, embodiments of the present invention provide a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the map data rapid compilation and publishing method described above.
[0016] Fifthly, embodiments of the present invention provide a computer program product containing instructions that, when the computer program product is run on a computer device, cause the computer device to execute the map data rapid compilation and publishing method described above. The beneficial effects of the above-described technical solutions provided in the embodiments of the present invention include at least the following: The map data rapid compilation and publishing method provided in this invention extracts the tile range of the changed area based on the map data change time input by the user, generates a tile key list based on the extracted tile range, employs distributed compilation to process multiple compilation tasks in parallel, stores the resulting tile files in intermediate storage, inserts them into the map database to generate map data files, and publishes them. Compared to using automatic change detection algorithms for complex data processing to identify changed areas, this method avoids missed or false detections of changed areas, thus ensuring the integrity and reliability of subsequent map data updates. Furthermore, by determining the changed areas of the map data, differential compilation is performed, converting full compilation into incremental compilation, thereby achieving time-efficient incremental compilation and reducing computational resource consumption and map data compilation time. During the compilation process, a distributed engine distributes compilation tasks across multiple computing nodes for parallel execution. The compiled tile files are stored in distributed intermediate storage, improving data parallel writing capabilities, reducing I / O load and network transmission volume, supporting large-scale distributed tasks, improving compilation speed and efficiency, enhancing resource utilization, effectively reducing data compilation and publishing time, and dynamically responding to sudden update demands, thus being suitable for the minute-level high-frequency update needs of map data. Furthermore, distributed tasks no longer rely on dedicated hardware, reducing the cost of compiling and publishing map data.
[0017] Other features and advantages of the invention will be set forth in the following description, and will be apparent in part from the description, or may be learned by practicing the invention. The objects and other advantages of the invention may be realized and obtained by means of the structures particularly pointed out in the written description and the accompanying drawings.
[0018] The technical solution of the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. Attached Figure Description
[0019] The accompanying drawings are provided to further illustrate the invention and form part of the specification. They are used in conjunction with embodiments of the invention to explain the invention and do not constitute a limitation thereof. In the drawings: Figure 1 This is a schematic diagram of the method for rapidly compiling and publishing map data provided in an embodiment of the present invention.
[0020] Figure 2 This is a schematic diagram of the structure of the map data rapid compilation and publishing device provided in an embodiment of the present invention. Detailed Implementation
[0021] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
[0022] The inventors discovered that existing methods for rapidly compiling and publishing geographic base maps have significant drawbacks in practical applications, limiting the real-time performance and resource utilization of map publishing. Specifically, for full-tile compilation methods, each update requires processing all tiles (e.g., a Chinese base map contains hundreds of millions of tiles). Even if only a few areas change (e.g., local road updates), it still consumes substantial computational resources, resulting in processing times of several hours to days. Furthermore, full compilation requires frequent readings of the global dataset and writing to the complete tile library, leading to extremely high disk / network I / O loads, making it difficult to support minute-level high-frequency update requirements. Incremental update methods based on automatic change detection also have limitations, primarily relying on automatic change detection algorithms (e.g., spatiotemporal attribute comparison). However, the complexity of geographic data change scenarios (e.g., attribute field updates, geometric fine-tuning) makes automatic change detection algorithms prone to missed or false detections, resulting in incomplete or erroneous map data updates and insufficient reliability. Therefore, to detect changed areas, the system still needs to periodically perform full data scans (e.g., daily full comparison), consuming approximately 30% or more of computational resources, still leading to low map data publishing efficiency. Meanwhile, in the two methods mentioned above, when implementing based on Hadoop / MapReduc, the intermediate results are written to the local HDFS. However, due to limitations in disk throughput and single-node bandwidth, the parallel writing capability is insufficient, making it difficult to support large-scale distributed tasks and resulting in bottlenecks in distributed expansion. On the other hand, using a fixed-size cluster lacks elastic scaling capabilities, making it difficult to dynamically respond to sudden update needs (such as the release of disaster emergency maps), and resulting in low resource utilization.
[0023] To at least partially address these issues, the inventors attempted to build upon existing full-tile compilation and incremental tile update methods by comparing timestamps of different versions of data to accelerate map data compilation and publishing. They unexpectedly discovered that by utilizing user-inputted change timestamps, the tile range of the changed area could be quickly determined. Incremental compilation and publishing via distributed tasks not only avoided missed or false detections of changed areas but also improved data parallel writing capabilities and reduced I / O load and network transmission volume by distributing compilation tasks across multiple computing nodes using a distributed engine, thereby increasing compilation speed and efficiency and improving resource utilization. Furthermore, distributed tasks no longer rely on dedicated hardware, reducing the cost of map data compilation and publishing. Based on this, the present invention provides a method, apparatus, and device for rapid map data compilation and publishing.
[0024] Example 1 This invention provides a method for rapid compilation and publishing of map data, referring to... Figure 1 As shown, the method includes: S101: Extract the tile range of the changed area based on the map data change time input by the user; S102: Based on the distributed engine, convert each changed tile within the changed area into tile coordinates, and generate a tile key list based on the tile coordinates of each changed tile; S103: Split the tile key list into multiple parallel compilation tasks; S104: For each compilation task, obtain all feature data of each changed tile in the compilation task from the map dataset, generate tiles, obtain tile files, and perform distributed intermediate storage. S105: Retrieve the tile files corresponding to all compilation tasks from the intermediate storage, and insert each tile file into the embedded database storing map data according to the tile coordinates of each tile file, generate map data files and publish them.
[0025] In one embodiment, step S101 above, extracting the tile range of the changed area based on the map data change time input by the user, may specifically include: Based on the map data change time input by the user, extract the tiles that have been updated in the two versions of map data before and after the map data change time, and determine the range of tiles in the changed area based on the updated tiles.
[0026] In this embodiment of the invention, the map data change time input by the user is used to compare different versions of map data before and after the change time. Based on the timestamp information of the map data, the tiles where the user modified or added map data are identified as the tiles where the data update occurred (changed tiles). Therefore, the range of changed area tiles is determined based on the tiles where the data update occurred. It should be noted that the map data modified or added by the user in the tiles refers to uncompiled map data. The range of changed area tiles described in this embodiment of the invention refers to the range of NDS (Navigation Data Standard) tiles where the user modified or added map data.
[0027] In one embodiment, in step S102 above, based on a distributed engine, each changed tile within the changed area is converted into tile coordinates, and a tile key list is generated based on the tile coordinates of each changed tile. Specifically, this may include: Based on a distributed engine, the tile number of each changed tile within the tile range of the changed area is determined; The tile number of each changed tile is converted into a list of tile coordinates for multiple tiles in the XYZ tile coordinate system using a spatial mapping algorithm. Convert the list of tile coordinates corresponding to each changed tile into tile key format to generate a tile key list.
[0028] In this embodiment of the invention, the distributed engine described may be Spark. To facilitate understanding by those skilled in the art, the process of obtaining a list of tile coordinates for multiple tiles in the XYZ tile coordinate system and generating a list of tile keys based on the tile numbers of each changed tile within a determined changed area tile range is described below with a specific example, providing a detailed explanation of the implementation process of step S102: Suppose that, based on the Spark distributed engine, three NDS tiles within the changed region have been identified as having undergone data updates (changed tiles). The tile numbers of these three changed tiles are as follows: NDS tile number: 557546914; NDS tile number: 557546915; NDS tile number: 557546913.
[0029] Since internet map services commonly use the XYZ tile coordinate system (Web Mercator projection), in this embodiment of the invention, the NDS tile number is converted into the tile coordinates of the corresponding XYZ tile coordinate system. It is known that these NDS tile numbers represent unique identifiers for tiles at NDS Level 13. However, because the hierarchical definition of NDS tile numbers differs from that of the XYZ tile coordinate system, the spatial coverage of an NDS Level 13 tile is equivalent to multiple tile regions at Z=14 level in the XYZ tile coordinate system. The coordinate system conversion is specifically performed using the following method: Using a spatial mapping algorithm, the XYZ tile set (i.e., tile index set) corresponding to each NDS tile is calculated, resulting in the following list of XYZ tile coordinates: In this embodiment of the invention, the implementation process of the above spatial mapping algorithm is based on the principle of latitude and longitude spatial range matching. The latitude and longitude range is obtained by parsing the NDS tile number, and then the latitude and longitude range is converted into projected coordinates through Web Mercator projection. Finally, based on the converted projected coordinates, the corresponding tile index set is determined according to the XYZ tile calculation formula.
[0030] Next, each tile coordinate in the above XYZ tile coordinate list is converted into the standard tile key format (Z / X / Y), resulting in the final tile key list as follows: 14 / 13807 / 6095; 14 / 13807 / 6096; 14 / 13808 / 6095; 14 / 13808 / 6096; 14 / 13809 / 6095; 14 / 13809 / 6096.
[0031] In one embodiment, step S103 above, which involves splitting the tile key list into multiple parallel compilation tasks, may specifically include: Based on the distributed engine, the task granularity is dynamically adjusted according to the data density of the geographical region where each tile in the tile key list is located. The tile key list is split into multiple parallel compilation tasks and assigned to different executors.
[0032] In this embodiment of the invention, splitting the tile key list into multiple parallel compilation tasks can be implemented by the driver of the Spark distributed engine. Specifically, the tile key list can be split into a set of parallel tasks through SparkContext.parallelize or the Dataset API.
[0033] In this embodiment of the invention, due to the significant uneven geographical distribution of map data, the task granularity can be dynamically adjusted based on the data density differences in different geographical regions to solve the data skew problem and achieve a more balanced task execution time. When adjusting the task granularity, the data can be divided into multiple different density regions based on the data density differences in different geographical areas. For example, in first-tier cities such as Beijing, Shanghai, and Shenzhen, a single tile may contain tens of thousands of geographical features, while in sparsely populated areas such as Xinjiang, Qinghai, and Inner Mongolia, a single tile may only contain a few dozen features. In other words, the data volume of the highest density tile may be more than 1000 times that of the lowest density tile. These features include, but are not limited to, geographical features such as points, lines, and areas within the tile. These features can further correspond to objects such as landmarks, buildings, roads, and waterways on the ground or in space.
[0034] Based on this, in this embodiment of the invention, before performing the above-mentioned rapid map data compilation and publishing steps, to ensure that the execution time of each compilation task is relatively balanced, the time cost required to process each element can be calculated in advance based on historical execution data. Adding the basic cost of each tile, the granularity of compilation tasks in geographical areas with different tile densities is dynamically adjusted according to the data density differences in different geographical areas. A task allocation strategy is then formulated to split the tile key list into multiple parallel compilation tasks. For example, tile densities can be divided into high, medium, and low types. For geographical areas with high tile density, every 100 tiles in the tile key list is split into one compilation task; for geographical areas with medium tile density, every 200 tiles in the tile key list is split into one compilation task; and for geographical areas with low tile density, every 500 tiles in the tile key list is split into one compilation task. The Spark distributed engine uses this task allocation strategy to split the tile key list into multiple parallel compilation tasks and allocate them to different Spark executors for parallel processing.
[0035] In this embodiment of the invention, the above-mentioned dynamic task granularity adjustment based on data density fully considers the spatial distribution characteristics of geographic data, which can greatly improve the processing efficiency of large-scale map data.
[0036] In one embodiment, in step S104 above, for each compilation task, all feature data of each changed tile in the compilation task are obtained from the map dataset, tile generation is performed, tile files are obtained, and distributed intermediate storage is performed. Specifically, this may include: For each compilation task, the corresponding executor queries the map dataset to obtain all feature data for each changed tile in the compilation task; The tile generation process is executed based on all element data of each modified tile in the compilation task to obtain tile files, and the tile files are stored in the distributed intermediate storage location according to the preset directory structure.
[0037] In this embodiment of the invention, all feature data of each changed tile in the compilation task obtained from the map dataset above includes features in the map data modified or added by the user.
[0038] In this embodiment of the invention, the compilation task can be executed by an executor of the Spark distributed engine. During the execution of all compilation tasks, the task status can be monitored through the Spark distributed engine driver. If an executor of a compilation task fails to complete the task, the driver can assign the task to another Spark executor. In specific implementations, the number of automatic retries upon failure can be set, for example, three times. If the driver assigns the compilation task to three different Spark executors and still fails to complete the compilation, then the compilation task is stopped.
[0039] For example, taking the three NDS tiles mentioned above, the specific implementation process of the Spark executor selecting all road features belonging to these three tile numbers from the road data table of the underlying dataset (such as the Iceberg partition table) is as follows: First, obtain the tile numbers of the three changed tiles: 557546914, 557546915, and 557546913; Next, an SQL query filter is executed, and the Spark executor extracts road features within the changed tiles using the following SQL statement: SELECT * FROM road_table WHERE tileId IN (557546914, 557546915, 557546913).
[0040] In this embodiment of the invention, after obtaining all feature data of each modified tile in the compilation task, tile rendering (raster) or vector tiling can be performed based on all feature data of each modified tile in the compilation task to obtain tile files, and the tile files are stored in the storage location of the distributed intermediate storage according to the preset directory structure.
[0041] In this embodiment of the invention, the distributed intermediate storage can use object storage, such as Amazon S3 which supports high-concurrency read and write operations. The preset directory structure described above in this embodiment can be a directory structure based on a zoom / x / y hierarchy.
[0042] In one specific embodiment, the object storage S3 described above can also enable intelligent tiering, which automatically tiers high-frequency access objects and low-frequency access objects based on pre-established access frequency tiering rules to reduce long-term storage costs.
[0043] In one specific embodiment, before retrieving all feature data of each changed tile in the compilation task from the map dataset based on the corresponding executor, the method further includes: Use broadcast variables to cache static basemap data from the map dataset into the executor's memory.
[0044] In this embodiment of the invention, broadcast variables are used to cache the static base map data in the map dataset into the memory of the Spark executor, thereby avoiding the repeated transmission of this data in distributed computing, so that each Spark executor can quickly access this data when executing compilation tasks.
[0045] In one specific embodiment, before retrieving all feature data of each changed tile in the compilation task from the map dataset based on the corresponding executor, the method further includes: The map dataset is stored using a spatial index structure; Correspondingly, for each compilation task, the corresponding executor queries the map dataset to obtain all feature data for each changed tile in the compilation task, specifically including: For each compilation task, based on the corresponding executor, the query range of the map dataset is determined in the spatial index structure, and all feature data of each changed tile in the compilation task within the query range are obtained from the map dataset.
[0046] The spatial index structure used in this embodiment of the invention can be, for example, a multidimensional index structure of an R-tree. By storing the map dataset using a spatial index structure, it is possible to accelerate the query and filtering of features and significantly improve query efficiency.
[0047] In one embodiment, step S105 above, retrieving tile files corresponding to all compilation tasks from intermediate storage, and inserting each tile file into the embedded database storing map data according to the tile coordinates of each tile file, generating a map data file and publishing it, may specifically include: Based on the driver, the tile files corresponding to all compilation tasks are read from the storage location of the intermediate storage, and the tile coordinates corresponding to each tile file are determined. Based on the tile coordinates corresponding to each tile, the corresponding tile file is inserted into the embedded database storing map data to overwrite the original tile file, generating an updated map data file and publishing it; or, Based on the tile coordinates of each tile, the corresponding tile file is inserted into the embedded database that stores map data, generating a new version of the map data file and publishing it.
[0048] In this embodiment of the invention, an SQLite database file can be created in an SQLite database. Tile files, based on the MBTiles specification, are inserted into the created SQLite database file according to their tile coordinates, thereby merging the tile files and generating the final MBTiles map data file for publication. This embodiment of the invention supports two methods: incremental overlay of map data files (updating only changed tiles) and versioned storage (generating a new version of the MBTiles map data file).
[0049] The map data rapid compilation and publishing method provided in this invention extracts the tile range of the changed area based on the map data change time input by the user, generates a tile key list based on the extracted tile range, employs distributed compilation to process multiple compilation tasks in parallel, stores the resulting tile files in intermediate storage, inserts them into the map database to generate map data files, and publishes them. Compared to using automatic change detection algorithms for complex data processing to identify changed areas, this method avoids missed or false detections of changed areas, thus ensuring the integrity and reliability of subsequent map data updates. Furthermore, by determining the changed areas of the map data, differential compilation is performed, converting full compilation into incremental compilation, thereby achieving time-efficient incremental compilation and reducing computational resource consumption and map data compilation time. During the compilation process, a distributed engine distributes compilation tasks across multiple computing nodes for parallel execution. The compiled tile files are stored in distributed intermediate storage, improving data parallel writing capabilities, reducing I / O load and network transmission volume, supporting large-scale distributed tasks, improving compilation speed and efficiency, enhancing resource utilization, effectively reducing data compilation and publishing time, and dynamically responding to sudden update demands, thus being suitable for the minute-level high-frequency update needs of map data. Furthermore, distributed tasks no longer rely on dedicated hardware, reducing the cost of compiling and publishing map data.
[0050] Example 2 Based on the same inventive concept, embodiments of the present invention also provide a map data rapid compilation and publishing device, referring to... Figure 2 As shown, the device includes: The change detection module 101 is used to extract the tile range of the changed area based on the map data change time input by the user. The conversion module 102 is used to convert each changed tile within the tile range of the changed area into tile coordinates, and generate a tile key list based on the tile coordinates of each changed tile; Task splitting module 103 is used to split the tile key list into multiple parallel compilation tasks; The compilation and execution module 104 is used to obtain all feature data of each changed tile in the compilation task from the map dataset for each compilation task, generate tiles, obtain tile files, and perform distributed intermediate storage. The merging module 105 is used to retrieve the tile files corresponding to all compilation tasks from the intermediate storage, and insert each tile file into the embedded database storing map data according to the tile coordinates corresponding to each tile file, thereby generating a map data file and publishing it.
[0051] Example 3 Based on the same inventive concept, embodiments of the present invention also provide a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the method for rapid compilation and publication of map data as described in Embodiment 1 above.
[0052] Example 4 Based on the same inventive concept, this embodiment of the invention also provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the method for rapid compilation and publication of map data as described in Embodiment 1 above.
[0053] Example 5 Based on the same inventive concept, this embodiment of the invention also provides a computer program product containing instructions that, when the computer program product is run on a computer device, cause the computer device to execute the map data rapid compilation and publishing method described in Embodiment 1 above.
[0054] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0055] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, as well as combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0056] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0057] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0058] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A method for rapid compilation and publishing of map data, characterized in that, include: Extract the tile range of the changed area based on the map data change time input by the user; Based on a distributed engine, each changed tile within the changed area is converted into tile coordinates, and a tile key list is generated based on the tile coordinates of each changed tile. The list of tile keys is split into multiple parallel compilation tasks; For each compilation task, obtain all feature data of each changed tile in the compilation task from the map dataset, generate the tile, obtain the tile file, and perform distributed intermediate storage. The system retrieves tile files corresponding to all compilation tasks from the intermediate storage, inserts each tile file into the embedded database storing map data based on the tile coordinates of each tile file, generates map data files, and publishes them.
2. The method as described in claim 1, characterized in that, The step of extracting the tile range of the changed area based on the map data change time input by the user includes: Based on the map data change time input by the user, extract the tiles that have been updated in the two versions of map data before and after the map data change time, and determine the range of tiles in the changed area based on the updated tiles.
3. The method as described in claim 1, characterized in that, The distributed engine converts each changed tile within the changed area into tile coordinates, and generates a tile key list based on the tile coordinates of each changed tile, including: Based on a distributed engine, the tile number of each changed tile within the tile range of the changed area is determined; The tile number of each changed tile is converted into a list of tile coordinates for multiple tiles in the XYZ tile coordinate system using a spatial mapping algorithm. Convert the list of tile coordinates corresponding to each changed tile into tile key format to generate a tile key list.
4. The method as described in claim 1, characterized in that, The step of splitting the tile key list into multiple parallel compilation tasks includes: Based on the distributed engine, the task granularity is dynamically adjusted according to the data density of the geographical region where each tile in the tile key list is located. The tile key list is split into multiple parallel compilation tasks and assigned to different executors.
5. The method as described in claim 1, characterized in that, For each compilation task, the process involves retrieving all feature data for each changed tile from the map dataset, generating tiles, obtaining tile files, and storing them in a distributed intermediate manner, including: For each compilation task, the corresponding executor queries the map dataset to obtain all feature data for each changed tile in the compilation task; The tile generation process is executed based on all element data of each modified tile in the compilation task to obtain tile files, and the tile files are stored in the distributed intermediate storage location according to the preset directory structure.
6. The method as described in claim 5, characterized in that, Before retrieving all feature data for each changed tile in the compilation task from the map dataset based on the corresponding executor, the process also includes: Use broadcast variables to cache static basemap data from the map dataset into the executor's memory.
7. The method as described in claim 5, characterized in that, Before retrieving all feature data for each changed tile in the compilation task from the map dataset based on the corresponding executor, the process also includes: The map dataset is stored using a spatial index structure; For each compilation task, based on the corresponding executor, all feature data of each changed tile in the compilation task are retrieved from the map dataset, including: For each compilation task, based on the corresponding executor, the query range of the map dataset is determined in the spatial index structure, and all feature data of each changed tile in the compilation task within the query range are obtained from the map dataset.
8. The method as described in claim 1, characterized in that, The process of retrieving tile files corresponding to all compilation tasks from intermediate storage, inserting each tile file into the embedded database storing map data according to the tile coordinates of each tile file, generating map data files, and publishing them includes: Based on the driver, the tile files corresponding to all compilation tasks are read from the storage location of the intermediate storage, and the tile coordinates corresponding to each tile file are determined. Based on the tile coordinates corresponding to each tile, the corresponding tile file is inserted into the embedded database storing map data to overwrite the original tile file, generating an updated map data file and publishing it; or, Based on the tile coordinates of each tile, the corresponding tile file is inserted into the embedded database that stores map data, generating a new version of the map data file and publishing it.
9. A device for rapid compilation and publishing of map data, characterized in that, include: The change detection module is used to extract the tile range of the changed area based on the map data change time input by the user; The conversion module is used to convert each changed tile within the tile range of the changed area into tile coordinates, and generate a tile key list based on the tile coordinates of each changed tile; The task splitting module is used to split the tile key list into multiple parallel compilation tasks; The compilation and execution module is used to obtain all feature data of each changed tile in the map dataset for each compilation task, generate tiles, obtain tile files, and perform distributed intermediate storage. The merging module is used to retrieve the tile files corresponding to all compilation tasks from the intermediate storage, and insert each tile file into the embedded database storing map data according to the tile coordinates of each tile file, thereby generating map data files and publishing them.
10. A computer-readable storage medium storing instructions that, when executed on a terminal, cause the terminal to perform the map data rapid compilation and publishing method as described in any one of claims 1-8.
11. A computer device, characterized in that, It includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method for rapid compilation and publication of map data as described in any one of claims 1-8.
12. A computer program product containing instructions that, when run on a computer device, causes the computer device to perform the map data rapid compilation and publishing method as described in any one of claims 1-8.