A method for rendering place name tiles based on a quadtree

Through the quad-tree-based place name tile rendering method, LOD technology and field of view cropping technology, the problem of inefficient place name display in the geographic information system is solved, and efficient rendering and place name style configurability are achieved.

CN115393518BActive Publication Date: 2025-07-25SUZHOU AEROSPACE INFORMATION RES INST
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211053610.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-31
Publication Date
2025-07-25
Estimated Expiration
2042-08-31

AI Technical Summary

Technical Problem

The prior art has low efficiency in displaying place names in geographic information systems, especially when dealing with massive place name renderings, it is easy to cause system crashes, and it cannot meet the configurable and interactive requirements of place name display styles.

Method used

The place name tile rendering method based on quadtree is adopted, and the place name data is layered and chunked through LOD technology, and the place name data is dynamically loaded and cached with the viewpoint clipping technology to eliminate place name objects outside the field of view.

Benefits of technology

It improves the efficiency of place name rendering, reduces I/O pressure, and retains the configurability of place name text styles, solving the problem of place name display efficiency and interactivity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115393518B_ABST
    Figure CN115393518B_ABST
Patent Text Reader

Abstract

The present invention proposes a place name tile rendering method based on quadtree, which divides the place name data into layers and blocks through LOD technology, and numbers each piece of place name data; based on the idea of quadtree, the map is divided into layers and blocks, and corresponds one to one with the layered blocks of place name data; the latitude and longitude field of view of the rendering engine camera is read, the place name data is dynamically loaded, and the loaded place name data is cached, and the place name objects outside the field of view are removed by using the field of view clipping technology. The present invention reduces the reading frequency of place name data and the I / O pressure by caching the loaded place name data and the constructed place name rendering objects, and uses the field of view clipping technology to remove the rendering nodes outside the screen, thereby improving the rendering efficiency, and retaining the configurability of the place name text style while ensuring the place name display efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to geographic information technology and discloses a method for rendering place name tiles based on a quadtree. Background Art

[0002] In the geographic information system (GIS) industry, place name display is a basic requirement. The national place name data loaded in electronic maps is extremely large in terms of quantity, ranging from cities at all levels to towns, villages, and POI points. If all these place name data are loaded into memory at once and each place name is displayed in real time, it will lead to low operating efficiency of the entire system and even cause crashes. To solve the contradiction between display requirements and graphic rendering efficiency, there are currently two common practices: one is to divide the place name data into blocks and load the place name data in blocks using the LOD concept; the other is to batch the text objects so that the rendering times of thousands of batches of place name texts are reduced to dozens of batches, thereby improving the real-time rendering efficiency of a large amount of text. However, this rendering method cannot meet the requirements of configurable place name display styles and pickable place name interactions. Summary of the Invention

[0003] The object of the present invention is to propose a method for rendering place name tiles based on a quadtree, which solves the problem of display efficiency of the rendering engine in processing a large amount of place name rendering.

[0004] The technical solution for achieving the object of the present invention is as follows: A method for rendering place name tiles based on a quadtree, which hierarchically divides and blocks the place name data through LOD technology and numbers each block of place name data; based on the quadtree concept, hierarchically divides and blocks the map and makes it correspond one by one with the hierarchical division and blocking of the place name data; reads the longitude and latitude field of view range of the rendering engine camera, dynamically loads the place name data, caches the loaded place name data, and at the same time uses the frustum culling technology to remove the place name objects outside the field of view. Specifically, it includes the following steps:

[0005] Step 1: Construct containers with the place name tile number as the data type, simply referred to as NeedToDisplay, for storing the place name tile numbers that need to be displayed currently; containers with the place name tile number as the data type, simply referred to as DisplayNow, for storing the place name tile numbers that are being displayed currently; containers with the place name tile number as the data type, simply referred to as NeedToRemove, for storing the numbers of the place name tiles that need to be removed currently; containers with the place name tile number as the data type, simply referred to as NeedToAdd, for storing the place name tile numbers that are waiting to be added currently;

[0006] Step 2: Use LOD technology to hierarchically slice the place name data, number the sliced place name data tiles by level, and the levels gradually increase from high to low in terms of priority;

[0007] Step 3: Using the quadtree concept, divide the longitude and latitude of the entire map into several regions and levels from top to bottom, which is consistent with the longitude, latitude, and level division of the named place tile data after layer and slice division, facilitating the quick search for the numbered named place tile data to be loaded using the longitude and latitude regions.

