A Monitoring Method and System for Elevation Change of Monitoring Points of a 3D Model

By using the tile transformation matrix and the Moler-Trubley algorithm in the three-dimensional model, the automated monitoring of the elevation changes of the monitoring point in the three-dimensional model is achieved, solving the problem of lack of automation in the existing technology and improving measurement efficiency and accuracy.

CN119618158BActive Publication Date: 2025-06-27SHENZHEN QIHANG TERRITORY TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411684228.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2023-12-20
Filing Date
2024-11-22
Publication Date
2025-06-27
Estimated Expiration
2044-11-22

AI Technical Summary

Technical Problem

The lack of automation in the height measurement of three-dimensional models results in limited measurement efficiency and accuracy of measurement.

Method used

Through a three-dimensional model monitoring point elevation change monitoring method, the tile boundary is calculated using the tile central transformation matrix and boundary volume, and the child nodes are traversed to find the minimum tile glb file where the monitoring point is located, and the Mole-Trubley algorithm is used to calculate the intersection point of the ray and the triangle plane, and convert it into 3DTiles coordinates to obtain the elevation change.

Benefits of technology

It realizes efficient, accurate and automatic monitoring of elevation changes of three-dimensional model monitoring points, and is suitable for elevation changes monitoring of large-scale 3D urban and environmental models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119618158B_ABST
    Figure CN119618158B_ABST
Patent Text Reader

Abstract

The present application relates to a method for monitoring elevation changes of monitoring points in a three-dimensional model, the method comprising: inputting the longitude and latitude and elevation of a monitoring reference point Z; obtaining the longitude and latitude of a monitoring point P; matching a point P' having the same longitude and latitude as the monitoring point P and an elevation of 0 and converting the point P' from longitude and latitude coordinates to a point A in the EPSG4978 coordinate system; calculating tile boundaries according to a tile centralized transformation matrix and a boundary volume, traversing child nodes to find the minimum tile glb file where the monitoring point P is located; converting point A to a vertex coordinate V stored in glTF A ; Find V A The intersection of the ray with #imgabs0# as the starting point and the glTF model as the direction vector. After obtaining one or more intersection points, the intersection point I n (x, y, z) is converted into 3D Tiles coordinates A n (x,y,z); take A n Point A with the largest Z-axis value highest ; A highest The coordinates of the monitoring point P (lng, lat, h) are obtained by converting the 3D Tiles coordinates into longitude and latitude coordinates; lng, lat are divided into the longitude and latitude corresponding to the monitoring point P; the elevation change of the monitoring point P is obtained based on the difference between the elevation of the monitoring point P and the elevation of the reference point Z.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical field of three-dimensional model data processing, and in particular, to a method and system for monitoring the elevation change of monitoring points of a three-dimensional model. Background Art

[0002] Currently, the height of a three-dimensional model is usually obtained by performing triangulation at the front end with the help of Cesium (Cesium is an open-source JavaScript library for creating 3D GIS applications). Cesium is a cross-platform and cross-browser JavaScript library for displaying the three-dimensional earth and maps.

[0003] Performing triangulation at the front end with Cesium is not conducive to realizing the automation of height measurement. How to achieve the automation of height monitoring of three-dimensional models is a technical problem that needs to be solved by those skilled in the art. Summary of the Invention

[0004] To at least partially solve the above technical problems, this application provides a method and system for monitoring the elevation change of monitoring points of a three-dimensional model.

[0005] In a first aspect, a method for monitoring the elevation change of monitoring points of a three-dimensional model provided by this application adopts the following technical solution.

[0006] A method for monitoring the elevation change of monitoring points of a three-dimensional model includes:

[0007] Input the longitude, latitude, and elevation of the monitoring reference point Z; obtain the longitude and latitude of the monitoring point P;

[0008] Match the point P' with the same longitude and latitude as the monitoring point P and an elevation of 0, and convert P' from longitude and latitude coordinates to a point A in the EPSG4978 coordinate system;

[0009] Calculate the tile boundary according to the transformation matrix and bounding volume in the tile set, and traverse the child nodes to find the smallest tile glb file where the monitoring point P is located;

[0010] Convert the point A to the vertex coordinate V stored in glTF A ;

