A mobile terminal-oriented three-dimensional point cloud scene measurement method and device
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-13
- Publication Date
- 2026-08-11
AI Technical Summary
该类方式在桌面端环境下具有较好的操作空间,但在移动端设备中应用时,受屏幕尺寸、触摸面积、手指遮挡以及移动端交互精度限制,用户难以准确选中期望测量位置
[0018] This disclosure provides a measurement method and apparatus for mobile terminal 3D point cloud scenarios. It can establish a virtual measurement plane that matches the current measurement direction under different view directions, and map the user's screen touch operation to the 3D coordinates on the virtual measurement plane. At the same time, it can adjust the position of the measurement plane in real time in combination with the point cloud clipping range, so as to improve the accuracy, intuitiveness and operation efficiency of mobile terminal point cloud measurement.
Smart Images

Figure CN122544740A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of 3D point cloud data processing technology, and more specifically, to a measurement method and apparatus for 3D point cloud scenes on mobile devices. Background Technology
[0002] With the development of LiDAR, 3D scanning, and mobile mapping technologies, 3D point cloud data is widely used in fields such as architectural surveying, engineering construction, spatial modeling, cultural relic preservation, and indoor and outdoor scene reconstruction. Point cloud data can represent the spatial structure of a real scene in the form of a large number of discrete spatial points. When viewing point cloud models, users usually need to measure the distance, area, or cross-sectional dimensions of target objects such as walls, doors, windows, floors, pipes, and component outlines in the point cloud scene to assist in on-site verification, construction planning, quality acceptance, and spatial analysis.
[0003] Current point cloud measurement methods typically rely on professional desktop software. Users select points in a 3D point cloud view using a mouse and calculate distances or areas based on the selected points. While this method offers good operability on desktop environments, its application on mobile devices is limited by screen size, touch area, finger occlusion, and the precision of mobile interaction, making it difficult for users to accurately select the desired measurement location. Furthermore, point cloud data is a discrete set of points with gaps between them. Directly picking the nearest point based on ray casting or collision detection can easily lead to inaccurate point placement due to insufficient point cloud density, viewing angle deviation, or touch position offset, thus affecting the reliability of the measurement results. Summary of the Invention
[0004] This disclosure provides at least one measurement method and apparatus for mobile terminal 3D point cloud scenarios. It can establish a virtual measurement plane that matches the current measurement direction under different view directions, and map the user's screen touch operation to the 3D coordinates on the virtual measurement plane. At the same time, it can adjust the position of the measurement plane in real time in combination with the point cloud clipping range, so as to improve the accuracy, intuitiveness and operation efficiency of mobile terminal point cloud measurement.
[0005] This disclosure provides a measurement method for mobile 3D point cloud scenes, including: Load and display 3D point cloud data, and determine the current measurement view orientation in response to the user's view orientation selection operation in the mobile measurement interface; Based on the current measurement view direction, a virtual measurement plane corresponding to the current measurement view direction is constructed, and the virtual measurement plane is used to carry measurement marker points; Obtain the point cloud clipping range, and determine the planar position of the virtual measurement plane in the three-dimensional point cloud scene based on the point cloud clipping range; In response to a user's screen touch operation on the 3D point cloud data, a touch ray is generated based on the screen touch operation, and the coordinates of the intersection point of the touch ray and the virtual measurement plane are calculated; Measurement markers are generated based on the coordinates of the intersection points, and distance measurements are performed based on at least two measurement markers, or area measurements are performed based on at least three measurement markers, to obtain the corresponding measurement results. The measurement markers and the measurement results are displayed in the mobile measurement interface.
[0006] In one optional implementation, the current measurement view direction includes at least one of a top view direction, a front view direction, and a side view direction. Based on the current measurement view direction, a virtual measurement plane corresponding to the current measurement view direction is constructed, specifically including: When the current measurement view direction is the top view direction, the normal direction of the virtual measurement plane is determined as the vertical axis direction, and the virtual measurement plane is determined as the horizontal measurement plane; When the current measurement view direction is the front view direction, the normal direction of the virtual measurement plane is determined as the front-rear axis direction, and the virtual measurement plane is determined as the front vertical measurement plane; When the current measurement view direction is the side view direction, the normal direction of the virtual measurement plane is determined as the left and right axis direction, and the virtual measurement plane is determined as the side vertical measurement plane.
[0007] In one optional implementation, the point cloud clipping range is obtained, and the planar position of the virtual measurement plane in the 3D point cloud scene is determined based on the point cloud clipping range, specifically including: Obtain the bounding box of the point cloud corresponding to the three-dimensional point cloud data and the clipping ratio of the point cloud clipping range along the target axis, wherein the target axis is determined according to the current measurement view direction; The coordinates of the virtual measurement plane on the target axis are determined based on the boundary coordinates of the point cloud bounding box on the target axis, the size of the point cloud bounding box on the target axis, and the clipping ratio. In response to the user's adjustment operation on the clipping control, the point cloud clipping range is updated, and the planar position of the virtual measurement plane is recalculated based on the updated point cloud clipping range. The visible range of the 3D point cloud data is refreshed based on the updated point cloud clipping range, and the subsequently generated measurement markers are placed on the recalculated virtual measurement plane.
[0008] In one optional implementation, in response to a user's screen touch operation on the 3D point cloud data, a touch ray is generated based on the screen touch operation, and the coordinates of the intersection point of the touch ray and the virtual measurement plane are calculated, specifically including: Obtain the screen touch position corresponding to the screen touch operation, and generate a touch ray based on the camera position in the mobile terminal measurement interface and the screen touch position; Obtain the normal direction of the virtual measurement plane and the plane reference point on the virtual measurement plane; The intersection point of the touch ray and the virtual measurement plane is calculated based on the ray origin, ray direction, normal direction, and plane reference point. When the touch ray is not parallel to the virtual measurement plane and the intersection point is located in the positive direction of the ray, the three-dimensional coordinates of the intersection point are determined as the intersection point coordinates.
[0009] In one optional implementation, distance measurement is performed based on at least two measurement markers, specifically including: In distance measurement mode, in response to two screen touch operations performed by the user in sequence, a first measurement marker point and a second measurement marker point are generated respectively; Calculate the Euclidean distance between the first measurement marker point and the second measurement marker point to obtain the distance measurement result; A measurement connection line is generated between the first measurement marker point and the second measurement marker point, and the distance measurement result is displayed at the associated position of the measurement connection line.
[0010] In one optional implementation, area measurement is performed based on at least three measurement markers, specifically including: In area measurement mode, in response to at least three screen touch operations performed sequentially by the user, multiple measurement marker points are generated, and a measurement polygon is formed according to the generation order of the multiple measurement marker points; Based on the current measurement view direction, the three-dimensional coordinates of the plurality of measurement marker points are projected onto the corresponding two-dimensional projection plane; The area of the measured polygon is calculated based on the projected two-dimensional coordinates to obtain the area measurement result, and the perimeter of the measured polygon is calculated based on the distance between adjacent measurement markers. The area measurement result and the perimeter are displayed in the mobile measurement interface.
[0011] In one optional implementation, before calculating the area of the measured polygon based on the projected two-dimensional coordinates, the method further includes: Perform pairwise intersection detection on the edges of the measured polygon; If an intersection is detected between any two non-adjacent sides, the measured polygon is determined to be a self-intersecting polygon, and the area measurement result is marked as invalid. If no intersection of any two non-adjacent sides is detected, the area of the measured polygon is calculated based on the projected two-dimensional coordinates, and an area-filled region corresponding to the measured polygon is generated.
[0012] In one optional implementation, the method further includes: In response to the user's drag operation on existing measurement markers, the current touch position is continuously acquired during the dragging process; Based on the current touch position, a touch ray is regenerated, and the coordinates of the intersection point between the regenerated touch ray and the virtual measurement plane are calculated. The dragged measurement marker is moved to the recalculated intersection coordinates so that the measurement marker is always constrained to the virtual measurement plane during the dragging process; The measurement connection line, measurement results, and measurement result labels are updated in real time based on the moved measurement marker points.
[0013] In one optional implementation, the measurement result is displayed on the mobile measurement interface, specifically including: The display direction of the measurement result label is determined based on the direction vector of the measurement connection line and the direction of the camera's line of sight. The display orientation of the measurement result label is adjusted according to the top direction of the screen space to prevent inversion, so that the measurement result label remains upright and readable in the mobile measurement interface. Adjust the display size of the label background based on the text length of the label according to the measurement results.
[0014] This disclosure also provides a measurement device for mobile 3D point cloud scenes, including: The point cloud rendering module is used to load and display 3D point cloud data, and respond to the user's view direction selection operation in the mobile measurement interface to determine the current measurement view direction; The measurement calculation module is used to construct a virtual measurement plane corresponding to the current measurement view direction based on the current measurement view direction. The virtual measurement plane is used to carry measurement marker points. The clipping control module is used to acquire the point cloud clipping range and determine the planar position of the virtual measurement plane in the three-dimensional point cloud scene based on the point cloud clipping range. The measurement interaction module is used to respond to the user's screen touch operation on the three-dimensional point cloud data, generate a touch ray based on the screen touch operation, and calculate the coordinates of the intersection point of the touch ray and the virtual measurement plane. The measurement execution module is used to generate measurement marker points based on the intersection coordinates, and perform distance measurement based on at least two measurement marker points, or perform area measurement based on at least three measurement marker points, to obtain the corresponding measurement results; The result display module is used to display the measurement markers and the measurement results in the mobile terminal measurement interface.
[0015] This disclosure also provides an electronic device, including: a processor, a memory, and a bus. The memory stores machine-readable instructions executable by the processor. When the electronic device is running, the processor communicates with the memory via the bus. When the machine-readable instructions are executed by the processor, the steps of the above-described measurement method for mobile 3D point cloud scenes, or any possible implementation of the above-described measurement method for mobile 3D point cloud scenes, are performed.
[0016] This disclosure also provides a computer-readable storage medium storing a computer program that, when executed by a processor, performs the steps of the above-described measurement method for mobile 3D point cloud scenes, or any possible implementation of the above-described measurement method for mobile 3D point cloud scenes.
[0017] This disclosure also provides a computer program product, including a computer program / instructions, which, when executed by a processor, implement the steps of the above-described measurement method for mobile 3D point cloud scenes, or any possible implementation of the above-described measurement method for mobile 3D point cloud scenes.
[0018] This disclosure provides a measurement method and apparatus for mobile terminal 3D point cloud scenarios. It can establish a virtual measurement plane that matches the current measurement direction under different view directions, and map the user's screen touch operation to the 3D coordinates on the virtual measurement plane. At the same time, it can adjust the position of the measurement plane in real time in combination with the point cloud clipping range, so as to improve the accuracy, intuitiveness and operation efficiency of mobile terminal point cloud measurement.
[0019] To make the above-mentioned objects, features and advantages of this disclosure more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description
[0020] To more clearly illustrate the technical solutions of the embodiments of this disclosure, the accompanying drawings used in the embodiments will be briefly described below. These drawings are incorporated in and constitute a part of this specification. They illustrate embodiments conforming to this disclosure and, together with the specification, serve to explain the technical solutions of this disclosure. It should be understood that the following drawings only show some embodiments of this disclosure and should not be considered as limiting the scope. Those skilled in the art can obtain other related drawings based on these drawings without creative effort.
[0021] Figure 1 A flowchart of a measurement method for mobile 3D point cloud scenes provided by an embodiment of this disclosure is shown; Figure 2 A flowchart is shown for another measurement method for mobile 3D point cloud scenes provided by an embodiment of this disclosure; Figure 3 A schematic diagram of a measurement device for mobile 3D point cloud scenes provided in an embodiment of this disclosure is shown. Figure 4 A schematic diagram of an electronic device provided in an embodiment of the present disclosure is shown. Detailed Implementation
[0022] To make the objectives, technical solutions, and advantages of the embodiments of this disclosure clearer, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. The components of the embodiments of this disclosure described and shown in the accompanying drawings can generally be arranged and designed in various different configurations. Therefore, the following detailed description of the embodiments of this disclosure provided in the accompanying drawings is not intended to limit the scope of the claimed disclosure, but merely represents selected embodiments of this disclosure. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without inventive effort are within the scope of protection of this disclosure.
[0023] It should be noted that similar labels and letters in the following figures indicate similar items. Therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures.
[0024] In this document, the term "and / or" merely describes a relationship, indicating that three relationships can exist. For example, A and / or B can represent three cases: A alone, A and B simultaneously, and B alone. Furthermore, the term "at least one" in this document means any combination of at least two of any one or more elements. For example, including at least one of A, B, and C can mean including any one or more elements selected from the set consisting of A, B, and C.
[0025] Research has revealed that existing point cloud measurement methods typically rely on professional desktop software. Users select points in a 3D point cloud view using a mouse and calculate distances or areas based on the selected points. While this method offers good operability on desktop environments, its application on mobile devices is limited by screen size, touch area, finger occlusion, and the precision of mobile interaction, making it difficult for users to accurately select the desired measurement location. Furthermore, point cloud data is a discrete set of points with gaps between them. Directly picking the nearest point based on ray casting or collision detection can easily lead to inaccurate point placement due to insufficient point cloud density, viewing angle deviation, or touch position offset, thus affecting the reliability of the measurement results.
[0026] Based on the above research, this disclosure provides a measurement method and apparatus for mobile terminal 3D point cloud scenarios. It can establish a virtual measurement plane that matches the current measurement direction under different view directions, and map the user's screen touch operation to the 3D coordinates on the virtual measurement plane. At the same time, it can adjust the position of the measurement plane in real time in combination with the point cloud clipping range, so as to improve the accuracy, intuitiveness and operation efficiency of mobile terminal point cloud measurement.
[0027] To facilitate understanding of this embodiment, a detailed description of the measurement method for mobile 3D point cloud scenes disclosed in this disclosure is provided first. The execution entity of the measurement method for mobile 3D point cloud scenes provided in this disclosure is generally a computer device with certain computing capabilities. This computer device may include, for example, a terminal device, a server, or other processing devices. The terminal device may be a user equipment (UE), mobile device, user terminal, terminal, cellular phone, cordless phone, personal digital assistant (PDA), handheld device, computing device, in-vehicle device, wearable device, etc. In some possible implementations, this measurement method for mobile 3D point cloud scenes can be implemented by a processor calling computer-readable instructions stored in memory.
[0028] See Figure 1The diagram shows a flowchart of a measurement method for a mobile 3D point cloud scene according to an embodiment of this disclosure. The method includes steps S101 to S106, wherein: S101. Load and display the 3D point cloud data, and in response to the user's view direction selection operation in the mobile measurement interface, determine the current measurement view direction.
[0029] In practice, the mobile measurement device can be a mobile phone, tablet, or other mobile terminal with a touch screen. After running the 3D point cloud measurement program, the mobile measurement device can first load the 3D point cloud data to be measured and display the 3D point cloud data in the mobile measurement interface. The 3D point cloud data can be offline point cloud data pre-collected by LiDAR, 3D scanning equipment, mobile mapping equipment, or other spatial acquisition equipment. Each point cloud point can include at least 3D spatial coordinates and may also include attribute information such as color, intensity, and elevation.
[0030] Here, when loading 3D point cloud data, the point cloud rendering module can read the point cloud data file and determine the point cloud bounding box based on the spatial coordinates of each point in the point cloud data. This is necessary for subsequent view adaptation, clipping control, and measurement plane position calculation. The point cloud rendering module can place the 3D point cloud data within a preset display area in the mobile 3D scene based on the size and center position of the point cloud bounding box. It can also configure the initial camera position, camera orientation, and display scale, allowing users to view the complete or partial point cloud scene in the mobile measurement interface.
[0031] Here, when displaying 3D point cloud data, one or more rendering methods can be used, such as true color rendering, elevation shading rendering, and intensity shading rendering. For example, when the point cloud data contains RGB color information, it can be displayed in true color according to the color attributes of the point cloud points to restore the appearance of the real scene; when it is necessary to highlight changes in building height, floor structure, or height differences of components, it can be displayed in elevation shading according to the elevation values of the point cloud points; when the point cloud data contains laser reflection intensity information, it can be displayed in intensity shading according to the intensity attributes of the point cloud points to highlight point cloud areas with different materials or different reflection characteristics.
[0032] Furthermore, the point cloud rendering module can also use EDL (Enhanced Display Language) to enhance the outline and depth of the point cloud, enabling mobile users to clearly distinguish structural boundaries, wall outlines, pipe edges, or other targets to be measured in the point cloud even on smaller screens.
[0033] After the 3D point cloud data is loaded and displayed, the mobile measurement interface can provide a view direction selection control, allowing users to choose different measurement view directions. The view direction selection control can include top view, front view, and side view controls, and can also be triggered by view switching buttons, drop-down menus, gesture switching, or view identifiers in the measurement record list. After the user performs a view direction selection operation in the mobile measurement interface, the measurement view module responds to the operation and determines the selected view direction as the current measurement view direction.
[0034] The current measurement view direction can include at least one of the top view direction, front view direction, and side view direction. The top view direction can be used to observe the point cloud model from above the point cloud scene, and is suitable for measuring building plan outlines, room width and depth, floor plan dimensions, etc.; the front view direction can be used to observe the point cloud model from the front to the back of the point cloud scene, and is suitable for measuring wall height, door and window dimensions, facade component spacing, etc.; the side view direction can be used to observe the point cloud model from the side of the point cloud scene, and is suitable for measuring lateral sections, pipeline height differences, side wall dimensions, or other structural dimensions that unfold laterally.
[0035] In a specific example, after loading indoor point cloud data of a building into the mobile measurement interface, the user can first select the top-down view, allowing the mobile measurement interface to display the building's point cloud model from top to bottom. This facilitates the user's measurement of room length, width, or floor area from a planar perspective. If the user needs to measure wall height or doorway height, they can switch to the front view, adjusting the camera orientation to correspond to the frontal view, and observe the point cloud model from a vertical frontal perspective. If the user needs to observe the building's lateral structure or pipe cross-sections, they can switch to the side view, adjusting the camera orientation to correspond to the side view, and perform subsequent measurements from a side perspective.
[0036] As one possible implementation, after the user selects the current measurement view direction, the system can switch the camera to orthographic projection mode and adjust the camera's line of sight and position according to the current measurement view direction, so that the camera's view frustum covers the point cloud display area corresponding to the current measurement view direction. In orthographic projection mode, the point cloud model will not produce perspective distortion (objects appearing larger when closer and smaller when farther away) during display, which helps users intuitively judge the correspondence between the measured position and the actual spatial structure on the mobile screen.
[0037] Specifically, when the current measurement view direction is the top view direction, the camera can be set to observe the point cloud model from top to bottom; when the current measurement view direction is the front view direction, the camera can be set to observe the point cloud model from front to back; when the current measurement view direction is the side view direction, the camera can be set to observe the point cloud model from the side.
[0038] In some embodiments, view orientation switching can also be linked to the measurement record display status. When a user switches from one view orientation to another, the system can hide measurement markers, measurement lines, area-filled regions, and measurement result labels from views other than the current one, displaying only the 3D visualization elements of the measurement record corresponding to the current view orientation. For measurement records that are not yet completed in the current view orientation, the system can clean them up according to preset rules to prevent users from continuing to use invalid or incomplete measurement records after switching views. For completed measurement records, the system can retain their measurement data and restore their display when the user switches back to the corresponding view orientation.
[0039] In other embodiments, the mobile measurement interface may also include a measurement mode switching control, a clipping axis switching control, a clipping range adjustment control, and a measurement record list. After selecting the current measurement view direction, the user can further select either a distance measurement mode or an area measurement mode, and can also change the visible range of the point cloud using the clipping range adjustment control. In this case, the current measurement view direction not only controls the point cloud display perspective, but also serves as a fundamental parameter for subsequently constructing a virtual measurement plane, determining the normal direction of the measurement plane, determining the area projection plane, and managing the display status of measurement records.
[0040] S102. Based on the current measurement view direction, construct a virtual measurement plane corresponding to the current measurement view direction. The virtual measurement plane is used to carry measurement marker points.
[0041] In practice, after determining the current measurement view orientation, the system can construct a corresponding virtual measurement plane based on this orientation. The virtual measurement plane is a mathematical plane set within the 3D point cloud scene, determined by the plane's normal direction and a point on the plane. The virtual measurement plane does not rely on actual point cloud points in the point cloud data; instead, it serves as the carrying plane after the user's touch operation is mapped to 3D space, used to support subsequently generated measurement marker points.
[0042] Specifically, the measurement calculation module can determine the normal direction of the virtual measurement plane based on the current measurement view direction, and construct a measurement plane that matches the current measurement view direction based on this normal direction. Since the virtual measurement plane is a continuous plane, when the user subsequently performs a touch operation on the mobile screen, the system can determine the position of the measurement marker point through the intersection of the ray and the virtual measurement plane, without needing to directly pick the nearest point in the discrete point cloud. This avoids the problem of unstable measurement point placement caused by point cloud gaps, insufficient point cloud density, or touch position offset.
[0043] Here, when the current measurement view direction is the top view direction, the system can determine the normal direction of the virtual measurement plane as the vertical axis direction and construct a horizontal measurement plane. Taking the Y-axis in the 3D scene coordinate system as the vertical direction as an example, the normal direction of the virtual measurement plane corresponding to the top view direction can be the positive Y-axis direction, and the virtual measurement plane can be a horizontal plane parallel to the XZ plane. This horizontal measurement plane is suitable for placing measurement markers in scenes such as building plans, room outlines, ground areas, or floor sections, and for measuring planar distances or areas.
[0044] Here, when the current measurement view direction is the front view direction, the system can determine the normal direction of the virtual measurement plane as the front-back axis direction and construct a frontal vertical measurement plane. Taking the Z-axis in the 3D scene coordinate system as the front-back direction as an example, the normal direction of the virtual measurement plane corresponding to the front view direction can be the positive Z-axis direction, and the virtual measurement plane can be a vertical plane parallel to the XY plane. This frontal vertical measurement plane is suitable for placing measurement markers on walls, facades, doors, windows, columns, or other front-view structures and measuring height, width, or facade area.
[0045] Here, when the current measurement view direction is the side view direction, the system can determine the normal direction of the virtual measurement plane as the left-right axis direction and construct a vertical side measurement plane. Taking the X-axis in the 3D scene coordinate system as the left-right direction as an example, the normal direction of the virtual measurement plane corresponding to the side view direction can be the negative X-axis direction, and the virtual measurement plane can be a vertical plane parallel to the YZ plane. This vertical side measurement plane is suitable for placing measurement markers in lateral sections, pipe sections, sidewall structures, or other laterally unfolded point cloud areas, and performing corresponding distance or area measurements.
[0046] In a specific example, after the user selects the top-down view, the system sets the camera to view the point cloud model from above and sets the virtual measurement plane to a horizontal plane. When the user clicks on a room boundary in the building point cloud on the mobile screen, the measurement marker subsequently calculated by the system is located on this horizontal measurement plane, rather than being directly snapped to the nearest discrete point cloud point. If the user switches to the front view, the system switches the virtual measurement plane to a frontal vertical plane, allowing the user to place measurement markers on the wall facade. If the user switches to the side view, the system switches the virtual measurement plane to a side vertical plane, allowing the user to perform measurements on a cross-section viewed from the side.
[0047] In some embodiments, when constructing a virtual measurement plane, the system can also associate the current measurement view direction with the camera's line of sight, ensuring that the camera's line of sight is parallel or antiparallel to the normal direction of the virtual measurement plane. The camera can be set to orthographic projection mode, so that the screen touch position can stably correspond to the projected position on the virtual measurement plane under the current view direction. Since there is no perspective distortion (objects appearing larger when closer and smaller when farther away) in orthographic projection mode, the positional relationship observed by the user on the screen can more intuitively correspond to the actual spatial position on the virtual measurement plane.
[0048] In other embodiments, the planar position of the virtual measurement plane can be further determined by the current point cloud clipping range. That is, the current measurement view direction is used to determine the orientation of the virtual measurement plane, and the point cloud clipping range is used to determine the specific position of the virtual measurement plane in its normal direction. By binding the orientation of the measurement plane to the view direction and linking the planar position of the measurement plane to the clipping range, users can measure the corresponding sections of the point cloud model from different directions such as top view, front view, or side view.
[0049] Here, during the measurement interaction, a virtual measurement plane is used to hold measurement markers. These markers can be visual anchor points displayed in a 3D point cloud scene, such as circular markers, icon markers, or other visual objects that can be recognized and dragged by the user. Each marker can record its 3D coordinates, the normal direction of its measurement plane, the direction of its measurement view, and its associated measurement record. When performing distance measurements, the system can calculate the distance based on two markers on the same virtual measurement plane; when performing area measurements, the system can form a polygon based on three or more markers on the same virtual measurement plane and calculate the area.
[0050] S103. Obtain the point cloud clipping range, and determine the planar position of the virtual measurement plane in the three-dimensional point cloud scene based on the point cloud clipping range.
[0051] In practical implementation, after determining the orientation of the virtual measurement plane based on the current measurement view direction, the system can further acquire the point cloud clipping range and determine the planar position of the virtual measurement plane in the 3D point cloud scene based on the point cloud clipping range. The point cloud clipping range can be used to limit the visible range of 3D point cloud data along one or more axes, allowing users to expose the internal structure or target cross-section of the point cloud model through clipping operations.
[0052] Specifically, the system can provide clipping controls along at least one of the X, Y, and Z axes through a clipping control module. These clipping controls can be slider controls, numerical input controls, drag controls, or other interactive controls capable of adjusting the visible range of the point cloud. Users can adjust the clipping range of the point cloud along the target axis using these controls. The clipping range can include parameters such as the lower clipping limit ratio, the upper clipping limit ratio, the clipping window width, and the center position of the clipping window. The point cloud rendering module can then display only the point cloud points within the current clipping range, thereby hiding point cloud points outside the clipping range.
[0053] In some embodiments, the system can first acquire the bounding box of the point cloud corresponding to the 3D point cloud data. The bounding box can be determined based on the minimum and maximum coordinates of each point in the point cloud data, and includes dimensions in the X-axis, Y-axis, and Z-axis directions. Subsequently, the system determines the target axis for locating the virtual measurement plane based on the current measurement view direction, and acquires the clipping range parameter along that target axis. Since the current measurement view direction has already determined the normal direction of the virtual measurement plane, the point cloud clipping range can be used to determine the specific coordinates of the virtual measurement plane in its normal direction.
[0054] Here, when the current measurement view direction is a top-down view, the virtual measurement plane can be a horizontal measurement plane, and its position can be determined based on the Y-axis clipping range. For example, the system can obtain the bottom Y-coordinate of the point cloud bounding box, the height of the point cloud bounding box in the Y-axis direction, and the upper limit ratio of the Y-axis clipping range, and determine the Y-coordinate of the virtual measurement plane as follows: the Y-coordinate of the virtual measurement plane is equal to the sum of the bottom Y-coordinate of the point cloud bounding box and the upper limit ratio of the Y-axis clipping range multiplied by the Y-axis dimension of the bounding box. In this way, when the user adjusts the upper limit of the Y-axis clipping in the top-down view direction, the horizontal measurement plane can move synchronously with the upper limit of the clipping, allowing the user to perform measurements on the currently visible horizontal section.
[0055] Here, when the current measurement view direction is the front view direction, the virtual measurement plane can be a frontal vertical measurement plane, and its plane position can be determined according to the Z-axis clipping range. For example, the system can obtain the bottom Z-coordinate of the point cloud bounding box, the size of the point cloud bounding box in the Z-axis direction, and the lower limit ratio of the Z-axis clipping range, and determine the Z-coordinate of the virtual measurement plane as follows: the Z-coordinate of the virtual measurement plane is equal to the sum of the bottom Z-coordinate of the point cloud bounding box and the lower limit ratio of the Z-axis clipping range multiplied by the Z-axis size of the bounding box. In this way, when the user adjusts the lower limit of the Z-axis clipping in the front view direction, the frontal vertical measurement plane can move to the current display section position, so that the user can perform measurements on the wall, facade, or other frontal sections.
[0056] Here, when the current measurement view direction is the side view direction, the virtual measurement plane can be a vertical side measurement plane, and its plane position can be determined according to the X-axis clipping range. For example, the system can obtain the bottom X-coordinate of the point cloud bounding box, the size of the point cloud bounding box in the X-axis direction, and the lower limit ratio of the X-axis clipping range, and determine the X-coordinate of the virtual measurement plane as follows: the X-coordinate of the virtual measurement plane is equal to the sum of the bottom X-coordinate of the point cloud bounding box and the lower limit ratio of the X-axis clipping range multiplied by the X-axis size of the bounding box. In this way, when the user adjusts the lower limit of the X-axis clipping in the side view direction, the vertical side measurement plane can move accordingly to the lateral section position of the point cloud.
[0057] In a specific example, a user views a building point cloud model from a top-down perspective and adjusts the upper limit of the Y-axis clipping range from 100% to 80% using the Y-axis clipping slider. At this point, the point cloud rendering module updates the display based on the new clipping range, rendering only the point cloud data within the 80% height range below the Y-axis limit, thus exposing the point cloud cross-section below that height. Simultaneously, the measurement calculation module receives the clipping range change event and recalculates the Y-coordinate of the virtual measurement plane based on the bottom Y-coordinate of the point cloud bounding box, the bounding box height, and the 0.8 clipping upper limit ratio. Subsequent touch measurement operations performed by the user on the screen will generate measurement markers located on the recalculated horizontal measurement plane.
[0058] In another example, if a user needs to measure the plan dimensions of a floor in a building, they can adjust the Y-axis clipping range to clip the point cloud model to the height corresponding to that floor. The system automatically moves the horizontal measurement plane to that floor's cross-section based on the clipping range, allowing the user to directly place measurement markers on the currently displayed floor cross-section. As another example, if a user needs to measure the diameter of a pipe at a certain cross-section, they can switch to a view orientation suitable for observing the pipe cross-section and expose it using the corresponding axial clipping controls. The system then moves the virtual measurement plane to that cross-section location, allowing the user to perform distance or area measurements on that cross-section.
[0059] In some embodiments, changes in the point cloud clipping range can be synchronized to the measurement and calculation module via events. When the clipping control module detects a change in the clipping range, it can generate a clipping range change event and send the updated clipping axis, lower clipping limit ratio, upper clipping limit ratio, or clipping height values to the measurement and calculation module. The measurement and calculation module selects the corresponding clipping parameters based on the current measurement view direction and recalculates the planar position of the virtual measurement plane. Thus, the position of the virtual measurement plane can be linked in real time with the visible range of the point cloud, without requiring the user to separately set the measurement plane position.
[0060] In some embodiments, the cutting control module can also provide a cutting range locking function. After the cutting range is locked, the system can keep the upper and lower limit spacing of the cutting range unchanged, and make the cutting range shift as a whole when the user drags the cutting window. Correspondingly, the virtual measurement plane can be updated synchronously as the cutting window shifts as a whole, thereby facilitating the user to continuously view and measure different sections along the target axis while maintaining the same cutting thickness.
[0061] In some embodiments, the trimming control module can also provide a trimming axis switching function. Users can switch the trimming direction between the X-axis, Y-axis, and Z-axis. When the trimming axis is switched, the system can redetermine the target axis related to the virtual measurement plane position based on the current measurement view direction and obtain the trimming range parameters along that target axis to avoid using trimming parameters that do not match the current measurement view direction to determine the plane position.
[0062] In some embodiments, the trimming control module can also provide a trimming height numerical input function. Users can directly input the actual dimensions corresponding to the trimming range, such as the target height, target depth, or target offset distance in meters. The system can convert the user-inputted actual dimensions into a trimming scale relative to the point cloud bounding box, or directly determine the coordinates of the virtual measurement plane along the target axis based on the actual dimensions. This allows users to not only roughly adjust the trimming range using a slider, but also precisely position the measurement plane to the target cross-section using numerical input.
[0063] S104. In response to a user's screen touch operation on the three-dimensional point cloud data, generate a touch ray based on the screen touch operation, and calculate the coordinates of the intersection point of the touch ray and the virtual measurement plane.
[0064] In practice, after determining the normal direction and planar position of the virtual measurement plane, the system can respond to the user's screen touch operation on the 3D point cloud data, generate a touch ray based on the screen touch operation, and calculate the coordinates of the intersection point between the touch ray and the virtual measurement plane. These intersection point coordinates are used as the 3D spatial coordinates of subsequent measurement marker points.
[0065] Specifically, when a user observes 3D point cloud data in a mobile measurement interface, they can tap or touch the target measurement location on the screen. After receiving the screen touch operation, the mobile measurement device can obtain the screen touch location corresponding to that operation. The screen touch location can be two-dimensional coordinates in the mobile screen coordinate system, such as horizontal and vertical screen coordinates.
[0066] Here, after acquiring the screen touch position, the system can convert the screen touch position into a touch ray in the 3D scene based on the current camera parameters. The touch ray can include a ray origin and a ray direction. The ray origin can be determined based on the current camera position, and the ray direction can be determined based on the screen touch position, the current camera orientation, camera projection parameters, and the conversion relationship between screen coordinates and world coordinates. For orthographic projection mode, the system can back-project the screen touch position to the camera's near clipping plane or the corresponding world space position, and generate a touch ray along the current camera's line of sight; for perspective projection mode, the system can generate a touch ray starting from the camera position and passing through the world space point corresponding to the screen touch position. This embodiment preferably uses orthographic projection mode to reduce the impact of perspective distortion on the positioning of measurement points.
[0067] Here, after obtaining the touch ray, the system can acquire the planar parameters of the virtual measurement plane. The virtual measurement plane can be determined by the plane's normal direction and a point on the plane. The plane's normal direction is determined according to the current measurement view direction, and the point on the plane can be determined based on the point cloud clipping range and the point cloud bounding box. For example, in the top view direction, the plane's normal direction can be the vertical axis direction, and the point on the plane can be any point with the current clipping height coordinates; in the front view direction or side view direction, the point on the plane can correspond to the current clipping depth or lateral clipping position.
[0068] In a specific implementation, let the normal direction of the virtual measurement plane be n, the reference point on the virtual measurement plane be p0, the starting point of the touch ray be o, and the direction of the touch ray be d. The virtual measurement plane can be represented as n·(p-p0)=0, and the touch ray can be represented as p=o+t·d. The system can substitute the equation of the touch ray into the equation of the virtual measurement plane to obtain the parameter t=n·(p0-o) / (n·d). After the parameter t is calculated, the coordinates of the intersection point hit between the touch ray and the virtual measurement plane can be calculated according to hit=o+t·d.
[0069] During the calculation of the intersection coordinates, the system can also determine the validity of the geometric relationship between the touch ray and the virtual measurement plane. If the absolute value of n·d is less than a preset minimum value, it indicates that the touch ray and the virtual measurement plane are approximately parallel. In this case, no valid intersection is generated, the system may not generate a measurement marker point, and may prompt the user to adjust the view direction or touch position. If the calculated parameter t is less than zero, it indicates that the intersection point is located in the opposite direction of the touch ray. In this case, it can also be determined as an invalid intersection point, and the measurement marker point generation operation will not be triggered. If the absolute value of n·d is not less than the preset minimum value and the parameter t is greater than or equal to zero, the system can determine that there is a valid intersection point between the touch ray and the virtual measurement plane, and determine the calculated hit coordinates as the intersection coordinates.
[0070] In one example, a user clicks on a room boundary location in a building point cloud model from a top-down view. The system generates a vertical touch ray based on the touch location using an orthographic projection camera. This touch ray intersects with a horizontal virtual measurement plane corresponding to the current Y-axis clipping height, yielding the coordinates of the 3D intersection point on that horizontal section. These coordinates can be used as the location of a measurement marker at the room boundary. Because the intersection coordinates are calculated from a continuous virtual measurement plane, rather than selecting the nearest point from a discrete point cloud, stable spatial coordinates are obtained even if the user clicks on a point cloud location within a gap between points.
[0071] In another example, the user switches to the front view and clicks on the top edge of the doorway within the wall point cloud area. The system generates a touch ray that intersects the vertical measurement plane of the front view and calculates the coordinates of the intersection point. These coordinates can be used to generate a measurement marker point corresponding to the top edge of the doorway. If the user then clicks on the bottom edge of the doorway, the system can again generate the touch ray and perform the ray-plane intersection calculation to obtain another measurement marker point, which can then be used to calculate the doorway height.
[0072] In some embodiments, the system can perform validity filtering on screen touch operations before the touch ray intersects with the virtual measurement plane. For example, when two or more touch points are detected on the screen, the operation can be determined to be a zoom, rotation, or other camera control gesture, and the touch ray intersection measurement will not be triggered; when the touch starting position is located in the user interface control area, the operation can be determined to be an interface operation, and the measurement will not be triggered; when the touch movement distance exceeds a preset threshold, the operation can be determined to be a drag operation, rather than a click to place the measurement point. Through the above filtering, the probability of erroneous measurement points being generated in mobile touch operations can be reduced.
[0073] In some embodiments, if a screen touch operation hits an existing measurement marker, the system can preferentially recognize the touch operation as a marker drag operation rather than a new measurement point placement operation. In this case, the system can continuously regenerate the touch ray based on the current touch position during the dragging process and continuously calculate the coordinates of the intersection point between the touch ray and the virtual measurement plane, thereby constraining the dragged measurement marker to move on the virtual measurement plane. This ensures that the measurement marker does not deviate from the current measurement plane during the correction process.
[0074] In some embodiments, since the camera can be set to orthogonal projection in measurement mode, and the camera's line of sight is parallel or antiparallel to the normal direction of the virtual measurement plane, the projection relationship of the screen touch position on the virtual measurement plane is relatively stable. The two-dimensional touch position seen by the user on the mobile screen can more intuitively correspond to the actual three-dimensional coordinates on the virtual measurement plane, thereby reducing the position judgment error caused by perspective projection where objects appear larger when closer and smaller when farther away.
[0075] In this way, the system can convert the user's two-dimensional touch position on the mobile screen into a touch ray in a three-dimensional point cloud scene, and obtain the coordinates of the intersection point by calculating the intersection of the touch ray with the virtual measurement plane. This method does not rely on collision detection or nearest point picking on the point cloud surface, and can still provide a continuous, stable, and corresponding three-dimensional coordinate basis for the generation of subsequent measurement marker points even when the point cloud density is low, there are gaps between point cloud points, or the touch accuracy of the mobile device is limited.
[0076] S105. Generate measurement markers based on the intersection coordinates, and perform distance measurement based on at least two measurement markers, or perform area measurement based on at least three measurement markers, to obtain the corresponding measurement results.
[0077] In practice, after calculating the coordinates of the intersection point between the touch ray and the virtual measurement plane, the system can generate measurement marker points based on these coordinates. These marker points can serve as endpoints or vertices for distance or area measurements, and can be displayed as visual anchor points in a 3D point cloud scene, such as circular markers, icon markers, or other easily identifiable marker objects. Each measurement marker point can be associated with and stored with its 3D spatial coordinates, the direction of its measurement view, the normal direction of its virtual measurement plane, the measurement record it belongs to, and its generation order.
[0078] Specifically, after a user performs a valid screen touch operation on the mobile measurement interface, the system instantiates a measurement marker point on the virtual measurement plane based on the intersection coordinates corresponding to the touch operation. Since the intersection coordinates are obtained by finding the intersection of the touch ray and the virtual measurement plane, the generated measurement marker point is located on the virtual measurement plane corresponding to the current measurement view direction, rather than being directly snapped to a discrete point in the point cloud data. The orientation of the measurement marker point can be matched with the normal direction of the virtual measurement plane, ensuring its clear display in the current measurement view direction.
[0079] In some embodiments, the system can determine the usage method of measurement markers based on the measurement mode currently selected by the user. Measurement modes may include distance measurement mode and area measurement mode. Users can select either distance measurement mode or area measurement mode using the measurement mode switching control in the mobile measurement interface; the system can also manage the affiliation of subsequently generated measurement markers based on the type of the current measurement record.
[0080] Here, in distance measurement mode, the system can perform distance measurements based on at least two measurement markers. Specifically, after the user selects distance measurement mode, when they first touch the target location on the screen, the system generates a first measurement marker based on the corresponding intersection coordinates and creates a distance measurement record. At this point, since the distance measurement lacks a second endpoint, the system can display a prompt message on the mobile measurement interface to encourage the user to select a second measurement point. After the user touches the target location a second time, the system generates a second measurement marker based on the new intersection coordinates and associates both the first and second measurement markers with the same distance measurement record.
[0081] Here, after generating two measurement marker points, the system can calculate the Euclidean distance between the two points based on their 3D coordinates, thus obtaining the distance measurement result. Specifically, the system can calculate the coordinate difference between the two measurement marker points in 3D space and obtain the straight-line distance between the two points by taking the square root of the sum of the squares of the coordinate differences. The distance measurement result can be displayed in the currently selected measurement unit, such as meters, centimeters, feet, or inches.
[0082] Here, after the distance measurement result is generated, the system can draw a measurement connection line between the first and second measurement marker points and display a distance measurement label at the associated position of the measurement connection line. The measurement connection line can adopt the same or matching display style as the measurement marker points so that users can intuitively identify the two endpoints corresponding to the distance measurement record. The distance measurement label can display the distance value and unit, such as "3.25 m". In some embodiments, the distance measurement label can be placed near the beginning of the measurement connection line or near the middle of the measurement connection line so that users can intuitively see the distance result of the measurement record.
[0083] In one specific example, a user selects the distance measurement mode in the top-down view and clicks on the corresponding positions of the two side walls of the room in the building point cloud. The system maps the two screen touch operations to the coordinates of two intersection points on the current horizontal virtual measurement plane and generates two measurement marker points on this horizontal virtual measurement plane. Subsequently, the system calculates the straight-line distance between the two side walls of the room based on the three-dimensional coordinates of these two measurement marker points and displays a measurement connection line and a distance measurement label between the two measurement marker points. As another example, if a user clicks on the top and bottom edges of a doorway in the front view, the system can generate two measurement marker points on the front vertical virtual measurement plane and calculate the height of the doorway.
[0084] In area measurement mode, the system can perform area measurement based on at least three measurement markers. Specifically, after selecting area measurement mode, the user can sequentially touch multiple target locations on the screen. The system calculates the corresponding intersection coordinates for each valid screen touch operation and generates corresponding measurement markers on the virtual measurement plane. The multiple measurement markers can be connected sequentially in the order of generation to form a measurement polygon. When there is one measurement marker, the system can prompt the user to select a second point; when there are two measurement markers, the system can display a line connecting the two measurement markers and prompt the user to select a third point; when there are three measurement markers, the system can connect the multiple measurement markers end to end to form a closed polygon and begin calculating the area measurement result.
[0085] During area measurement, the system can select the corresponding two-dimensional projection plane according to the current measurement view direction and project the three-dimensional coordinates of multiple measurement markers onto that two-dimensional projection plane. For example, in the top view, the system can project the three-dimensional coordinates of the measurement markers onto the horizontal projection plane to calculate the area based on the horizontal and depth coordinates; in the front view, the system can project the three-dimensional coordinates of the measurement markers onto the front projection plane to calculate the area based on the horizontal and vertical coordinates; and in the side view, the system can project the three-dimensional coordinates of the measurement markers onto the side projection plane to calculate the area based on the vertical and depth coordinates.
[0086] In one specific implementation, the system can calculate the area of the measured polygon using the vector cross product method or the shoelace formula. For multiple measurement markers arranged in sequence, the system can sequentially accumulate the intersection terms of the coordinates of adjacent vertices based on their coordinates in the two-dimensional projection plane, and determine the area of the polygon based on the absolute value of the accumulated result. Simultaneously, the system can also calculate the perimeter of the measured polygon, that is, calculate the distance between adjacent measurement markers according to the generation order of the measurement markers, and include the distance between the last measurement marker and the first measurement marker in the perimeter calculation, thus obtaining the perimeter result of the closed polygon.
[0087] Furthermore, after generating the area and perimeter measurements, the system can display the corresponding area measurement labels on the mobile measurement interface. The area measurement labels can include the area and perimeter values, for example, displayed as "Area: 12.50 m²; Perimeter: 15.30 m". As the user places more measurement markers, the system can add these new markers to the current area measurement record and update the connecting lines of the measured polygon, the area measurement results, the perimeter results, and the area measurement labels in real time.
[0088] In one specific example, a user selects the area measurement mode in the top-down view and clicks on the four corner points of the room in sequence. The system maps these four touch operations to the coordinates of four intersection points on the current horizontal virtual measurement plane and generates four measurement markers in the order of the clicks. The system then forms a closed polygon from these four markers and calculates the area and perimeter of the room's planar region based on the horizontal projection plane. In another example, the user switches to the front view and clicks on multiple boundary positions of a rectangular area on a wall in sequence. The system generates a measurement polygon on the front vertical virtual measurement plane and calculates the area of that wall region.
[0089] In some embodiments, before calculating the area measurement result, the system can also perform self-intersection detection on the measured polygon. Specifically, the system can select the corresponding two-dimensional projection coordinates according to the current measurement view direction and perform pairwise intersection detection on each edge of the measured polygon. Edges that are adjacent or share a common endpoint may not be considered for self-intersection; for non-adjacent edges, if an intersection point is detected, the measured polygon can be determined to be a self-intersecting polygon. If the measured polygon is determined to be a self-intersecting polygon, the system can mark the area measurement result as invalid, for example, by displaying "Area: N / A", to avoid outputting an incorrect area value to the user. If no self-intersection is detected, the system continues to calculate and display the area measurement result.
[0090] In some embodiments, when the number of measurement markers in the area measurement mode reaches three or more and the measurement polygon is not determined to be a self-intersecting polygon, the system can also generate an area-filling region within the measurement polygon area. The area-filling region can generate a filling mesh through triangulation and is displayed semi-transparently on the virtual measurement plane, allowing the user to intuitively confirm the currently measured area range. The area-filling region can be updated in real time as measurement markers are added, deleted, or dragged.
[0091] In some embodiments, distance measurement records and area measurement records may have different completion status criteria. For a distance measurement record, it can be considered complete when it contains two measurement markers; for an area measurement record, it can be considered complete when it contains three or more measurement markers. Completed measurement records can be saved, displayed in the measurement record list, have their units switched, or be subsequently dragged and adjusted. Incomplete measurement records can display prompts, such as prompting the user to select a second point when the distance measurement record has only one measurement marker, or prompting the user to continue selecting subsequent points when the area measurement record has only one or two measurement markers.
[0092] S106. Display the measurement markers and the measurement results on the mobile terminal measurement interface.
[0093] In practical implementation, after generating measurement markers and obtaining corresponding measurement results, the system can display the measurement markers and results on the mobile measurement interface. The mobile measurement interface can include a point cloud display area, a measurement control area, a measurement record list area, and a result display area. The point cloud display area is used to display 3D point cloud data and 3D visualization elements corresponding to the measurement records. The measurement control area is used to receive operations such as view orientation switching, measurement mode switching, clipping range adjustment, and unit switching. The measurement record list area is used to display the generated measurement records, and the result display area is used to display the current measurement results or prompts.
[0094] Specifically, the system can display measurement markers at the three-dimensional spatial locations corresponding to the intersection coordinates. Measurement markers can be displayed as circular markers, dot markers, icon markers, or other recognizable visual objects. Measurement markers can have a display orientation that matches the current measurement view direction, such as facing the current camera or corresponding to the normal direction of the virtual measurement plane, thus ensuring that the user can clearly see the placed measurement markers in top, front, or side views.
[0095] In distance measurement mode, after the user places the first measurement marker, the system can display a prompt next to it, encouraging the user to place a second marker. For example, it could display "Pick a secondpoint..." or other equivalent text. After the user places the second measurement marker, the system can display a measurement connection line between the first and second markers, and show the distance measurement result at the associated location of the connection line. The distance measurement result can include the distance value and the current unit, such as "3.25 m". The endpoint positions of the measurement connection line can be determined in real time based on the three-dimensional coordinates of the two measurement markers, and updated synchronously as the measurement markers are dragged and corrected.
[0096] In area measurement mode, after the user places the first measurement marker, the system displays a prompt to place a second marker. After placing the second marker, the system displays the connecting line between the two markers and prompts the user to place a third. After placing the third or more markers, the system draws polygon boundaries according to the order in which the markers were generated and connects the last marker with the first to form a closed measurement area. The system can then display the area and perimeter results near the closed measurement area, for example, as "Area: 12.50 m²; Perimeter: 15.30 m".
[0097] In some embodiments, when the number of measurement markers in area measurement mode reaches three or more, the system can also display an area-filled region within the polygonal area. The area-filled region can be a semi-transparent fill surface, which can be generated into a mesh through triangulation and overlaid on the virtual measurement plane. By displaying the area-filled region, users can intuitively confirm the range of the currently measured point cloud region, avoiding misjudgments of the measurement area due to inaccurate vertex order or position. When measurement markers are added, deleted, or dragged for correction, the system can regenerate the area-filled region to ensure consistency with the current measurement polygon.
[0098] In some embodiments, if the system detects that the measured polygon is a self-intersecting polygon during the area measurement process, it can continue to display the measurement markers and polygon boundaries, but mark the area measurement result as invalid. For example, the system can display "Area: N / A" in the result label, or display a prompt message to encourage the user to adjust the vertex order or drag to correct the markers. In this way, incorrect area values can be output in the case of self-intersecting polygons, while retaining the measurement markers already placed by the user, making it easy for the user to correct them by dragging.
[0099] In some embodiments, measurement results can be displayed in the 3D point cloud scene via measurement result labels. These labels can be text labels floating near the measurement connection lines or measurement polygons, used to display information such as distance, area, perimeter, units, or invalid information. To ensure that mobile users can clearly read the measurement results under different view orientations and camera poses, the system can intelligently oriented the measurement result labels towards the camera.
[0100] Specifically, when displaying the distance measurement result label, the system determines the direction vector of the connecting line based on its start and end points, and determines the label's orientation based on the current camera's line of sight. The label can be placed near the start of the connecting line, or offset a certain distance along the connecting line and a certain distance perpendicular to the connecting line, to avoid obscuring the connecting line itself. Subsequently, the system can orient the label towards the current camera and determine its top direction based on the connecting line direction and the camera's line of sight, ensuring the label always faces the user in the 3D scene.
[0101] In some embodiments, the system can also perform anti-inversion processing on the measurement result label. Specifically, the system can obtain the top direction in screen space and compare the current top direction of the label with the top direction in screen space. If the comparison result shows that the label text direction is opposite to the top direction in screen space, the system can flip the top direction of the label or adjust the local rotation angle of the text inside the label so that the measurement result label always remains upright and readable on the mobile screen. In this way, even if the user switches the view direction, rotates the camera, or adjusts the display angle, the problem of inverted measurement result text is unlikely to occur.
[0102] In some embodiments, the measurement result label can also adaptively adjust its background size based on the displayed content. For example, when the distance value, area value, perimeter value, or unit character length changes, the system can dynamically adjust the width of the label background according to the number of text characters, ensuring that the label background completely covers the text content. The label background can use a semi-transparent background or other highlighting methods to improve the readability of the measurement results against a complex point cloud background.
[0103] In some embodiments, the mobile measurement interface can also display measurement results through a list of measurement records. Each measurement record can be displayed as a card and includes a view direction indicator, a measurement type icon, a measurement result value, and a selection status control. For example, a distance measurement record can display the current view direction indicator, a distance measurement icon, and a distance value; an area measurement record can display the current view direction indicator, an area measurement icon, an area value, and a perimeter value. When a measurement record is not yet complete, a prompt message can be displayed in the record card, such as "Pick a second point..." for a distance measurement record with only one measurement marker, "Pick a second point..." for an area measurement record with only one measurement marker, and "Pick a third point..." for an area measurement record with two measurement markers.
[0104] In some embodiments, when a user selects a measurement record in the measurement record list, the system can highlight the corresponding measurement markers, measurement connection lines, measurement result labels, and area fill regions. Highlighting can be achieved by increasing the rendering level, changing colors, thickening lines, or increasing transparency. Unselected measurement records can be displayed with low saturation or a weakened display to help the user distinguish the measurement record currently being viewed or edited. If the view orientation of the measurement record selected by the user differs from the current measurement view orientation, the system can automatically switch to the view orientation corresponding to that measurement record and display the corresponding 3D visualization elements.
[0105] In some embodiments, when a user switches between different measurement units, the system can synchronously update the displayed values of all measurement results in the mobile measurement interface. Measurement units may include at least one of meters, centimeters, feet, and inches. For distance measurement records, the system can convert the original distance value to the target unit and update the distance measurement label and record card; for area measurement records, the system can convert the area value and perimeter value to the target unit respectively and update the area measurement label and record card. The original measurement data can still be stored in a preset reference unit to avoid cumulative errors caused by multiple unit switches.
[0106] In some embodiments, the display layout of the mobile measurement interface can also adapt to both portrait and landscape modes. In portrait mode, the measurement control area and measurement record list can be placed at the bottom of the screen to retain the main point cloud display area; in landscape mode, the measurement control area and measurement record list can be placed on the side of the screen to obtain a wider point cloud display field of view. Regardless of whether it is in portrait or landscape mode, the system can maintain the spatial correspondence between measurement markers, measurement connecting lines, area filling areas, and measurement result labels and the 3D point cloud data.
[0107] See Figure 2 The diagram shows a flowchart of another measurement method for mobile terminal 3D point cloud scenes provided by an embodiment of this disclosure, the method including steps S201 to S204.
[0108] S201. In response to the user's drag operation on an existing measurement mark point, continuously acquire the current touch position during the dragging process.
[0109] S202. Regenerate the touch ray based on the current touch position, and calculate the coordinates of the intersection point between the regenerated touch ray and the virtual measurement plane.
[0110] S203. Move the dragged measurement marker to the recalculated intersection coordinates so that the measurement marker is always constrained to the virtual measurement plane during the dragging process.
[0111] S204. Update the measurement connection line, measurement results, and measurement result labels in real time based on the moved measurement marker points.
[0112] In practice, after the measurement markers are generated, the system also allows users to drag and correct existing measurement markers. Existing measurement markers can be endpoints in distance measurement records or vertices of polygons in area measurement records. By dragging and correcting existing measurement markers, users can fine-tune the position of measurement markers if the initial placement is inaccurate, without having to delete the current measurement record and re-execute the measurement operation.
[0113] Specifically, when a user touches an existing measurement marker on the mobile measurement interface, the system can recognize this touch as a drag operation targeting the existing measurement marker. Recognition methods may include: determining whether the touch location falls within the interactive area corresponding to the measurement marker, or determining whether the touch object is an existing measurement marker through an event system. If the touch object is an existing measurement marker, the system can identify that measurement marker as the dragged measurement marker and enter a marker drag correction state.
[0114] Here, after entering the marker point drag correction state, the system can continuously acquire the current touch position during the dragging process. The current touch position can be the two-dimensional screen coordinates corresponding to the user's finger moving on the mobile screen in real time. The system can acquire the current touch position according to a preset refresh rate or in each frame of dragging events to ensure that the dragged measurement marker point can continuously update its position as it moves with the user's finger.
[0115] After acquiring the current touch position each time, the system can regenerate a touch ray based on that position. Specifically, the system can generate a corresponding touch ray based on the current camera position, current camera orientation, camera projection parameters, and the current touch position. In orthographic projection mode, the current touch position can be back-projected into the 3D scene, and a touch ray can be generated along the current camera's line of sight. In perspective projection mode, a touch ray can also be generated based on the camera position and the world space direction corresponding to the current touch position.
[0116] Furthermore, after regenerating the touch ray, the system can calculate the coordinates of the intersection point between the regenerated touch ray and the current virtual measurement plane. The current virtual measurement plane can be the virtual measurement plane corresponding to the measurement record to which the dragged measurement marker belongs, or it can be the virtual measurement plane jointly determined by the current measurement view direction and the current point cloud clipping range. The system can perform ray-plane intersection calculations based on the normal direction of the virtual measurement plane, the plane reference point, the ray origin of the touch ray, and the ray direction to obtain the three-dimensional intersection coordinates of the current touch position on the virtual measurement plane.
[0117] It should be noted that if the regenerated touch ray intersects the virtual measurement plane, the system can move the dragged measurement marker to the recalculated intersection coordinates. Since each drag event determines the new 3D coordinates through ray-plane intersection, the dragged measurement marker remains constrained to the virtual measurement plane throughout the dragging process and will not detach from the current measurement plane due to user finger movement, changes in camera display angle, or uncertainty in 3D spatial depth.
[0118] In a specific example, after measuring the width of a room in a top-down view, a user finds that one of the measurement markers is off-center from the wall boundary. The user can then press and hold this marker and drag it closer to the wall boundary. During the dragging process, the system continuously acquires the user's finger's current touch position and maps each touch position to the coordinates of an intersection point on the current horizontal virtual measurement plane. The dragged measurement marker is then moved to the corresponding intersection point. Because the measurement marker remains on the horizontal virtual measurement plane, the corrected measurement result still corresponds to the current top-down section.
[0119] In another specific example, the user measures the area of a wall region from the front view, creating a measurement polygon composed of multiple measurement markers. If a vertex is inaccurate, the user can drag it to correct it. During dragging, the system continuously maps the current touch position to the front vertical virtual measurement plane and moves the vertex. As the vertex's position changes, the boundary shape, area filled region, area value, and perimeter value of the measurement polygon are all updated synchronously.
[0120] In some embodiments, the measurement connection line, measurement result, and measurement result label are updated in real time based on the moved measurement marker. For distance measurement records, when the first or second measurement marker is dragged and moved, the system can update the measurement connection line between the two measurement markers in real time, ensuring that the two endpoints of the connection line are aligned with the current positions of the two measurement markers. Simultaneously, the system can recalculate the Euclidean distance between the two measurement markers to obtain the updated distance measurement result, and synchronously update the value in the distance measurement result label.
[0121] Here, for area measurement records, when any measurement marker is dragged and moved, the system can update the edges adjacent to that measurement marker in the measurement polygon in real time and recalculate the area and perimeter of the measurement polygon. Specifically, the system can reconstruct the polygon based on the current coordinates of multiple moved measurement markers and calculate the area according to the projection plane corresponding to the current measurement view direction; simultaneously, the system can recalculate the distance between adjacent measurement markers and the distance between the first and last measurement markers to obtain the updated perimeter. The updated area and perimeter can be synchronously displayed in the area measurement result label.
[0122] In some embodiments, when a measurement marker point in the area measurement record is dragged, the system can re-perform polygon self-intersection detection. If the dragged measurement polygon changes from a non-self-intersecting state to a self-intersecting state, the system can mark the area measurement result as invalid and display an invalid message in the measurement result label; if the dragged measurement polygon returns from a self-intersecting state to a non-self-intersecting state, the system can recalculate and display a valid area measurement result. In this way, the reliability of the area result can be maintained when the user corrects the area measurement vertices.
[0123] In some embodiments, as the measurement markers are dragged and moved, the system can also update the display position and orientation of the measurement result labels in real time. For distance measurement result labels, the system can redetermine the label position based on the updated measurement connection lines; for area measurement result labels, the system can redetermine the label position based on the updated measurement polygon region. The measurement result labels can continue to face the camera and have upright, readable text to ensure that the user can observe changes in the measurement results in real time during the dragging process.
[0124] In some embodiments, the system can also update measurement record data during the dragging process. That is, when the three-dimensional coordinates of the dragged measurement marker change, the corresponding marker data in the measurement record can be updated synchronously, and the distance, area, or perimeter values in the measurement record can also be updated synchronously. If the measurement record is already displayed in the measurement record list, the system can synchronously refresh the measurement values in the record card to keep the three-dimensional display area and the measurement record list consistent.
[0125] In some embodiments, to avoid jitter or misoperation during dragging, the system can perform smoothing processing or minimum movement threshold determination on the current touch position. For example, when the movement distance of the current touch position relative to the touch position in the previous frame is less than a preset threshold, the measurement marker position may not be updated; when the touch position changes significantly, the measurement marker position may be updated using interpolation to make the marker movement process smoother. This processing can improve the stability of touch drag correction on mobile devices.
[0126] As one possible implementation, after responding to a user's drag operation on an existing measurement marker point, the method further includes: locking camera control to prevent the drag operation from triggering camera rotation, translation, or zoom; unlocking the camera control after the drag operation ends; and in distance measurement mode, determining the direction of a vertical reference line based on the direction of the line connecting the two measurement marker points and the normal direction of the virtual measurement plane, and displaying the vertical reference line centered on the dragged measurement marker point.
[0127] As one possible implementation, when a screen touch operation is received, it is determined whether the screen touch operation meets the valid measurement trigger conditions; wherein, the valid measurement trigger conditions include: the screen touch operation is a single-point touch, the touch start position is not located in the user interface control area, the touch movement distance does not exceed a preset drag threshold, and the touch position does not hit an existing measurement marker point; if the screen touch operation does not meet the valid measurement trigger conditions, the measurement marker point generation operation is not triggered.
[0128] As one possible implementation, a measurement record is generated, which includes measurement type, view direction, measurement marker data, and measurement results. In distance measurement mode, when the number of measurement markers reaches two, the measurement record is determined to be completed. In area measurement mode, when the number of measurement markers reaches three or more, the measurement record is determined to be completed. When the user switches the view direction, incomplete measurement records are deleted, and completed measurement records are retained.
[0129] As one possible implementation, the completed measurement records are serialized and saved to the local file system of the mobile device; when the 3D point cloud data is reloaded, the saved measurement records are read and deserialized to restore the measurement marker points, measurement connection lines, measurement result labels and area filling areas corresponding to the measurement records.
[0130] Those skilled in the art will understand that, in the above-described method of the specific implementation, the order in which each step is written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined by its function and possible internal logic.
[0131] Based on the same inventive concept, this disclosure also provides a measurement device for mobile terminal 3D point cloud scenes, corresponding to the measurement method for mobile terminal 3D point cloud scenes. Since the principle of the device in this disclosure for solving the problem is similar to the above-mentioned measurement method for mobile terminal 3D point cloud scenes, the implementation of the device can refer to the implementation of the method, and the repeated parts will not be described again.
[0132] Please see Figure 3 , Figure 3This is a schematic diagram of a measurement device for mobile 3D point cloud scenes provided in an embodiment of this disclosure. Figure 3 As shown in the figure, the measurement device 300 for mobile terminal 3D point cloud scenes provided in this embodiment includes: The point cloud rendering module 310 is used to load and display 3D point cloud data, and to determine the current measurement view direction in response to the user's view direction selection operation in the mobile measurement interface.
[0133] The measurement calculation module 320 is used to construct a virtual measurement plane corresponding to the current measurement view direction based on the current measurement view direction. The virtual measurement plane is used to carry measurement marker points.
[0134] The clipping control module 330 is used to acquire the clipping range of the point cloud and determine the planar position of the virtual measurement plane in the three-dimensional point cloud scene based on the clipping range of the point cloud.
[0135] The measurement interaction module 340 is used to respond to the user's screen touch operation on the three-dimensional point cloud data, generate a touch ray according to the screen touch operation, and calculate the coordinates of the intersection point of the touch ray and the virtual measurement plane.
[0136] The measurement execution module 350 is used to generate measurement marker points based on the intersection coordinates, and perform distance measurement based on at least two measurement marker points, or perform area measurement based on at least three measurement marker points, to obtain the corresponding measurement results.
[0137] The result display module 360 is used to display the measurement markers and the measurement results in the mobile terminal measurement interface.
[0138] The processing flow of each module in the device and the interaction flow between each module can be referred to the relevant descriptions in the above method embodiments, and will not be detailed here.
[0139] This disclosure provides a measurement method and apparatus for mobile terminal 3D point cloud scenarios. It can establish a virtual measurement plane that matches the current measurement direction under different view directions, and map the user's screen touch operation to the 3D coordinates on the virtual measurement plane. At the same time, it can adjust the position of the measurement plane in real time in combination with the point cloud clipping range, so as to improve the accuracy, intuitiveness and operation efficiency of mobile terminal point cloud measurement.
[0140] Corresponding to Figure 1 and Figure 2 The present disclosure also provides an electronic device 400 for measuring 3D point cloud scenes on mobile devices, as described in the measurement method for such scenes. Figure 4 The diagram shown is a structural schematic of an electronic device 400 provided in an embodiment of this disclosure, including: Processor 41, memory 42, and bus 43; memory 42 is used to store execution instructions, including main memory 421 and external memory 422; the main memory 421, also called internal memory, is used to temporarily store the computational data in processor 41, as well as the data exchanged with external memory 422 such as hard disk. Processor 41 exchanges data with external memory 422 through main memory 421. When the electronic device 400 is running, processor 41 and memory 42 communicate through bus 43, enabling processor 41 to execute... Figure 1 and Figure 2 The steps of the measurement method for mobile-device 3D point cloud scenes.
[0141] This disclosure also provides a computer-readable storage medium storing a computer program. When a processor executes the computer program, it performs the steps of the measurement method for mobile 3D point cloud scenes described in the above-described method embodiments. The storage medium can be a volatile or non-volatile computer-readable storage medium.
[0142] This disclosure also provides a computer program product, which includes computer instructions. When the computer instructions are executed by a processor, they can perform the steps of the measurement method for mobile terminal 3D point cloud scenes described in the above method embodiments. For details, please refer to the above method embodiments, which will not be repeated here.
[0143] The aforementioned computer program product can be implemented through hardware, software, or a combination thereof. In one optional embodiment, the computer program product is specifically embodied in a computer storage medium; in another optional embodiment, the computer program product is specifically embodied in a software product, such as a software development kit (SDK), etc.
[0144] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process of the device described above can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here. In the several embodiments provided in this disclosure, it should be understood that the disclosed device and method can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. Furthermore, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Another point is that the displayed or discussed mutual coupling or direct coupling or communication connection may be through some communication interfaces; the indirect coupling or communication connection of devices or units may be electrical, mechanical, or other forms.
[0145] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0146] In addition, the functional units in the various embodiments of this disclosure can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0147] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a processor-executable, non-volatile, computer-readable storage medium. Based on this understanding, the technical solution of this disclosure, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this disclosure. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0148] Finally, it should be noted that the above-described embodiments are merely specific implementations of this disclosure, used to illustrate the technical solutions of this disclosure, and not to limit it. The protection scope of this disclosure is not limited thereto. Although this disclosure has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that any person skilled in the art can still modify or easily conceive of changes to the technical solutions described in the foregoing embodiments, or make equivalent substitutions for some of the technical features, within the scope of the technology disclosed in this disclosure. Such modifications, changes, or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this disclosure, and should all be covered within the protection scope of this disclosure. Therefore, the protection scope of this disclosure should be determined by the protection scope of the claims.
Claims
1. A measurement method for mobile 3D point cloud scenes, characterized in that, include: Load and display 3D point cloud data, and determine the current measurement view orientation in response to the user's view orientation selection operation in the mobile measurement interface; Based on the current measurement view direction, a virtual measurement plane corresponding to the current measurement view direction is constructed, and the virtual measurement plane is used to carry measurement marker points; Obtain the point cloud clipping range, and determine the planar position of the virtual measurement plane in the three-dimensional point cloud scene based on the point cloud clipping range; In response to a user's screen touch operation on the 3D point cloud data, a touch ray is generated based on the screen touch operation, and the coordinates of the intersection point of the touch ray and the virtual measurement plane are calculated; Measurement markers are generated based on the coordinates of the intersection points, and distance measurements are performed based on at least two measurement markers, or area measurements are performed based on at least three measurement markers, to obtain the corresponding measurement results. The measurement markers and the measurement results are displayed in the mobile measurement interface.
2. The method according to claim 1, characterized in that, The current measurement view direction includes at least one of the top view direction, the front view direction, and the side view direction. Based on the current measurement view direction, a virtual measurement plane corresponding to the current measurement view direction is constructed, specifically including: When the current measurement view direction is the top view direction, the normal direction of the virtual measurement plane is determined as the vertical axis direction, and the virtual measurement plane is determined as the horizontal measurement plane; When the current measurement view direction is the front view direction, the normal direction of the virtual measurement plane is determined as the front-rear axis direction, and the virtual measurement plane is determined as the front vertical measurement plane; When the current measurement view direction is the side view direction, the normal direction of the virtual measurement plane is determined as the left and right axis direction, and the virtual measurement plane is determined as the side vertical measurement plane.
3. The method according to claim 1, characterized in that, Obtaining the point cloud clipping range and determining the planar position of the virtual measurement plane in the 3D point cloud scene based on the point cloud clipping range specifically includes: Obtain the bounding box of the point cloud corresponding to the three-dimensional point cloud data and the clipping ratio of the point cloud clipping range along the target axis, wherein the target axis is determined according to the current measurement view direction; The coordinates of the virtual measurement plane on the target axis are determined based on the boundary coordinates of the point cloud bounding box on the target axis, the size of the point cloud bounding box on the target axis, and the clipping ratio. In response to the user's adjustment operation on the clipping control, the point cloud clipping range is updated, and the planar position of the virtual measurement plane is recalculated based on the updated point cloud clipping range. The visible range of the 3D point cloud data is refreshed based on the updated point cloud clipping range, and the subsequently generated measurement markers are placed on the recalculated virtual measurement plane.
4. The method according to claim 1, characterized in that, In response to a user's screen touch operation on the 3D point cloud data, a touch ray is generated based on the screen touch operation, and the coordinates of the intersection point of the touch ray and the virtual measurement plane are calculated, specifically including: Obtain the screen touch position corresponding to the screen touch operation, and generate a touch ray based on the camera position in the mobile terminal measurement interface and the screen touch position; Obtain the normal direction of the virtual measurement plane and the plane reference point on the virtual measurement plane; The intersection point of the touch ray and the virtual measurement plane is calculated based on the ray origin, ray direction, normal direction, and plane reference point. When the touch ray is not parallel to the virtual measurement plane and the intersection point is located in the positive direction of the ray, the three-dimensional coordinates of the intersection point are determined as the intersection point coordinates.
5. The method according to claim 1, characterized in that, Distance measurement is performed based on at least two measurement markers, specifically including: In distance measurement mode, in response to two screen touch operations performed by the user in sequence, a first measurement marker point and a second measurement marker point are generated respectively; Calculate the Euclidean distance between the first measurement marker point and the second measurement marker point to obtain the distance measurement result; A measurement connection line is generated between the first measurement marker point and the second measurement marker point, and the distance measurement result is displayed at the associated position of the measurement connection line.
6. The method according to claim 1, characterized in that, Area measurement is performed based on at least three measurement markers, specifically including: In area measurement mode, in response to at least three screen touch operations performed sequentially by the user, multiple measurement marker points are generated, and a measurement polygon is formed according to the generation order of the multiple measurement marker points; Based on the current measurement view direction, the three-dimensional coordinates of the plurality of measurement marker points are projected onto the corresponding two-dimensional projection plane; The area of the measured polygon is calculated based on the projected two-dimensional coordinates to obtain the area measurement result, and the perimeter of the measured polygon is calculated based on the distance between adjacent measurement markers. The area measurement result and the perimeter are displayed in the mobile measurement interface.
7. The method according to claim 6, characterized in that, Before calculating the area of the measured polygon based on the projected two-dimensional coordinates, the method further includes: Perform pairwise intersection detection on the edges of the measured polygon; If an intersection is detected between any two non-adjacent sides, the measured polygon is determined to be a self-intersecting polygon, and the area measurement result is marked as invalid. If no intersection of any two non-adjacent sides is detected, the area of the measured polygon is calculated based on the projected two-dimensional coordinates, and an area-filled region corresponding to the measured polygon is generated.
8. The method according to claim 1, characterized in that, The method further includes: In response to the user's drag operation on existing measurement markers, the current touch position is continuously acquired during the dragging process; Based on the current touch position, a touch ray is regenerated, and the coordinates of the intersection point between the regenerated touch ray and the virtual measurement plane are calculated. The dragged measurement marker is moved to the recalculated intersection coordinates so that the measurement marker is always constrained to the virtual measurement plane during the dragging process; The measurement connection line, measurement results, and measurement result labels are updated in real time based on the moved measurement marker points.
9. The method according to claim 1, characterized in that, The measurement results are displayed in the mobile measurement interface, specifically including: The display direction of the measurement result label is determined based on the direction vector of the measurement connection line and the direction of the camera's line of sight. The display orientation of the measurement result label is adjusted according to the top direction of the screen space to prevent inversion, so that the measurement result label remains upright and readable in the mobile measurement interface. Adjust the display size of the label background based on the text length of the label according to the measurement results.
10. A measurement device for mobile terminal 3D point cloud scenes, characterized in that, include: The point cloud rendering module is used to load and display 3D point cloud data, and respond to the user's view direction selection operation in the mobile measurement interface to determine the current measurement view direction; The measurement calculation module is used to construct a virtual measurement plane corresponding to the current measurement view direction based on the current measurement view direction. The virtual measurement plane is used to carry measurement marker points. The clipping control module is used to acquire the point cloud clipping range and determine the planar position of the virtual measurement plane in the three-dimensional point cloud scene based on the point cloud clipping range. The measurement interaction module is used to respond to the user's screen touch operation on the three-dimensional point cloud data, generate a touch ray based on the screen touch operation, and calculate the coordinates of the intersection point of the touch ray and the virtual measurement plane. The measurement execution module is used to generate measurement marker points based on the intersection coordinates, and perform distance measurement based on at least two measurement marker points, or perform area measurement based on at least three measurement marker points, to obtain the corresponding measurement results; The result display module is used to display the measurement markers and the measurement results in the mobile terminal measurement interface.