[0008] Step 4: Obtain the current viewport position and size of the camera, calculate the longitude and latitude range included in the current camera viewport, traverse the quadtree using this longitude and latitude range, store the numbered tiles to be currently displayed in the NeedToDisplay container, store the numbers of the named place tiles that are currently being displayed but not needed in the NeedToRemove container, and store the numbers of the named place tiles that are needed to be displayed but are not currently being displayed in the NeedToAdd container.

[0009] Step 5: Traverse the numbered named place tiles in the NeedToAdd container, and use the numbered named place tiles to search the named place tile dataset mapping table. The named place tile dataset mapping table is a mapping table in which the numbered named place tiles and the actual named place data are in one-to-one correspondence, and is used to cache the correspondence between the numbered tiles and the actual named place data. If there is no key-value pair corresponding to the numbered named place tile in the named place tile dataset mapping table, then load the corresponding named place data through the named place server or disk, construct a named place dataset, and store the numbered named place tiles and the named place dataset in the named place tile dataset mapping table; otherwise, directly read the named place dataset from the named place tile dataset mapping table.

[0010] Step 6: Traverse all the named place data in the named place dataset, read information such as the name of the named place in the named place data, and construct a named place object to be put into the rendering engine for rendering.

[0011] Step 7: Store all the constructed named place objects in the current named place dataset into a named place object set, and store the numbered named place tiles and the named place object set as a key-value pair in the named place tile object mapping table.

[0012] Step 8: Traverse the named place tile object mapping table, add the named place objects in all the named place object sets to the rendering engine for rendering, and use the frustum culling technique to cull the named place object nodes located outside the screen.

[0013] Step 9: If the camera viewport changes, repeat the operations in Steps 3 - 8.

[0014] The operation of storing the numbers of the named place tiles that are currently being displayed but not needed in the NeedToRemove container is specifically calculated as follows:

[0015] NeedToRemove = DisplayNow – (DisplayNow ∩ NeedToDisplay).

[0016] Among them, NeedToRemove is the number of all the geographical name tiles that need to be removed currently; DisplayNow is the number of all the geographical name tiles that are currently being displayed; NeedToDisplay is the number of all the tiles that need to be displayed currently.

[0017] The numbers of the geographical name tiles that need to be displayed currently but are not being displayed are stored in the NeedToAdd container, and the specific calculation formula is as follows:

[0018] NeedToAdd = NeedToDisplay – (DisplayNow ∩ NeedToDisplay).

[0019] Among them, NeedToAdd is the number of all the geographical name tiles that are waiting to be added currently; DisplayNow is the number of all the geographical name tiles that are currently being displayed; NeedToDisplay is the number of all the tiles that need to be displayed currently.

[0020] A geographical name tile rendering system based on a quadtree, which implements the rendering of geographical name tiles based on the quadtree according to the described geographical name tile rendering method.

[0021] A computer device includes a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, it implements the rendering of geographical name tiles based on the quadtree according to the described geographical name tile rendering method.

[0022] A computer-readable storage medium has a computer program stored thereon. When the computer program is executed by a processor, it implements the rendering of geographical name tiles based on the quadtree according to the described geographical name tile rendering method.

[0023] Compared with the prior art, the significant advantages of the present invention are as follows: By caching the loaded geographical name data and the constructed geographical name rendering objects, the reading frequency of the geographical name data is reduced, the I / O pressure is lowered, and the view frustum culling technology is used to remove the rendering nodes outside the screen, improving the rendering efficiency. While ensuring the display efficiency of geographical names, the configurability of the geographical name text style is retained. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] Figure 1 The flowchart of the method of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0025] In order to make the objectives, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0026] As Figure 1 shown, a method for rendering geographical name tiles of a quadtree includes the following steps:

[0027] 1) Use the LOD technology to slice the geographical name data into layers, and number the geographical name data tiles obtained after slicing according to the levels. The levels gradually increase from high to low in terms of priority.

[0028] 2) Construct a container with the geographical name tile number as the data type to store the geographical name tile numbers that need to be displayed currently, simply referred to as NeedToDisplay.

[0029] 3) Construct a container with the geographical name tile number as the data type to store the geographical name tile numbers that are being displayed currently, simply referred to as DisplayNow.