[0011] Traverse the mesh primitives in glTF to obtain each triangle of the triangular mesh, and use the Möller-Trumbore ( -Trumbore) algorithm to find the intersection point I of the triangle plane where each triangle is located and the vertex coordinate V A as the starting point of the ray and as the direction vector of the ray n (x, y, z);

[0012] After obtaining one or more intersection points, convert the glTF intersection point In (x, y, z) is converted to 3DTiles coordinate A n (x, y, z);

[0013] Take A n The point A with the largest Z-axis value highest ; Convert A highest Convert from 3Dtiles coordinates to longitude and latitude coordinates to obtain the coordinates of the monitoring point P, P(lng, lat, h); lng and lat correspond to the longitude and latitude of the monitoring point P respectively;

[0014] Based on the difference between the elevation of the monitoring point P and the elevation of the reference point Z, obtain the elevation change of the monitoring point P.

[0015] Optionally, calculate the tile boundary according to the transformation matrix and the bounding volume in the tile set, and traverse the child nodes to find the smallest tile glb file where the monitoring point P is located, including:

[0016] S201. Obtain one of the root nodes in the tile set;

[0017] S202. Calculate the transformation matrix T;

[0018] S203. Determine whether the monitoring point is within the defined range of the bounding volume; if not, execute S204; if so, execute S205;

[0019] S204. Perform a breadth-first traversal and determine whether there are other nodes; if there are, return to S202; if not, return that the monitoring point is outside the model range;

[0020] S205. Determine whether there are child nodes; if there are, execute S2051; if not, execute S2052;

[0021] S2051. Obtain the first child node and return to S202;

[0022] S2052. Obtain the glb file or reference other tile sets;

[0023] S2053. Determine whether the obtained is a glb file; if so, obtain the smallest tile glb file; if not, return to S201 and obtain the root node of the referenced tile set.

[0024] Optionally, the formula for calculating the transformation matrix T is:

[0025] T(i,j) = T root ×…×T (i,j) ; where T (i,j) is the transformation matrix of the node corresponding to the level and position in the tile set, i is the level index, j is the position index in the current level, and both i and j start from 0; where T root(i = 0, j = 0) is the root node transformation matrix, and T(i, j) is the multiplication of the node transformation matrices of the shortest path from the root node to the desired child node.

[0026] Optionally, convert the point A(x, y, z) to the vertex coordinate V stored in glTF A , including:

[0027] Find the node transformation matrix of glTF; among them, finding the node transformation matrix of glTF includes: finding the specified entry node from the scene, finding the included node in the scenes, obtaining the matrix or T, R, S of the shortest path node and node.children from the root node to the desired child node until the node type is mesh, and performing post-multiplication in the order from the parent node to the child node; M glTF = M root ×…×M (i,j) ; M (i,j) is the matrix transformation matrix or T×R×S;

[0028] Find the transformation matrix for converting the glTF vertex coordinates to 3DTiles coordinates: T glTF = T tile ×R x ×M glTF ; T tile is the transformation matrix of the leaf node referenced by the glb type file included in 3DTiles; and,

[0029] Convert the point A(x, y, z) to the vertex coordinate V A (x', y', z');

[0030] Optionally, before inputting the longitude, latitude and elevation of the monitoring reference point Z, the method further includes: calibrating the longitude, latitude and elevation of the 3D model.

[0031] Optionally, calibrating the longitude, latitude and elevation of the 3D model includes:

[0032] Select appropriate ground control points from the reference data as calibration points;

[0033] For each calibration point, calculate the deviation value between the coordinate in the model and the actual geographic coordinate;

[0034] According to the calculated deviation value, perform at least one of translation, rotation and scaling operations on the entire model to make the coordinates in the model close to the actual geographic coordinates;

[0035] Use additional ground control points not participating in the calibration process to verify the calibration effect;

[0036] After the calibration is completed, save the adjusted 3D model.

[0037] In a second aspect, a monitoring system for the elevation change of monitoring points of a 3D model provided by the present application adopts the following technical solutions.

[0038] A monitoring system for the elevation change of monitoring points of a 3D model, comprising:

[0039] A first processing module for: inputting the longitude, latitude and elevation of the monitoring reference point Z; obtaining the longitude and latitude of the monitoring point P;

[0040] A second processing module for: matching a point P' with the same longitude and latitude as the monitoring point P and an elevation of 0, and converting P' from longitude and latitude coordinates to a point A in the EPSG4978 coordinate system;

[0041] A third processing module for: calculating the tile boundary according to the transformation matrix and the bounding volume in the tile set, and traversing the child nodes to find the smallest tile glb file where the monitoring point P is located;

[0042] A fourth processing module for: converting the point A into the vertex coordinate V stored in glTF A ;

[0043] A fifth processing module for: traversing the mesh primitives in glTF to obtain each triangle of the triangular mesh, and using the Möller–Trumbore algorithm to find the intersection point I of each triangle surface where the triangle is located and the ray with the vertex coordinate V A as the starting point of the ray and as the direction vector n (x, y, zz));

