Efficient management method and application of point cloud integrating NoSQL, space-filling curve and R* tree
By integrating NoSQL databases with space-filling curves and R* trees, and through adaptive partitioning and hierarchical index construction, the problem of low query efficiency in the management of massive point cloud data is solved, achieving efficient point cloud data organization and querying.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- KUNMING UNIV OF SCI & TECH
- Filing Date
- 2024-04-08
- Publication Date
- 2026-05-29
AI Technical Summary
Existing 3D point cloud data management methods are insufficient to effectively support the efficient organization and querying of massive point cloud data, especially in terms of low query efficiency within specific spatial and temporal regions.
By integrating NoSQL databases with space-filling curves and R* trees, and constructing a global index tree through adaptive partitioning and hierarchical indexing, this approach utilizes partitioned subspaces as index units and optimizes the splitting and merging strategies of the R* tree to achieve efficient management of point cloud data.
It improves the index structure space utilization and query efficiency of point cloud data, reduces memory space utilization, provides flexible and scalable indexing strategies, and supports high-performance spatial queries.
Smart Images

Figure CN118535570B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of information retrieval technology, specifically, it relates to an efficient point cloud management method and application that integrates NoSQL, space-filling curves and R* trees. Background Technology
[0002] The widespread application of LiDAR (Light Detection and Ranging) technology has led to a surge in 3D point cloud data, providing valuable insights for the construction and operation of smart cities, but also presenting challenges in data storage and indexing. Efficient LiDAR data storage and management are prerequisites for data processing and analysis in various LiDAR-based scientific applications. Traditional relational database management systems and centralized file storage struggle to meet the storage, expansion, and specific query requirements of massive point cloud data. However, NoSQL databases, renowned for their scalability, speed, and cost-effectiveness, along with hybrid indexing architectures, offer a viable solution.
[0003] To improve the retrieval efficiency of large-scale point clouds, the most effective method is to construct high-performance spatial data structures. Currently, most 3D point cloud indexing schemes rely on quadtrees, octrees, KD-trees, R-trees, and their variants. These typically utilize hierarchical tree-like data structures to recursively divide spatial objects into groups and achieve indexing by constructing regular or irregular bounding boxes to cluster these objects. However, as point cloud data increases exponentially, a single indexing structure struggles to support the efficient organization and querying of massive point clouds.
[0004] R* trees optimize the splitting and merging of internal nodes, alleviating some of the problems associated with R* trees. However, they still have limitations when dealing with massive, dense spatiotemporal data. Typically, queries on large point cloud datasets focus on specific geographic regions. However, because intermediate nodes in R* trees still allow directory rectangles to overlap, hundreds of millions of points within a specific spatial and temporal region may overlap with the query scope. Retrieving data using a top-down approach also requires traversing multiple paths and nodes, increasing query time overhead.
[0005] In view of this, the present invention is proposed. Summary of the Invention
[0006] The technical problem this invention aims to solve is to overcome the shortcomings of existing technologies and provide an efficient point cloud management method and application that integrates NoSQL, space-filling curves, and R* trees. By setting a spatial splitting threshold, the point cloud is divided into non-overlapping and dynamically adjustable partitions, realizing the block organization of discrete point clouds and improving the space utilization of the index structure. The invention also provides a flexible and scalable point cloud indexing strategy by combining Hilbert curves and three-dimensional R* trees to efficiently process point cloud spatial queries. Finally, the invention designs a point cloud storage solution for MongoDB based on a hierarchical index architecture, achieving efficient organization and management of point clouds.
[0007] To solve the above-mentioned technical problems, the basic concept of the technical solution adopted by the present invention is as follows:
[0008] This invention provides a method for efficient point cloud management that integrates NoSQL, space-filling curves, and R* trees, comprising the following steps:
[0009] Step 1) Perform adaptive partitioning of the three-dimensional space based on the spatial distribution density of the original point cloud data to achieve block organization and management of the point cloud and avoid data skew.
[0010] Step 2) Based on the spatial partitioning results of the point cloud data, construct a hierarchical index by combining the spatial filling curve and the R* tree;
[0011] Step 3) Design a storage solution for NoSQL based on a point cloud hierarchical index architecture.
[0012] Furthermore, the adaptive partitioning of the point cloud 3D space in step 1) is constructed through the following steps:
[0013] Step 1a) Initial Spatial Partitioning: Sample the original data at a sampling rate of 1% to determine the initial spatial partitioning order Nini, dividing the three-dimensional space into... Each subspace is divided into subspaces, and the three-dimensional point objects are distributed into the corresponding spatial units;
[0014] Step 1b) Dynamic partitioning of subspaces: Select subspaces that need further partitioning by using a pre-set spatial adaptive splitting threshold (Pmax) and then partition them.
[0015] Step 1c) Repeat the dynamic partitioning operation in step 1b) until the number of three-dimensional points contained in all subspaces is less than Pmax or the maximum spatial partitioning order is reached.
[0016] Furthermore, the hierarchical index in step 2) is constructed through the following steps:
[0017] Step 2a) Global Index Construction: Construct a global index tree using space-filling curves and adaptive partitioning of 3D space;
[0018] Step 2b) Local index construction: Local indexes are implemented using an R* tree structure, with each independent partition having a unique corresponding R* tree.
[0019] Furthermore, the space-filling curve is a Hilbert curve.
[0020] Further, step 2a) global index construction includes:
[0021] Step 2a1) Using a recursive construction method similar to an octree, the final spatial adaptive partitioning result is obtained through the iterative octet method of the three-dimensional spatial grid;
[0022] Step 2a2) Divide each partitioned subspace into at least one computational unit;
[0023] Step 2a3) Take the center point of the three-dimensional space cube of the point cloud subspace as the identifier, then each point cloud subspace can be represented as a three-dimensional coordinate:
[0024] ((x max - x min ) / 2, (y max - y min ) / 2, (z max - z min ) / 2)
[0025] Step 2a4) Use the center point of the three-dimensional spatial cube of the aforementioned point cloud partition subspace as the vector identifying the cloud partition subspace; let the identification vector of the i-th point cloud partition subspace be (x' i y' i , z' i ), and calculate (x' i y' i , z' i The 3D Hilbert encoding of the point cloud subspace is used to characterize the position information of the subspace of the point cloud in 3D space;
[0026] Step 2a5) Construction of the root node of the index subtree: The root node of the index subtree of each partition contains pointers to its child nodes and the smallest bounding rectangle that can enclose all the 3D points of the partition.
[0027] Step 2a6) Construction of the index tree root node: The global index tree root node contains the Hilbert encoding array of all partitions, which is obtained by calculation to represent the three-dimensional spatial information of the point cloud partition, as well as pointers to its child nodes and the root nodes of the local index subtrees of the partitions.
[0028] Step 2a7) Construction of index tree child nodes: For leaf nodes, each leaf node stores the three-dimensional coordinate information and Hilbert encoding of the corresponding partition subspace; for non-leaf nodes, each non-leaf node contains pointers to its child nodes and a three-dimensional cube that can enclose all its leaf nodes.
[0029] Step 2a8) Construction of the global index tree: The root node of the generated global index tree can be organized according to the octree structure, which is the highest level of the global index tree.
[0030] Further, step 2b) local index construction includes:
[0031] Step 2b1) Leaf node construction: For the global index tree, each leaf node stores the spatial location information and Hilbert encoding of the corresponding partition; for the partition local index subtree, each leaf node stores the 3D point object in the corresponding partition and its related attribute information.
[0032] Step 2b2) Construction of non-leaf nodes: For the global index tree, each non-leaf node contains a pointer to its child nodes and a 3D cube that can enclose all its leaf nodes; for the partitioned local index subtree, each non-leaf node contains a pointer to its child nodes and a minimum bounding rectangle that can enclose all its leaf nodes.
[0033] Furthermore, step 3) of designing a storage solution specifically for MongoDB is constructed through the following steps:
[0034] Step 3a) The hierarchical index structure is stored in a collection, and the documents in the collection store the ROWID number of the root node of the R* tree and its node information. Curve coding is chosen as the ROWID for each document in MongoDB.
[0035] Step 3b) Serialize the R* tree node data of the spatial partition corresponding to each curve code into binary blocks, i.e., BinData type elements, and store them in the document.
[0036] Another aspect of the present invention provides a method for querying large-scale point cloud data using a hierarchical index architecture constructed using the above method, comprising:
[0037] Step 1) Access the root node of the aforementioned global index tree according to the given spatial query range, calculate the root node of the partition index subtree that intersects with the spatial query range, and add the code used to identify the root node of each partition index subtree to the list of root nodes to be queried.
[0038] Step 2) Traverse the root node list in Step 1), obtain the child node information of the root node of each partition index subtree from MongoDB, and deserialize it into memory for parsing.
[0039] Step 3) Traverse each leaf node in the list of child nodes obtained in Step 2), retrieve the 3D point objects in each leaf node, and add the 3D points whose spatial locations intersect with the given spatial query range to the query result set.
[0040] Step 4) When the list of child nodes to be traversed becomes empty, the query result set will contain all the point cloud data that need to be analyzed and processed in the next step.
[0041] By adopting the above technical solution, the present invention has the following beneficial effects compared with the prior art.
[0042] This invention employs a flexible spatial partitioning strategy to partition point cloud data and uses point cloud spatial partitions as index units, improving index construction efficiency and space utilization. Secondly, it utilizes the spatial location information of each point cloud spatial partition and Hilbert curves to construct a global Hilbert tree index, giving the index structure high flexibility and scalability. By pruning the query space, it effectively reduces memory usage. Simultaneously, it uses R* trees to construct local indexes for point cloud data within partitions. Compared to R-trees, R* trees comprehensively optimize the area, side length, and overlap of each minimum bounding rectangle in the path, achieving more reasonable spatial clustering and providing high-performance spatial query support.
[0043] The specific embodiments of the present invention will now be described in further detail with reference to the accompanying drawings. Attached Figure Description
[0044] The accompanying drawings, which form part of this application, are used to provide a further understanding of the invention. The illustrative embodiments and descriptions of the invention are used to explain the invention, but do not constitute an undue limitation of the invention. Obviously, the drawings described below are merely some embodiments, and those skilled in the art can obtain other drawings based on these drawings without creative effort. In the drawings:
[0045] Figure 1 This invention provides a flowchart for adaptive spatial partitioning using global point cloud 3D spatial information.
[0046] Figure 2 A schematic diagram of the point cloud hierarchical index structure provided by the present invention;
[0047] Figure 3 The invention provided herein is based on Figure 2 The point cloud spatial query process based on the constructed hierarchical index structure.
[0048] It should be noted that these accompanying drawings and textual descriptions are not intended to limit the scope of the invention in any way, but rather to illustrate the concept of the invention to those skilled in the art by referring to specific embodiments. Detailed Implementation
[0049] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments will be clearly and completely described below with reference to the accompanying drawings. The following embodiments are used to illustrate the present invention, but are not intended to limit the scope of the present invention.
[0050] Example 1
[0051] This embodiment describes an efficient point cloud management method integrating NoSQL, space-filling curves, and R* trees. The method mainly includes three steps: dynamic spatial partitioning of the original point cloud, construction of a hierarchical index tree, and design of a storage scheme oriented towards the hierarchical index structure. The specific details are as follows:
[0052] Step 1) Figure 1 This is a flowchart illustrating adaptive partitioning using global point cloud spatial information, provided by the present invention. For example... Figure 1 As shown, several subspace partitions are constructed based on the 3D spatial boundary of the global point cloud and the initial number of partitions. Adaptive partitioning is achieved by continuously adjusting the spatial interval range, ensuring that the number of 3D points falling in each partition does not exceed a preset threshold. The specific steps are as follows:
[0053] Step 1a) Initial Spatial Partitioning: Sample the original data at a sampling rate of 1% to determine the initial spatial partitioning order Nini, dividing the three-dimensional space into... Each subspace is divided into subspaces, and the three-dimensional point objects are distributed into the corresponding spatial units;
[0054] Step 1b) Dynamic partitioning of subspaces: Select subspaces that need further partitioning by using a pre-set spatial adaptive splitting threshold (Pmax) and then partition them.
[0055] Step 1c) Repeat the dynamic partitioning operation in step 1b) until the number of three-dimensional points contained in all subspaces is less than Pmax or the maximum spatial partitioning order is reached, at which point the partitioning process terminates.
[0056] Step 2) Construct a hierarchical index tree for the point cloud based on Hilbert curves and R* trees;
[0057] The Hilbert curve is a one-dimensional continuous curve that can span multi-dimensional space and an effective dimensionality reduction method. It is widely used in various GIS algorithms and exhibits high performance in spatial indexing and spatial partitioning of various data types. Compared to the Z-curve, the Hilbert curve has better spatial clustering and discrete approximation. Adjacent subspaces in space are also adjacent and continuous on the curve, effectively realizing the mapping from multi-dimensional space to one-dimensional space without the phenomenon of "spatial abrupt change".
[0058] R* trees are a variant of the spatial indexing structure R-trees. Compared to R-trees, R* trees comprehensively optimize the splitting and merging strategies of their internal nodes, as well as the volume, side length, and overlap of each minimum bounding rectangle in the path, achieving more reasonable spatial clustering and providing high-performance spatial query support. They demonstrate superior performance advantages in indexing rectangular data, high-dimensional point data, irregular spatial objects, and in handling query operations and map overlay displays.
[0059] Based on the point cloud spatial partitioning method in step 1), a hierarchical spatial index tree is constructed using Hilbert curves and R* trees;
[0060] Figure 2 This is a schematic diagram of the hierarchical index tree structure provided by the present invention, such as... Figure 2 As shown, the index tree construction process is divided into global index tree construction and local index tree construction, and the specific steps are as follows:
[0061] Step 2a) Construct a global index tree using Hilbert curves and adaptive partitioning of 3D space, including the following steps:
[0062] Step 2a1) Using a recursive construction method similar to an octree, the final spatial adaptive partitioning result is obtained through the iterative octet method of the three-dimensional spatial grid;
[0063] Step 2a2) Divide each partitioned subspace into at least one computational unit;
[0064] Step 2a3) Take the center point of the three-dimensional space cube of the point cloud subspace as the identifier, then each point cloud subspace can be represented as a three-dimensional coordinate:
[0065] ((x max - x min ) / 2, (y max - y min ) / 2, (z max - z min ) / 2)
[0066] Step 2a4) Use the center point of the three-dimensional spatial cube of the aforementioned point cloud subspace as the vector identifying the subspace. Let the identification vector of the i-th point cloud subspace be (x' i y' i , z' i ), and calculate (x' i y' i , z' i The 3D Hilbert encoding of the point cloud subspace is used to characterize the position information of the subspace of the point cloud in 3D space;
[0067] Step 2a5) Construction of the root node of the index subtree: The root node of the index subtree of each partition contains pointers to its child nodes and the smallest bounding rectangle that can enclose all the three-dimensional points of the partition.
[0068] Step 2a6) Construction of the index tree root node: The global index tree root node contains the Hilbert encoding array of all partitions, which is obtained by calculation to represent the three-dimensional spatial information of the point cloud partition, as well as pointers to its child nodes and the root nodes of the local index subtrees of the partitions.
[0069] Step 2a7) Construction of index tree child nodes: For leaf nodes, each leaf node stores the three-dimensional coordinate information and Hilbert encoding of the corresponding partition subspace; for non-leaf nodes, each non-leaf node contains a pointer to its child nodes and a three-dimensional cube that can enclose all its leaf nodes.
[0070] Step 2a8) Construction of the global index tree: The root node of the generated global index tree can be organized according to the octree structure, which is the highest level of the global index tree.
[0071] Step 2b) Implement local indexing using a 3D R* tree structure; each independent partition corresponds to a spatial R* tree, and all 3D points in the partition are grouped and inserted into the R* tree, including the following steps:
[0072] Step 2b1) Construction of leaf nodes: Each leaf node stores the 3D point objects in the corresponding partition and their related attribute information;
[0073] Step 2b2) Construction of non-leaf nodes: Each non-leaf node contains pointers to its child nodes and a minimum bounding rectangle that can enclose all its leaf nodes.
[0074] Compared to the traditional method of using each 3D point data record as an index unit, the method provided by this invention, which uses partitioned subspaces as index units, significantly reduces the complexity of index tree construction, improves running speed, saves system overhead, and can significantly improve the efficiency of point cloud data management and query. Furthermore, by using uneven spatial partitioning, it optimizes the utilization of index space, avoids data skew, and meets the needs of continuous accumulation of point cloud data generated by LiDAR continuous 3D scanning in space.
[0075] The number of 3D point data entries stored in the point cloud partition subspace, i.e., the size of the point cloud partition subspace, affects the depth of the index tree. The larger the point cloud partition subspace, the smaller the index tree depth and the faster the running speed; conversely, the smaller the point cloud partition subspace, the larger the index tree depth and the higher the query accuracy.
[0076] Step 3) Design a NoSQL storage solution based on the hierarchical index structure described in Step 2). The specific steps are as follows:
[0077] Step 3a) Select MongoDB as the storage medium for the hierarchical index architecture.
[0078] MongoDB's organizational structure is database-collection-document object-element. Collections are similar to tables in relational databases, document objects are similar to records, and elements are similar to fields. It supports flexible design patterns; documents (records) within a collection do not need to have strictly identical structures, and it has rich data formats suitable for point cloud data storage.
[0079] Step 3b) Each point cloud partition subspace corresponds to a document record in the same MongoDB collection. Hilbert encoding is selected as the ROWID for each MongoDB document, used to identify the root node of the local R* tree of the corresponding partition. The internal node information of the R* tree is serialized into BinData type data and stored in the same document.
[0080] Example 2
[0081] This embodiment describes a method for performing 3D spatial queries on large-scale point cloud data based on the index tree constructed above. For example, the spatial boundary of the large-scale point cloud data to be queried is:
[0082]
[0083] in These are the conditions for taking values in three-dimensional geographic space. Figure 3 The flowchart for point cloud 3D spatial retrieval based on a hierarchical index tree structure provided by this invention includes the following specific steps:
[0084] Step 1) Access the root node of the aforementioned global index tree according to the given spatial query range, calculate the root node of the partition index subtree that intersects with the spatial query range, and add the code used to identify the root node of each partition index subtree to the list of root nodes to be queried.
[0085] Step 2) Traverse the root node list from Step 1), retrieve the child node information of the root node of each partition index subtree from MongoDB, and deserialize it into memory for parsing. If the node is a non-leaf node, traverse all child nodes of the node and add child nodes whose spatial boundaries intersect with the given spatial query range to the list of child nodes to be traversed; if the node is a leaf node, traverse all records of the node and add leaf nodes whose spatial boundaries intersect with the given spatial query range to the list of leaf nodes to be precisely filtered spatially; when the list of child nodes to be traversed becomes empty, the list of multiple sets of leaf nodes to be queried contains the set of all leaf nodes to be precisely filtered spatially.
[0086] Step 3) Traverse each leaf node in the list of child nodes obtained in Step 2), retrieve the 3D point objects in each leaf node, and add the 3D points whose spatial locations intersect with the given spatial query range to the query result set.
[0087] Step 4) When the list of child nodes to be traversed becomes empty, the query result set will contain all the point cloud data that need to be analyzed and processed in the next step.
[0088] Although the above embodiments employ Hilbert curves and R* tree structures to construct hierarchical index trees for large-scale point cloud data, those skilled in the art should understand that various spatial index structures can be used in other embodiments to implement the method of index construction based on point cloud partition subspaces as index units provided by this invention.
[0089] The above description is merely a preferred embodiment of the present invention and is not intended to limit the present invention in any way. Although the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the present invention. Any person skilled in the art can make some modifications or alterations to the above-described technical content to create equivalent embodiments without departing from the scope of the present invention. Any simple modifications, equivalent changes, and alterations made to the above embodiments based on the technical essence of the present invention without departing from the scope of the present invention shall still fall within the scope of the present invention.
Claims
1. A method for efficient point cloud management integrating NoSQL, space-filling curves, and R* trees, characterized in that, Includes the following steps: Step 1) Perform adaptive 3D spatial partitioning based on the spatial distribution density of the original point cloud data to achieve block organization and management of the point cloud and avoid data skew; the adaptive partitioning of the point cloud 3D space is constructed through the following steps: Step 1a) Initial Spatial Partitioning: Sample the original data at a sampling rate of 1% to determine the initial spatial partitioning order Nini, dividing the three-dimensional space into... Each subspace is divided into subspaces, and the three-dimensional point objects are distributed into the corresponding spatial units; Step 1b) Dynamic partitioning of subspaces: Select subspaces that need further partitioning by using a pre-set spatial adaptive splitting threshold Pmax and then partition them. Step 1c) Repeat the dynamic partitioning operation in step 1b) until the number of three-dimensional points contained in all subspaces is less than Pmax or the maximum spatial partitioning order is reached. Step 2) Based on the spatial partitioning results of the point cloud data, construct a hierarchical index by combining the space filling curve and the R* tree; the hierarchical index is constructed through the following steps: Step 2a) Global Index Construction: Construct a global index tree using space-filling curves and adaptive partitioning of 3D space; global index construction includes: Step 2a1) Using a recursive construction method similar to an octree, the final spatial adaptive partitioning result is obtained through the iterative octet method of the three-dimensional spatial grid; Step 2a2) Divide each partitioned subspace into at least one computational unit; Step 2a3) Take the center point of the three-dimensional space cube of the point cloud subspace as the identifier, then each point cloud subspace can be represented as a three-dimensional coordinate: ((x max - x min ) / 2,(y max - y min ) / 2,(z max - z min ) / 2) Step 2a4) Use the center point of the three-dimensional spatial cube of the aforementioned point cloud partition subspace as the vector identifying the cloud partition subspace; let the identification vector of the i-th point cloud partition subspace be (x' i y' i , z' i ), and calculate (x' i y' i , z' i The 3D Hilbert encoding of the point cloud subspace is used to characterize the position information of the subspace of the point cloud in 3D space; Step 2a5) Construction of the root node of the index subtree: The root node of the index subtree of each partition contains pointers to its child nodes and the smallest bounding rectangle that can enclose all the 3D points of the partition. Step 2a6) Construction of the index tree root node: The global index tree root node contains the Hilbert encoding array of all partitions, which is obtained by calculation to represent the three-dimensional spatial information of the point cloud partition, as well as pointers to its child nodes and the root nodes of the local index subtrees of the partitions. Step 2a7) Construction of index tree child nodes: For leaf nodes, each leaf node stores the three-dimensional coordinate information and Hilbert encoding of the corresponding partition subspace; for non-leaf nodes, each non-leaf node contains pointers to its child nodes and a three-dimensional cube that can enclose all its leaf nodes. Step 2a8) Construction of the global index tree: The root node of the generated global index tree can be organized according to the octree structure, which is the highest level of the global index tree; Step 2b) Local index construction: Local indexes are implemented using an R* tree structure, with each independent partition having a unique corresponding R* tree; Step 3) Design a storage solution for NoSQL based on a point cloud hierarchical index architecture.
2. The efficient point cloud management method integrating NoSQL, space-filling curves, and R* trees according to claim 1, characterized in that, The space-filling curve is a Hilbert curve.
3. The efficient point cloud management method integrating NoSQL, space-filling curves, and R* trees according to claim 1, characterized in that, Step 2b) Local index construction includes: Step 2b1) Leaf node construction: For the global index tree, each leaf node stores the spatial location information and Hilbert encoding of the corresponding partition; for the partition local index subtree, each leaf node stores the 3D point object in the corresponding partition and its related attribute information. Step 2b2) Construction of non-leaf nodes: For the global index tree, each non-leaf node contains a pointer to its child nodes and a 3D cube that can enclose all its leaf nodes; for the partitioned local index subtree, each non-leaf node contains a pointer to its child nodes and a minimum bounding rectangle that can enclose all its leaf nodes.
4. The efficient point cloud management method integrating NoSQL, space-filling curves, and R* trees according to claim 1, characterized in that, Step 3) The MongoDB-oriented storage solution design is constructed through the following steps: Step 3a) The hierarchical index structure is stored in a collection, and the documents in the collection store the ROWID number of the root node of the R* tree and its node information; wherein, curve encoding is selected as the ROWID of each document in MongoDB; Step 3b) Serialize the R* tree node data of the spatial partition corresponding to each curve code into binary blocks, i.e., BinData type elements, and store them in the document.
5. A method for querying large-scale point cloud data using a hierarchical index architecture constructed according to any one of claims 1 to 4, characterized in that, include: Step 1) Access the root node of the aforementioned global index tree according to the given spatial query range, calculate the root node of the partition index subtree that intersects with the spatial query range, and add the code used to identify the root node of each partition index subtree to the list of root nodes to be queried. Step 2) Traverse the root node list in Step 1), obtain the child node information of the root node of each partition index subtree from MongoDB, and deserialize it into memory for parsing. Step 3) Traverse each leaf node in the list of child nodes obtained in Step 2), retrieve the 3D point objects in each leaf node, and add the 3D points whose spatial locations intersect with the given spatial query range to the query result set. Step 4) When the list of child nodes to be traversed becomes empty, the query result set will contain all the point cloud data that need to be analyzed and processed in the next step.