[0030] 4) Store the tile numbers that need to be displayed currently into the NeedToDisplay container. The specific steps are as follows:

[0031] Step 1, obtain the current viewport position and size of the camera.

[0032] Step 2, calculate the longitude and latitude range included in the current viewport of the camera.

[0033] Step 3, calculate the maximum level of the geographical name levels that need to be loaded currently according to the height of the camera, denoted as maxNum.

[0034] Step 4, traverse from the smallest geographical name level to the maximum level maxNum in sequence. For each level, calculate all the geographical name tile numbers included by the camera at this geographical name level according to the longitude and latitude range included in the current viewport of the camera. And store these tile numbers into the NeedToDisplay container.

[0035] 5) Construct a container with the geographical name tile number as the data type to store the numbers of the geographical name tiles that need to be removed currently. Simply referred to as NeedToRemove.

[0036] 6) Store the numbers of the geographical name tiles that are being displayed but do not need to be displayed currently into the NeedToRemove container. The specific calculation formula is as follows:

[0037] NeedToRemove = DisplayNow – (DisplayNow ∩ NeedToDisplay)

[0038] 7) Construct a container with the geographical name tile number as the data type to store the numbers of the geographical name tiles that need to be added currently. Simply referred to as NeedToAdd.

[0039] 8) Store the numbers of the place name tiles that need to be displayed currently but are not being displayed in the NeedToAdd container. The specific calculation formula is as follows:

[0040] NeedToAdd = NeedToDisplay – (DisplayNow ∩ NeedToDisplay)

[0041] 9) Construct a container for storing place name data to cache place name data, simply referred to as the place name data set. The place name data includes information such as place name and place name longitude and latitude.

[0042] 10) Construct a container for storing place name object nodes, simply referred to as the place name object set.

[0043] 11) Construct a mapping table with the place name tile number and the place name data set as key-value pairs. It is used to cache the place name data set, simply referred to as the place name tile data set mapping table.

[0044] 12) Read the place name tile numbers in the NeedToAdd container and load the corresponding place name data through the server or disk.

[0045] 13) Construct a mapping table with the place name tile number and the place name object set as key-value pairs. It is used to record the relationship between place name tiles and place name objects, simply referred to as the place name tile object mapping table.

[0046] 14) Load the required place name data and construct place name objects. The specific steps are as follows:

[0047] Step 1, traverse the place name tile numbers in the NeedToAdd container and use the place name tile number to look up the place name tile data set mapping table.

[0048] Step 2, if there is no key-value pair corresponding to the place name tile number in the place name tile data set mapping table, load the corresponding place name data through the place name server or disk, construct the place name data set. And store the place name tile number and the place name data set into the place name tile data set mapping table. Otherwise, directly read the place name data set from the place name tile data set mapping table.

[0049] Step 3, construct place name object nodes according to the place name data set. The specific construction process is: traverse all the place name data in the data set, read information such as the place name in the place name data, and construct place name object nodes.

[0050] Step 4, store all the constructed place name object nodes in the current place name data set into a place name object set, and use the place name tile number and the place name object set as key-value pairs and store them into the place name tile object mapping table.

[0051] 15) Remove the place name object set that does not need to be displayed. The specific steps are as follows:

[0052] Step 1: Traverse the place name tile numbers in the NeedToAdd container, and use the place name tile numbers to search for the place name tile object mapping table.

[0053] Step 2: For each set of place name objects, traverse all the place name object nodes in the set of place name objects, remove them from the scene tree so that they will not be rendered subsequently.

[0054] 16) Traverse the place name tile object mapping table, add the place name object nodes in all the sets of place name objects to the scene tree for rendering. And use the frustum culling technology to cull the place name object nodes located outside the screen.

[0055] 17) After each change of the camera viewport, repeat the above process.

[0056] 18) The process ends.

[0057] In summary, the present invention reduces the reading frequency of place name data by caching the loaded place name data and the constructed place name rendering objects, reduces the I / O pressure, and uses the frustum culling technology to remove the rendering nodes outside the screen, improving the rendering efficiency. While ensuring the display efficiency of place names, the configurability of the place name text style is retained. Practice has proved that the present invention is universal for the sharding of place name data, and to a certain extent solves the problem of the display efficiency of the rendering engine in processing the rendering of a large number of place names.

[0058] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered that the scope described in this specification.