[0044] A sixth processing module for: after obtaining one or more intersection points, converting the glTF intersection point I n (x, y, z) into 3DTiles coordinates A n (x, y, z);

[0045] A seventh processing module for: taking the point A with the largest Z-axis value of the point A n ; converting A highest from 3Dtiles coordinates to longitude and latitude coordinates to obtain the coordinates P(log, lat, h) of the monitoring point P; lng and lat respectively correspond to the longitude and latitude of the monitoring P; highest ;

[0046] An eighth processing module for: obtaining the elevation change of the monitoring point P based on the difference between the elevation of the monitoring point P and the elevation of the reference point Z.

[0047] In a third aspect, the present application discloses an electronic device, including a memory and a processor, where a computer program for loading and executing any of the above methods by the processor is stored on the memory.

[0048] In a fourth aspect, the present application discloses a computer-readable storage medium storing a computer program capable of being loaded and executed by a processor to perform any of the above methods. Description of the Drawings

[0049] Figure 1 is the simplified glTF structure;

[0050] Figure 2 is a flowchart of a method for monitoring the elevation change of a monitoring point of a 3D model according to an embodiment of the present application;

[0051] Figure 3 is a system block diagram of a method for monitoring the elevation change of a monitoring point of a 3D model according to an embodiment of the present application;

[0052] In the figure, 201 is the first processing module; 202 is the second processing module; 203 is the third processing module; 204 is the fourth processing module; 205 is the fifth processing module; 206 is the sixth processing module; 207 is the seventh processing module; 208 is the eighth processing module. Detailed Embodiments

[0053] The following further describes the present application in conjunction with Figures 1-3 the accompanying drawings and specific embodiments:

[0054] First, some terms appearing in the present application are explained.

[0055] 3DTiles uses a right-handed Cartesian coordinate system, and the z-axis is defined as up in the local Cartesian coordinate system. The global coordinate system of the tileset is usually located in the World Geodetic System 1984 (WGS84) Earth-centered, Earth-fixed (ECEF) reference frame (EPSG4978). All linear distances are in meters and all angles are in radians.

[0056] boundingVolume: The bounding volume is used to define the spatial range that encloses a tile or the content of a tile.

[0057] region: It is used to define a bounding geographic region, and the order of its latitude, longitude, and height coordinates is [west, south, east, north, minHeight, maxHeight]. Latitude and longitude are in the WGS84 datum defined in EPSG4979 and are in radians.

[0058] box: The oriented bounding box that defines the right-handed Cartesian coordinate system (x, y, z) with the z-axis pointing up. The first three elements define the x, y, and z values of the center of the box, the next three elements define the direction and half-length of the x-axis, the next three elements define the direction and half-length of the y-axis, and the last three elements define the direction and half-length of the z-axis. The storage format is as shown in boundingVolumn.box below, which is a one-dimensional array in the order from top to bottom and from left to right.

[0059]

[0060] sphere: Its format is [x, y, z, r] and is used to define a bounding sphere. The x, y, and z values of the center of the sphere in the (x, y, z) Cartesian coordinate system, where the z-axis points up. The last element r defines the radius.

[0061] transform: It is a 4×4 affine transformation matrix, stored in column-major order, and each tile has an optional transform attribute. This matrix is used to transform the tile from the local coordinate system to the coordinate system of the parent tile, or in the case of the root tile, to the coordinate system of the tile set. The storage format is as shown in T s , which is a one-dimensional array in the order from top to bottom and from left to right.

[0062]

[0063] content: It can contain a boundingVolume that can hold tilecontent, as well as tile content that references one of the tile formats (glb, b3dm, i3dm, pnts, cmpt) defined in the tile format, or references another tileset JSON (tileset.json).