[0059] The above-described embodiments merely represent several implementation manners of the present application. The description is relatively specific and detailed, but it should not be construed as a limitation on the scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several deformations and improvements can still be made, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.

Claims

1. A method for rendering place name tiles based on a quadtree, characterized in that The steps include the following: Step 1: Construct containers with the data type of place name tile numbers, abbreviated as NeedToDisplay, for storing the place name tile numbers that need to be displayed currently; containers with the data type of place name tile numbers, abbreviated as DisplayNow, for storing the place name tile numbers that are being displayed currently; containers with the data type of place name tile numbers, abbreviated as NeedToRemove, for storing the numbers of the place name tiles that need to be removed currently; containers with the data type of place name tile numbers, abbreviated as NeedToAdd, for storing the numbers of the place name tiles that are waiting to be added currently; Step 2: Use the LOD technology to slice the place name data into layers, and number the place name data tiles obtained after slicing according to the levels. From high to low in priority, the levels gradually increase; Step 3: Use the quadtree idea to divide the longitude and latitude of the entire map into several regions and several levels from top to bottom, which is consistent with the longitude, latitude and level division of the sliced place name tile data, so as to facilitate finding the numbers of the place name tile data that need to be loaded by using the longitude and latitude regions; Step 4: Obtain the current viewport position and size of the camera, calculate the longitude and latitude range included in the current viewport of the camera, traverse the quadtree using this longitude and latitude range, store the numbers of the tiles that need to be displayed currently into the NeedToDisplay container, store the numbers of the place name tiles that are being displayed but do not need to be displayed currently into the NeedToRemove container, and store the numbers of the place name tiles that need to be displayed but are not being displayed currently into the NeedToAdd container; Step 5: Traverse the numbers of the place name tiles in the NeedToAdd container, and use the number of the place name tile to look up the mapping table of the place name tile data set. If there is no key-value pair corresponding to the number of the place name tile in the mapping table of the place name tile data set, load the corresponding place name data through the place name server or disk, construct a place name data set, and store the number of the place name tile and the place name data set into the mapping table of the place name tile data set; otherwise, directly read the place name data set from the mapping table of the place name tile data set; Step 6: Traverse all the place name data in the place name data set, read information such as the place name in the place name data, and construct a place name object for rendering in the rendering engine; Step 7: Store all the constructed place name object nodes in the current place name data set into a place name object set, and store the number of the place name tile and the place name object set as a key-value pair into the mapping table of the place name tile object; Step 8: Traverse the mapping table of the place name tile object, add the place name object nodes in all the place name object sets to the scene tree for rendering, and use the frustum culling technology to cull the place name object nodes located outside the screen; Step 9: If the camera viewport changes, repeat the operations in Steps 3-8.

2. The method for rendering place name tiles based on a quadtree according to claim 1, characterized in that, The specific calculation formula for storing the numbers of the place name tiles that are being displayed but do not need to be displayed currently into the NeedToRemove container is as follows: NeedToRemove = DisplayNow – (DisplayNow ∩ NeedToDisplay); Where NeedToRemove is the number of the place name tiles that need to be removed currently; DisplayNow is the number of the place name tiles that are currently being displayed; NeedToDisplay is the number of the tiles that need to be displayed currently.

3. The method for rendering place name tiles based on a quadtree according to claim 1, wherein The numbers of the place name tiles that need to be displayed currently but are not being displayed are stored in the NeedToAdd container. The specific calculation formula is as follows: NeedToAdd = NeedToDisplay – (DisplayNow ∩ NeedToDisplay); Where NeedToAdd is the number of the place name tiles that are waiting to be added currently; DisplayNow is the number of the place name tiles that are currently being displayed; NeedToDisplay is the number of the tiles that need to be displayed currently.

4. A quadtree-based geographical name tile rendering system, characterized in that, Based on the place name tile rendering method according to any one of claims 1 - 3, the place name tile rendering based on the quadtree is realized.

5. A computer device, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the place name tile rendering based on the quadtree is realized based on the place name tile rendering method according to any one of claims 1 - 3.

6. A computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the place name tile rendering based on the quadtree is realized based on the place name tile rendering method according to any one of claims 1 - 3.

Citation Information

Patent Citations

  • Tile map data organization method

    CN101944132A

  • Efficient self-adaptive three-dimensional geographical name tile production method and device

    CN106777004A