[0064] glTF uses a right-handed coordinate system. glTF defines +Y as up, +Z as forward, and -X as right; the front of a glTF resource faces +Z. All linear distances are in meters. All angles are in radians. Positive rotation is counterclockwise.

[0065] Refer to Figure 1 for the simplified glTF structure.

[0066] scene: It is the entry point for the scene description stored in glTF. It refers to the node that defines the scene graph.

[0067] node: It is a node in the scene graph hierarchy. It can contain transformations (e.g., rotation or translation), and it can reference other (child) nodes. Additionally, it can refer to a mesh or camera instance "attached" to the node, or a skin that describes mesh deformation.

[0068] mesh: Describes the geometric objects that appear in the scene. It refers to the accessor object used to access the actual geometric data, as well as the material that defines the appearance of the object when rendered.

[0069] accessor: Serves as an abstract source for any data. It is used by mesh, skin, and animation, and provides geometric data, skinning parameters, and time-related animation values. It refers to the bufferView, which is a part of the buffer that contains the actual raw binary data.

[0070] Transformation of the node

[0071] (1) matrix: Is a 4×4 affine transformation matrix, and the matrix is stored in column-major order. The storage format is as shown in M s , which is a one-dimensional array in the order from top to bottom and from left to right.

[0072]

[0073] (2) T, R, S property transformations: The TRS properties must be converted to a matrix and post-multiplied in the order of T×R×S; first, the scaling is applied to the vertices, then the rotation, and then the translation.

[0074] translation: Only contains translations in the x, y, and z directions, represented as an array [x, y, z];

[0075] rotation: Represented in the form of a quaternion [x, y, z, w], where the w component is the cosine of half of the rotation angle;

[0076] scale: Contains the scaling factors along the x, y, and z axes, represented as an array [x, y, z];

[0077] The final transformation matrix is: (TRS are all converted to 4×4 affine transformation matrices)

[0078] M = T×R×S.

[0079] In order to convert the glTF coordinates to 3DTiles coordinates, the y-axis of the glTF coordinate axis needs to be rotated upward to the z-axis. The storage format of the transformation matrix corresponding to the rotation of the y-axis upward to the z-axis is as shown in R s , and the matrix is stored in column-major order, which is a one-dimensional array in the order from top to bottom and from left to right.

[0080]

[0081] The embodiments of the present application disclose a method for monitoring the elevation change of monitoring points of a 3D model, including the following steps:

[0082] Step 101: Input the longitude, latitude and elevation of the monitoring reference point Z; obtain the longitude and latitude of the monitoring point P.

[0083] Step 102: Match the point P' with the same longitude and latitude as the monitoring point P and an elevation of 0, and convert P' from longitude and latitude coordinates to a point A in the EPSG4978 coordinate system.

[0084] Step 103: Calculate the tile boundary according to the transformation matrix and the boundary volume in the tile set, and traverse the child nodes to find the minimum tile glb file where the monitoring point P is located.

[0085] Step 104: Convert the point A to the vertex coordinate V stored in glTF A 。

[0086] Step 105: Traverse the mesh primitives in glTF to obtain each triangle of the triangular mesh, and use the Möller-Trumbore algorithm to find the intersection point I of the triangle plane where each triangle is located and the ray with the vertex coordinate V A as the starting point of the ray and with as the direction vector n (x, y, z).

[0087] Step 106: After obtaining one or more intersection points, convert the glTF intersection point I n (x, y, z) to the 3DTiles coordinate A n (x, y, z).

[0088] Step 107: Select the point A with the largest Z-axis value of point A n ; convert A highest from 3Dtiles coordinates to longitude and latitude coordinates to obtain the coordinates P(lng, lat, h) of the monitoring point P; lnt and lat correspond to the longitude and latitude of the monitoring P respectively. highest from 3Dtiles coordinates to longitude and latitude coordinates to obtain the coordinates P(lng, lat, h) of the monitoring point P; lnt, lat correspond to the longitude and latitude of the monitoring P respectively.

[0089] Step 108: Obtain the elevation change of the monitoring point P based on the difference between the elevation of the monitoring point P and the elevation of the reference point Z.

[0090] Specifically, by adopting the above method, the efficient and accurate automatic monitoring of the elevation change of the three-dimensional model monitoring point is realized. This method is particularly suitable for the elevation change monitoring of large-scale 3D urban and environmental models.

[0091] As a specific implementation manner of a method for monitoring the elevation change of a three-dimensional model monitoring point, calculating the tile boundary according to the transformation matrix and the boundary volume in the tile set, and traversing the child nodes to find the minimum tile glb file where the monitoring point P is located, includes:

[0092] S201. Obtain one of the root nodes in the tile set;

[0093] S202. Calculate the transformation matrix T;

[0094] S203. Determine whether the monitoring point is within the defined range of the boundary volume; if not, execute S204; if so, execute S205;

[0095] S204. Perform a breadth - first traversal and determine whether there are other nodes; if there are, return to S202; if not, return that the monitoring point is outside the model range;

[0096] S205. Determine whether there are child nodes; if there are, execute S2051; if not, execute S2052;

[0097] S2051. Obtain the first element of the child node and return to S202;

[0098] S2052. Obtain the glb file or reference other tile sets;

[0099] S2053. Determine whether the obtained file is a glb file; if so, obtain the smallest tile glb file; if not, return to S201 and obtain the root node of the referenced tile set.

[0100] As a specific implementation of a method for monitoring the elevation change of a 3D model monitoring point, the formula for calculating the transformation matrix T is:

[0101] T(i,j) = T root ×…×T (i,j) ; where, T ( i,j ) is the transformation matrix of the node corresponding to the level and position in the tile set, i is the level index, j is the position index in the current level, and both i and j start from 0; where T root (i = 0, j = 0) is the root node transformation matrix, and T(i,j) is the product of the node transformation matrices of the shortest path from the root node to the desired child node.

[0102] As a specific implementation of a method for monitoring the elevation change of a 3D model monitoring point, convert point A to the vertex coordinate V stored in glTF A , including:

[0103] Find the transformation matrix of the glTF node; among them, finding the transformation matrix of the glTF node includes: finding the specified entry node from the scene, finding the included node in the scenes, obtaining the matrix or T, R, S of the shortest path node and node.children from the root node to the desired child node until the node type is mesh, and performing post-multiplication in the order from the parent node to the child node; M glTF = M root ×…×M (i,j) ; M (i,j) is the matrix transformation matrix or T×R×S;

[0104] Find the transformation matrix for converting the glTF vertex coordinates to 3DTiles coordinates: T glTF = T tile ×R x ×M glTF ; T tile is the transformation matrix of the leaf node containing the glb type file reference in 3DTiles; and,

[0105] Convert the point A(x, y, z) to the vertex coordinates V A (x', y', z');

[0106] As one of the implementation manners of a method for monitoring the elevation change of the three-dimensional model monitoring points, before inputting the longitude, latitude and elevation of the monitoring reference point Z, the method further includes: calibrating the longitude, latitude and elevation of the three-dimensional model.

[0107] As one of the implementation manners of a method for monitoring the elevation change of the three-dimensional model monitoring points, calibrating the longitude, latitude and elevation of the three-dimensional model includes:

[0108] Select appropriate ground control points from the reference data as calibration points;

[0109] For each calibration point, calculate the deviation value between the coordinates in the model and the actual geographical coordinates;

[0110] According to the calculated deviation value, perform at least one of translation, rotation and scaling operations on the entire model to make the coordinates in the model close to the actual geographical coordinates;

[0111] Use additional ground control points that did not participate in the calibration process to verify the calibration effect;

[0112] After calibration is completed, save the adjusted three-dimensional model.

[0113] This application also provides a three-dimensional model monitoring point elevation change monitoring system, including:

[0114] The first processing module 201 is configured to: input the longitude, latitude and elevation of the monitoring reference point Z; obtain the longitude and latitude of the monitoring point P;

[0115] The second processing module 202 is configured to: match a point P' with the same longitude and latitude as the monitoring point P and an elevation of 0, and convert P' from longitude and latitude coordinates to a point A in the EPSG4978 coordinate system;

[0116] The third processing module 203 is configured to: calculate the tile boundary according to the transformation matrix and the bounding volume in the tile set, and traverse the child nodes to find the smallest tile glb file where the monitoring point P is located;

[0117] The fourth processing module 204 is configured to: convert the point A into the vertex coordinate V stored in glTF A ;

[0118] The fifth processing module 205 is configured to: traverse the mesh primitives in glTF to obtain each triangle of the triangular mesh, and use the Möller-Trumbore ( -Trumbore) algorithm to find the intersection point I of the triangle plane where each triangle is located and the ray with the vertex coordinate V A as the starting point of the ray and as the direction vector; n (x, y, z);

[0119] The sixth processing module 206 is configured to: after obtaining one or more intersection points, convert the glTF intersection point I n (x, y, z) into the 3DTiles coordinate A n (x, y, z);

[0120] The seventh processing module 207 is configured to: take the point A with the largest Z-axis value of A n ; convert A highest from the 3Dtiles coordinate to the longitude and latitude coordinate to obtain the monitoring P point coordinate P(lng, lat, h); lng and lat respectively correspond to the longitude and latitude of the monitoring P; highest ;

[0121] The eighth processing module 208 is configured to: obtain the elevation change of the monitoring point P based on the difference between the elevation of the monitoring point P obtained and the elevation of the reference point Z.

[0122] An embodiment of the present application also discloses an electronic device.

[0123] Specifically, the device includes a memory and a processor, and a computer program capable of being loaded and executed by the processor for any of the above three-dimensional model monitoring point elevation change monitoring methods is stored on the memory.

[0124] An embodiment of the present application also discloses a computer-readable storage medium. Specifically, the computer-readable storage medium stores a computer program that can be loaded and executed by a processor to perform the three-dimensional model monitoring point elevation change monitoring method as described above. The computer-readable storage medium may include, for example: various media such as USB flash drives, external hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical discs that can store program codes.

[0125] It should be noted that the above embodiments are only used to illustrate the present application and do not limit the technical solutions described in the present application. Although this specification has described the present application in detail with reference to the above embodiments, those of ordinary skill in the art should understand that those skilled in the art can still modify or equivalently replace the present application. All technical solutions and their improvements that do not depart from the spirit and scope of the present application shall be covered within the scope of the claims of the present application.

Claims

1. A method for monitoring elevation changes of monitoring points in a three-dimensional model, characterized in that: include: Enter the latitude, longitude and elevation of the monitoring benchmark point Z; Get the longitude and latitude of monitoring point P; Match point P' with the same longitude and latitude as the monitoring point P and an elevation of 0 and convert point P' from longitude and latitude coordinates to point A in the EPSG4978 coordinate system; Calculate the tile boundary according to the transformation matrix and boundary volume in the tile set, and traverse the child nodes to find the minimum tile glb file where the monitoring point P is located; Convert point A to vertex coordinates V stored in glTF A ; Traverse the mesh primitives in glTF to get the triangles of the triangulated network, using Moeller-Trouble The algorithm finds the triangle face where each triangle is located and the vertex coordinates V A is the starting point of the ray and The intersection point I of the ray with the direction vector n (x, y, z); After obtaining one or more intersection points, use the glTF intersection I n (x, y, z) is converted into 3D Tiles coordinates A n (x,y,z); Take A n Point A with the largest Z-axis value highest ; A highest Convert the 3Dtiles coordinates to longitude and latitude coordinates to obtain the coordinates of the monitoring point P (lng, lat, h); lng, lat is divided into the longitude and latitude corresponding to the monitoring point P; Based on the difference between the obtained elevation of the monitoring point P and the elevation of the reference point Z, the elevation change of the monitoring point P is obtained.

2. A method for monitoring elevation changes of monitoring points in a three-dimensional model according to claim 1, characterized in that: Calculate the tile boundary according to the tile set transformation matrix and boundary volume, traverse the child nodes to find the minimum tile glb file where the monitoring point P is located, including: S201, obtaining one of the root nodes in the tile set; S202, calculating the transformation matrix T; S203, determine whether the monitoring point is within the definition range of the boundary volume; if not, execute S204; if yes, execute S205; S204, perform breadth-first traversal and determine whether there are other nodes; if yes, return to S202; if no, return that the monitoring point is outside the model range; S205, determine whether there is a child node; if yes, execute S2051; if not, execute S2052; S2051, get the first child node and return to S202; S2052, obtain a glb file or reference other tile sets; S2053, determine whether the obtained file is a glb file; if so, obtain the minimum tile glb file; if not, return to S201 and obtain the root node of the referenced tile set.

3. A method for monitoring elevation changes of monitoring points in a three-dimensional model according to claim 2, characterized in that: The formula for calculating the transformation matrix T is: T(i,j)=T root ×…×T (i,j) ; Among them, T (i,j) is the transformation matrix of the node corresponding to the level and position in the tile set, i is the level index, j is the position index at the current level, and both i and j start at 0; T root (i=0, j=0) is the root node transformation matrix, and T(i, j) is the multiplication of the node transformation matrices of the shortest path from the root node to the desired child node.

4. A method for monitoring elevation changes of monitoring points in a three-dimensional model according to claim 3, characterized in that: Convert point A to vertex coordinates V stored in glTF A ,include: Find the node transformation matrix of glTF; where finding the node transformation matrix of glTF includes: finding the specified entry node from scene, finding the node contained in scenes, obtaining the matrix or T, R, S of the shortest path node and node.children from the root node to the child node, until the node type is mesh, and post-multiplying in the order from parent node to child node; M glTF =M root ×…×M (i,j) ;M (i,j) is the matrix transformation matrix or T×R×S; Find the transformation matrix from glTF vertex coordinates to 3D Tiles coordinates: T glTF =T tile ×R x ×M glTF ; T tile The transformation matrix of the leaf nodes referenced by the glb type file is contained in 3DTiles; and, Convert point A(x,y,z) to vertex coordinates V stored in glTF A (x',y',z'); 5. A method for monitoring elevation changes of monitoring points in a three-dimensional model according to claim 4, characterized in that: Before inputting the longitude, latitude and elevation of the monitoring reference point Z, the method further comprises: calibrating the longitude, latitude and elevation of the three-dimensional model.

6. A method for monitoring elevation changes of monitoring points in a three-dimensional model according to claim 5, characterized in that: Calibrate the latitude, longitude and elevation of the 3D model, including: Select appropriate ground control points from the benchmark data as calibration points; For each calibration point, calculate the deviation between the coordinates in the model and the actual geographic coordinates; According to the calculated deviation value, at least one of translation, rotation and scaling operations is performed on the entire model to make the coordinates in the model close to the actual geographic coordinates; Verify the calibration using additional ground control points that were not involved in the calibration process; After the calibration is completed, the adjusted 3D model is saved.

7. A three-dimensional model monitoring point elevation change monitoring system, characterized in that: include: The first processing module is used to: input the latitude, longitude and elevation of the monitoring reference point Z; Get the longitude and latitude of monitoring point P; The second processing module is used to: match a point P' having the same longitude and latitude as the monitoring point P and an elevation of 0 and convert P' from longitude and latitude coordinates to a point A in the EPSG4978 coordinate system; The third processing module is used to: calculate the tile boundary according to the tile concentration transformation matrix and the boundary volume, and traverse the child nodes to find the minimum tile glb file where the monitoring point P is located; The fourth processing module is used to convert point A into vertex coordinates V stored in glTF A ; The fifth processing module is used to traverse the mesh primitives in glTF to obtain each triangle of the triangulated network, using the Moeller-Trouble The algorithm finds the triangle face where each triangle is located and the vertex coordinates V A is the starting point of the ray and The intersection point I of the ray with the direction vector n (x, y, z); The sixth processing module is used to: after obtaining one or more intersection points, convert the glTF intersection point I n (x, y, z) is converted into 3D Tiles coordinates A n (x,y,z); The seventh processing module is used to: take A n Point A with the largest Z-axis value highest ; A highest Convert the 3Dtiles coordinates to longitude and latitude coordinates to obtain the coordinates of the monitoring point P (lng, lat, h); lng, lat is divided into the longitude and latitude corresponding to the monitoring point P; The eighth processing module is used to obtain the elevation change of the monitoring point P based on the difference between the elevation of the monitoring point P and the elevation of the reference point Z.

8. An electronic device, characterized in that: The method comprises a memory and a processor, wherein the memory stores a computer program according to any one of the methods of claims 1 to 6 which is loaded and executed by the processor.

9. A computer-readable storage medium, characterized in that: A computer program is stored which can be loaded by a processor and execute the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Settlement point building construction progress monitoring method, device and equipment and storage medium

    CN112037327A

  • Electric power overhead line sag point elevation monitoring method, equipment and medium

    CN113959402A