A method and device for loading large-scale oblique photography data
By preloading and analyzing the occlusion relationship of the tile set in the interactive interface, only the unoccluded tile set is loaded, and the obstructed tile set is loaded during user operations, the interface caused by large-scale tilt photography data loading is solved. The problem of not smoothness enables support for fast loading and viewing angle rotation.
Patent Information
- Application Number
- CN202311846442.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-29
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2043-12-29
AI Technical Summary
The loading of large-scale tilt photography data causes the interaction interface to be unsmooth, and traditional scheduling algorithms consume a large amount of thread resources, resulting in lag, and merging the root nodes requires commercial tools to process and are time-consuming and data compatibility issues.
Provide unlock buttons in the interactive interface, preload tile data within the preset range from the current camera position, analyze the occlusion relationship between tile sets, only unoccluded tile sets, and click the unlock button when the user clicks the unlock button Loading occluded tiles sets, supporting viewing angle rotation and scaling.
It realizes rapid loading and display of large-scale tilt photography data, reduces loading time, supports user's perspective rotation, avoids the defect of loading all tile data sets at once in the traditional method, and improves the interface response speed.
Smart Images

Figure CN118113394B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of visualization technology, and in particular to a method and device for loading large-scale oblique photography data. Background Art
[0002] Oblique photography is a technology developed in the international surveying and mapping field in recent years. It overturns the previous limitation that orthophotos can only be taken from a vertical angle. By mounting a camera with multiple lenses on the same flying platform, it simultaneously collects images from five different angles, including one vertical and four oblique angles. It observes objects from multiple angles, reflects the real situation of objects, and introduces users into a real and intuitive world that conforms to human vision.
[0003] The 3D model obtained based on oblique photography technology can directly reflect the characteristics and texture information of the ground objects, which greatly promotes the development of the surveying and mapping industry and provides basic data for applications such as 3D digital cities and digital villages. However, in actual use, due to the huge amount of oblique photography data, it takes a long time to load the data into the interface, resulting in an unsmooth interactive interface.
[0004] As an important component of three-dimensional scenes such as smart cities and digital villages, oblique photography models often have a huge amount of data, which is measured in TBs. A typical application process of oblique photography data is that the data collector obtains the original oblique photography data through drone aerial photography, and then processes it to obtain the binary storage format of the OSG engine (Open SceneGragh Binary, referred to as: OSGB), and then converts it into a three-dimensional tile file (3DTiles) for delivery. 3DTiles technology has a natural level of detail (Level Of Details, referred to as: LOD) feature. The traditional scheduling algorithm is to adaptively load the appropriate level of data according to the visibility screen error, so it can adapt to the application of massive oblique photography data. However, when the 3DTiles data set increases, even a simple visibility calculation of the 3DTiles data set will consume a lot of thread resources, resulting in jams. A common method is to limit the number of data sets by merging root nodes. However, merging root nodes often requires specialized commercial tools for processing, and the processing is time-consuming, and there are also data compatibility issues.
[0005] In view of this, overcoming the defects of the prior art is an urgent problem to be solved in the field of this technology. Summary of the invention
[0006] The technical problem to be solved by the present invention is to provide a method for loading large-scale oblique photography data.
[0007] The present invention adopts the following technical solution:
[0008] A method for loading large-scale oblique photography data, comprising:
[0009] An unlock button is provided in the interactive interface. When the interactive interface is initially opened, the unlock button is in a locked state and prohibits the user from rotating and zooming the viewing angle.
[0010] All areas within a first preset range from the current camera position are used as preload areas, and each tile data set within the preload area is used as a preload tile set;
[0011] The preloaded area is divided into multiple sub-areas. In each sub-area, the sub-area is used as the field of view, the corresponding sub-area camera position is determined, and multiple sub-area tile sets corresponding to the sub-area are found from the preloaded tile set.
[0012] Generate a first view cone using the sub-region camera position, the preset field of view height, and the preset viewing angle, use the first view cone to analyze the occlusion relationship between the sub-region tile sets in the corresponding sub-region, integrate the occlusion relationship of the sub-region tile sets corresponding to each sub-region, and obtain the occlusion relationship between the preloaded tile sets;
[0013] Loading the unobstructed preloaded tile set as a first tile set into the interactive interface, and storing the obstructed preloaded tile set as a second tile set into the first cache; wherein the interactive interface is presented with a current camera position, a preset field of view height, and a preset viewing angle;
[0014] When the user clicks the unlock button, a second tile set within a second preset range from the current camera position is retrieved from the first cache, the retrieved second tile set is loaded into the interactive interface, and the user is allowed to rotate and zoom the perspective, so that when the user rotates to the perspective, the image after the rotation of the perspective can be displayed in real time.
[0015] Preferably, the using the first view frustum to analyze the occlusion relationship between the tile sets of each sub-region in the corresponding sub-region specifically includes:
[0016] Calculate the distance from the center position of the bounding box of each sub-region tile set in the sub-region to the sub-region camera position, and the inclination angle of the center position of the bounding box of the sub-region tile set relative to the camera position;
[0017] Among multiple sub-region tile sets whose inclination angle differences are less than a preset difference, the sub-region tile set with the shortest distance is used as the unobstructed tile data set, and the other sub-region tile sets are used as the obstructed tile data sets, so as to obtain the occlusion relationship between the sub-region tile sets in the sub-region.
[0018] Preferably, the method further comprises:
[0019] If the user drags the field of view after clicking the unlock button, it is determined whether the camera position after dragging is within a second preset range of the current camera position;
[0020] If the camera position after dragging is within the second preset range of the current camera position, the interactive interface is directly presented at the current field of view height and current viewing angle;
[0021] If the camera position after dragging is outside the second preset range of the current camera position but is within the preloaded area, the interactive interface will be restored to be presented at the preset field of view height and preset viewing angle, and then the second tile set within the second preset range of the camera position after dragging will be loaded into the interactive interface.
[0022] Preferably, the method further comprises:
[0023] If the camera position after dragging is outside the preloaded area, a new preloaded area is generated. In the new preloaded area, tiles are loaded and the interactive interface is presented based on the camera position after dragging, the preset field of view height, and the preset viewing angle.
[0024] Preferably, the step of finding multiple sub-region tile sets corresponding to the sub-regions from the preloaded tile set specifically includes:
[0025] According to the longitude range of the sub-region and the latitude range of the sub-region, determining whether the longitude range of each preloaded tile set overlaps with the longitude range of the sub-region, and determining whether the latitude range of each preloaded tile set overlaps with the latitude range of the sub-region;
[0026] If the longitude range of the first preloaded tile set overlaps with the longitude range of the sub-region, and the latitude range of the first preloaded tile set overlaps with the latitude range of the sub-region, then the first preloaded tile set is the sub-region tile set of the sub-region.
[0027] Preferably, the step of loading the unobstructed preloaded tile set as the first tile set into the interactive interface is actually loading multiple first tile sets visible at the current camera position, the preset field of view height and the preset viewing angle into the interactive interface, specifically including:
[0028] Generate a second view cone using the current camera position, a preset view height, and a preset view angle, and filter each first tile set according to the view range of the second view cone to obtain each related tile set;
[0029] Starting from the root node of the relevant tile set, traversing nodes in turn in the direction of child nodes, and each time a node is visited, determining the inclusion relationship between the bounding box corresponding to the node and the second viewing cone;
[0030] When it is determined that the bounding box corresponding to the first node is completely outside the second viewing cone, the first node and all child nodes under the first node are clipped;
[0031] When it is determined that the bounding box corresponding to the first node is completely located inside the second viewing cone, the first node and all child nodes below the first node are retained;
[0032] When it is determined that the bounding box portion corresponding to the first node is located inside the second viewing cone, the first node is retained, and the child nodes in the lower layer of the first node are traversed continuously until all the child nodes of the first node are clipped or retained;
[0033] The retained nodes are visible tiles; the visible tiles are loaded into the interactive interface, and the other tiles in each first tile set are loaded into the second cache, so that when the user drags the camera position, other tiles are taken out from the second cache and loaded into the interactive interface.
[0034] Preferably, the step of loading the visible tiles into the interactive interface specifically includes:
[0035] Take each visible tile as the first tile, and calculate the screen space error SSE of each first tile in sequence from the parent node to the child node;
[0036] If the screen space error SSE of the corresponding first tile is greater than the preset error, the first tile is not loaded, and the first tile is continuously accessed to the lower level of the first tile until the screen space error SSE of the corresponding first tile is less than or equal to the preset error or the first tile at the bottom layer is accessed, and the first tile with the screen space error SSE less than or equal to the preset error or the first tile at the bottom layer is loaded into the interactive interface;
[0037] Among them, the screen space error SSE of the first tile = (geometricError×height) / (distance×sseDenominator); geometricError is the geometric error of the first tile, height is the pixel height of the interactive interface, distance is the distance between the current camera position and the center point of the minimum bounding box of the first tile, and sseDenominator is twice the tangent value of the current viewing angle.
[0038] Preferably, the preset field of view height and the preset viewing angle are preset by a person skilled in the art, or preset by a user.
[0039] Preferably, the method further comprises:
[0040] When it is determined based on the user's historical operating habits that the number of times the user has browsed the corresponding area exceeds the preset number, and the difference between the various field of view heights used when historically browsing the area is less than the first preset difference, and the difference between the various viewing angles used when historically browsing the area is less than the second preset difference, then after calculating the average field of view height and the average viewing angle used for historical browsing of the area, the image of the area in the interactive interface at the average field of view height and the average viewing angle is pre-stored, so that when the user subsequently browses the area, and the difference between the actual field of view height and the average field of view height is less than the first preset difference, and the difference between the actual browsing viewing angle and the average viewing angle is less than the second preset difference, the image can be directly loaded onto the interactive interface.
[0041] In a second aspect, the present invention further provides a device for loading large-scale oblique photography data, which is used to implement the method for loading large-scale oblique photography data in the first aspect, and the device comprises:
[0042] At least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the processor to execute the method for loading large-scale oblique photography data described in the first aspect.
[0043] In a third aspect, the present invention further provides a non-volatile computer storage medium, wherein the computer storage medium stores computer executable instructions, which are executed by one or more processors to complete the method for loading large-scale oblique photography data described in the first aspect.
[0044] The present invention presents a preset field of view height and a preset viewing angle when the interactive interface is just opened, and calculates the occlusion relationship between each tile data set under this condition, thereby eliminating the need to load the occluded tile data set into the interface, so as to achieve rapid loading and display of large-scale oblique photography data, and when the user clicks the unlock button, the occluded tile data set is loaded, thereby supporting the user's viewing angle rotation action. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the following briefly introduces the drawings required for use in the embodiments of the present invention. Obviously, the drawings described below are only some embodiments of the present invention, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0046] Figure 1 is a flow chart of a first large-scale oblique photography data loading method provided by an embodiment of the present invention;
[0047] Figure 2 It is a schematic diagram of an interface of a method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0048] Figure 3 It is a schematic diagram of an interface of another method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0049] Figure 4 is a schematic diagram of a method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0050] Figure 5 is a flow chart of a second method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0051] Figure 6 is a flow chart of a third method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0052] Figure 7 is a flow chart of a fourth method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0053] Figure 8 is a flowchart of a fifth method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0054] Fig. 9 is a flow chart of a sixth method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0055] Fig.10 is a flow chart of a seventh method for loading large-scale oblique photography data provided by an embodiment of the present invention;
[0056] Fig.11 It is a schematic diagram of the architecture of a large-scale oblique photography data loading device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0057] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention.
[0058] In the description of the present invention, the terms "inside", "outside", "longitudinal", "lateral", "upper", "lower", "top", "bottom" and the like indicate orientations or positional relationships based on the orientations or positional relationships shown in the accompanying drawings. They are only for the convenience of describing the present invention and do not require that the present invention must be constructed and operated in a specific orientation. Therefore, they should not be understood as limitations on the present invention.
[0059] The terms "first", "second", etc. in the present invention are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first", "second", etc. may explicitly or implicitly include one or more of the features. In the description of this application, unless otherwise specified, "plurality" means two or more.
[0060] In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
[0061] Embodiment 1:
[0062] Embodiment 1 of the present invention provides a method for loading large-scale oblique photography data, such as Figure 1 As shown, including:
[0063] In step 201, an unlock button is provided in the interactive interface. When the interactive interface is initially opened, the unlock button is in a locked state and prohibits the user from rotating and zooming the viewing angle.
[0064] In step 202, all areas within a first preset range from the current camera position are used as preload areas, and each tile data set within the preload area is used as a preload tile set.
[0065] In step 203, the preloaded area is divided into multiple sub-areas. In each sub-area, the sub-area is used as the field of view, the corresponding sub-area camera position is determined, and multiple sub-area tile sets corresponding to the sub-area are found from the preloaded tile set.
[0066] The method of using the sub-region as the field of view and determining the corresponding sub-region camera position is to generate a basic view cone with a preset field of view height and a preset viewing angle, then establish a relationship model between the camera position of the basic view cone and the field of view, and determine the camera position corresponding to the field of view of the sub-region according to the relationship model as the sub-region camera position. In an optional embodiment, the sub-region can also be divided in the form of a sliding window so that there is overlap between adjacent sub-regions, so as to obtain a more accurate occlusion relationship in the subsequent process.
[0067] In step 204, a first view cone is generated using the sub-region camera position, the preset view height and the preset viewing angle, and the first view cone is used to analyze the occlusion relationship between the sub-region tile sets in the corresponding sub-region, and the occlusion relationship of the sub-region tile sets corresponding to each sub-region is integrated to obtain the occlusion relationship between the preloaded tile sets; wherein the preset view height and the preset viewing angle are preset by a person skilled in the art, or preset by a user, such as providing a setting page for the user to input the corresponding preset view height and preset viewing angle in the setting page. The first view cone can be understood as the view cone corresponding to the entire sub-region that can be seen at the preset view height and the preset viewing angle. Integrating the occlusion relationship of the sub-region tile sets corresponding to each sub-region is actually to correspond each sub-region tile set to the preloaded tile set, so as to determine the occlusion relationship between the preloaded tile sets. In some cases, a preloaded tile set may also belong to different sub-regions at the same time. At this time, if the preloaded tile set is not obscured in any sub-region, the preloaded tile set is an unobstructed preloaded tile set, otherwise, the preloaded tile set is an obscured preloaded tile set.
[0068] In step 205, the unobstructed preloaded tile set is loaded into the interactive interface as the first tile set, and the obstructed preloaded tile set is stored in the first cache as the second tile set; wherein the interactive interface is presented with the current camera position, the preset field of view height and the preset viewing angle; that is, the user is only allowed to drag the field of view, but not to zoom or rotate the field of view, such as Figure 2 As shown, the multi-function button for viewing angle rotation is hidden, and the response to the user's mouse wheel operation is turned off.
[0069] In step 206, when the user clicks the unlock button, a second tile set within a second preset range from the current camera position is retrieved from the first cache, the retrieved second tile set is loaded into the interactive interface, and the user is allowed to rotate and zoom the perspective, such as Figure 3As shown, the multi-function button for rotating the viewing angle in the lower right corner is displayed, and the user's mouse wheel operation is responded to, so as to zoom the viewing angle, so that when the user rotates to the viewing angle, the image after the viewing angle rotation is displayed in real time. Wherein, the first preset range and the second preset range are obtained by those skilled in the art based on empirical analysis, and the first preset range is larger than the second preset range. It should be noted that the first preset range and the second preset range do not absolutely refer to the corresponding circle with the current camera position as the center. The area formed by the first preset range and the second preset range can be circular, rectangular, etc., which are obtained by those skilled in the art based on demand analysis. In an optional embodiment, the first preset range and the second preset range can be measured using longitude and latitude. For example, when the current camera position is (lat, lon), the area within the first preset range from the current camera position can be the area formed by ((lat-x)~(lat+x), (lon-y)~(lon+y)), and x and y are obtained by those skilled in the art based on empirical analysis.
[0070] In three-dimensional rendering, especially when there are tall buildings in the city, there will usually be occlusions between buildings or other objects at the corresponding viewing angle and viewing height, such as Figure 4 As shown, since building 2 is blocked by building 1, even if building 2 is loaded into the interactive interface, it still cannot be directly seen by the user at the current viewing angle and the current height, and considering that when the viewing angle and the viewing angle are fixed, the blocking relationship between each tile data set is also relatively fixed, therefore, this embodiment presents it at a preset viewing angle and a preset viewing angle when the interactive interface is just opened, and calculates the blocking relationship between each tile data set under this condition, thereby eliminating the need to load the blocked tile data set into the interface, so as to achieve rapid loading and display of large-scale oblique photography data, and, when the user clicks the unlock button, the blocked tile data set is loaded again, so as to support the user's viewing angle rotation action, thereby converting the prior art of loading all tile data sets at one time into two loads, wherein one loads the unblocked tile data set and the second loads the blocked tile data set, thereby speeding up the presentation to the user.
[0071] In an optional implementation, the first view frustum is used to analyze the occlusion relationship between the tile sets of each sub-region in the corresponding sub-region, such as Figure 5 As shown, specifically including:
[0072] In step 301 , the distance from the center position of the bounding box of each sub-region tile set in the sub-region to the sub-region camera position and the inclination angle of the center position of the bounding box of the sub-region tile set relative to the camera position are calculated.
[0073] In step 302, among multiple sub-region tile sets whose inclination angle differences are less than a preset difference, the sub-region tile set with the shortest distance is used as an unobstructed tile data set, and the other sub-region tile sets are used as obstructed tile data sets to obtain the occlusion relationship between the sub-region tile sets in the sub-region.
[0074] The preset difference is obtained by those skilled in the art based on empirical analysis. When the inclination angles between each other are less than the preset difference, it can be considered that under the preset field of view height and the preset viewing angle, the multiple sub-region tile sets are located at the same angle of the camera position. When the multiple sub-region tile sets are distributed one after the other relative to the camera position (i.e., one is closer to the camera and the other is farther from the camera), it is considered that there is an occlusion relationship between the multiple sub-region tile sets.
[0075] In practical application scenarios, this embodiment also provides a preferred implementation method, such as Figure 6 As shown, the method further includes:
[0076] In step 401, if the field of view is dragged after the user clicks the unlock button, it is determined whether the camera position after the dragging is within a second preset range of the current camera position.
[0077] In step 402, if the camera position after dragging is within the second preset range of the current camera position, the interactive interface is directly presented at the current field of view height and the current viewing angle; since each tile set within the second preset range is loaded when the unlock button is clicked, it can be displayed directly.
[0078] In step 403, if the camera position after dragging is outside the second preset range of the current camera position but within the preloaded area, the interactive interface is restored to be presented at the preset field of view height and preset viewing angle, and then the second tile set within the second preset range of the camera position after dragging is loaded into the interactive interface. That is, when outside the second preset range, since only the first tile set is loaded and the second tile set is not loaded, it is presented to the user at the preset field of view height and preset viewing angle for quick presentation, and then the second tile set is loaded.
[0079] The method also includes: if the camera position after dragging is outside the preloading area, a new preloading area is generated, and in the new preloading area, tiles are loaded and the interactive interface is presented with the camera position after dragging, a preset field of view height and a preset viewing angle, that is, the above steps 202-205 are executed again.
[0080] In an optional implementation manner, the finding of multiple sub-region tile sets corresponding to the sub-region from the preloaded tile set is as follows: Figure 7 As shown, specifically including:
[0081] In step 501, based on the longitude range of the sub-area and the latitude range of the sub-area, it is determined whether the longitude range of each preloaded tile set overlaps with the longitude range of the sub-area, and it is determined whether the latitude range of each preloaded tile set overlaps with the latitude range of the sub-area; wherein the longitude range and latitude range of each tile data set are pre-set by a technician in this field.
[0082] In step 502, if the longitude range of the first preloaded tile set overlaps with the longitude range of the sub-region, and the latitude range of the first preloaded tile set overlaps with the latitude range of the sub-region, then the first preloaded tile set is the sub-region tile set of the sub-region. When there is overlap in longitude and overlap in latitude, it can be considered that at least some tiles in the first preloaded tile set are located in the sub-region.
[0083] In actual use, the method of loading the unobstructed preloaded tile set as the first tile set into the interactive interface is actually loading multiple first tile sets that are visible at the current camera position, preset field of view height and preset viewing angle into the interactive interface, such as Figure 8 As shown, specifically including:
[0084] In step 601, a second view cone is generated using the current camera position, a preset field of view height, and a preset viewing angle. The first tile sets are screened according to the field of view of the second view cone to obtain relevant tile sets. The screening process here is based on the same concept as the above steps 501-502 and will not be elaborated on again. The second view cone can be understood as the view cone used by the interactive interface currently presented to the user.
[0085] In step 602, node traversal is performed from the root node of the relevant tile set to the child nodes in sequence, and each time a node is visited, the inclusion relationship between the bounding box corresponding to the node and the second viewing cone is determined.
[0086] In step 603, when it is determined that the bounding box corresponding to the first node is completely outside the second viewing cone, the first node and all child nodes below the first node are clipped.
[0087] In step 604, when it is determined that the bounding box corresponding to the first node is completely located inside the second viewing cone, the first node and all child nodes below the first node are retained.
[0088] In step 605, when it is determined that the bounding box corresponding to the first node is partially located inside the second viewing cone, the first node is retained, and the child nodes below the first node are traversed until all the child nodes of the first node are clipped or retained.
[0089] In step 606, the retained nodes are visible tiles; the visible tiles are loaded into the interactive interface, and the other tiles in each first tile set are loaded into the second cache, so that when the user drags the camera position, other tiles are taken from the second cache and loaded into the interactive interface. The other tiles refer to tiles other than the visible tiles in each first tile set.
[0090] In actual use, it is also necessary to determine whether the accuracy of the tiles loaded on the interactive interface meets the requirements, that is, the visible tiles are loaded into the interactive interface, such as Fig. 9 As shown, specifically including:
[0091] In step 701, each visible tile is taken as a first tile, and the screen space error SSE of each first tile is calculated in sequence from the parent node to the child node.
[0092] In step 702, if the screen space error SSE of the corresponding first tile is greater than the preset error, the first tile is not loaded, and the first tile is continuously accessed until the screen space error SSE of the corresponding first tile is less than or equal to the preset error or the first tile at the bottom layer is accessed, and the first tile with the screen space error SSE less than or equal to the preset error or the first tile at the bottom layer is loaded into the interactive interface; wherein, the screen space error SSE of the first tile = (geometricError×height) / (distance×sseDenominator); geometricError is the geometric error of the first tile, height is the pixel height of the interactive interface, distance is the distance between the current camera position and the center point of the minimum bounding box of the first tile, and sseDenominator is twice the tangent value of the current viewing angle. The preset error is obtained by those skilled in the art based on empirical analysis.
[0093] In a preferred embodiment, in order to further speed up the loading speed, the method further includes: when it is determined based on the user's historical operation habits that the number of times the user browses the corresponding area exceeds the preset number, and the difference between the various visual field heights used in the historical browsing of the area is less than the first preset difference, and the difference between the various viewing angles used in the historical browsing of the area is less than the second preset difference, then after calculating the average visual field height and the average viewing angle used in the historical browsing of the area, the image of the area in the interactive interface at the average visual field height and the average viewing angle is pre-stored, so that when the user browses the area later, and the difference between the actual visual field height and the average visual field height is less than the first preset difference, and the difference between the actual browsing viewing angle and the average viewing angle is less than the second preset difference, the image is directly loaded onto the interactive interface. Wherein, the first preset difference and the second preset difference are obtained by those skilled in the art based on empirical analysis.
[0094] Embodiment 2:
[0095] The present invention is based on the method described in Example 1, combined with specific application scenarios, and uses technical descriptions in related scenarios to illustrate the implementation process of the present invention in characteristic scenarios.
[0096] The method for loading large-scale oblique photography data provided in this embodiment includes: in the initial interactive interface, the occlusion relationship between tile sets is calculated based on the preset field of view height and the preset viewing angle, and the unobstructed tile sets are presented on the interface until the user clicks the unlock button, at which time the obstructed tile sets are loaded into the interface for presentation.
[0097] The unobstructed tile set is presented in the interface, such as Fig.10 As shown, it specifically includes four processes: tile correlation calculation, tile visibility judgment, tile level judgment, and tile request and loading.
[0098] The tile correlation calculation specifically includes: calculating tile correlation according to geographic information, and pre-shielding the scheduling of irrelevant tiles. Each tile data set is assigned a relevant longitude and latitude range. When the longitude and latitude of the target in the current front camera's view falls within the relevant longitude and latitude range of the tile set, the tile set is a relevant tile, otherwise it is irrelevant. The specific judgment method is as follows:
[0099] (1) For n 3dtiles datasets T(i), i = 0.. n-1, configure the maximum and minimum longitude and latitude ranges latMin(i), latMax(i), lonMin(i), lonMax(i).
[0100] (2) For any target longitude and latitude (lat, lon), determine the relevance of each data set T(i) according to the following rules:
[0101] If latMin(i)<= lat<= latMax(i) and lonMin(i)<= lon<= lonMax(i), then T(i) is the relevant dataset at the current target longitude and latitude; otherwise, T(i) is an irrelevant dataset.
[0102] The tile visibility judgment specifically includes: judging the tile area visibility through the tile area bounding box, and clipping the invisible tiles. If the tile is completely in the visible area, then its child node tiles are also completely in the visible area and no clipping is performed, otherwise all of them are clipped; if the tile is partially in the visible area, that is, the area where the tile is located is partially visible, only the invisible part of its child node tiles needs to be clipped.
[0103] Tile level judgment, specifically including: controlling tile loading through the screen space error (Screen Space Error, SSE) value. Integrating the tile geometric error (geometricError) with the screen parameters, and using factors such as geometricError and the distance from the camera to the tile to convert the actual error into the screen space error, is an important parameter for judging whether the current tile is of appropriate fineness. The calculation formula is:
[0104] SSE=(geometricError×height) / (distance×sseDenominator)
[0105] Among them, height is the pixel height of the browser window where the current scene is located; distance is the distance from the current camera position to the center point of the minimum bounding volume of the tile; sseDenominator is twice the tangent value of the current camera view; geometricError is the geometric error of the model tile. When sse is less than minSSE, the current tile fineness meets the requirements and does not need to be subdivided; when sse is greater than the given minSSE, the tile needs to be subdivided.
[0106] Tile request and loading, specifically including: for tiles that need to be displayed, request data and load it.
[0107] To address the rendering lag problem when there are large-scale data, especially when there are many 3dtiles data sets, the above optimization algorithm is used to introduce geographic information to pre-screen tile relevance and shield irrelevant data sets, thereby reducing computing overhead and achieving the effect of large-scale 3D scene rendering optimization.
[0108] Embodiment 3:
[0109] like Fig.11, is a schematic diagram of the architecture of a large-scale oblique photography data loading device according to an embodiment of the present invention. The large-scale oblique photography data loading device according to this embodiment includes one or more processors 21 and a memory 22. Fig.11 A processor 21 is taken as an example.
[0110] The processor 21 and the memory 22 may be connected via a bus or other means. Fig.11 The example of connecting through bus is taken in the following.
[0111] The memory 22 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs and non-volatile computer executable programs, such as the method for loading large-scale oblique photography data in Example 1. The processor 21 executes the method for loading large-scale oblique photography data by running the non-volatile software programs and instructions stored in the memory 22.
[0112] The memory 22 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage devices. In some embodiments, the memory 22 may optionally include a memory remotely arranged relative to the processor 21, and these remote memories may be connected to the processor 21 via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0113] The program instructions / modules are stored in the memory 22 , and when executed by the one or more processors 21 , the method for loading large-scale oblique photography data in the above-mentioned embodiment 1 is executed.
[0114] It is worth noting that the information interaction, execution process, etc. between the modules and units within the above-mentioned devices and systems are based on the same concept as the processing method embodiment of the present invention. The specific contents can be found in the description of the method embodiment of the present invention and will not be repeated here.
[0115] A person skilled in the art may understand that all or part of the steps in the various methods of the embodiments may be completed by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the storage medium may include: a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk, etc.
[0116] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the present invention.
Claims
1. A method for loading large-scale oblique photography data, characterized in that: include: An unlock button is provided in the interactive interface. When the interactive interface is initially opened, the unlock button is in a locked state and prohibits the user from rotating and zooming the viewing angle. All areas within a first preset range from the current camera position are used as preload areas, and each tile data set within the preload area is used as a preload tile set; The preloaded area is divided into multiple sub-areas. In each sub-area, the sub-area is used as the field of view, the corresponding sub-area camera position is determined, and multiple sub-area tile sets corresponding to the sub-area are found from the preloaded tile set. Generate a first view cone using the sub-region camera position, the preset field of view height, and the preset viewing angle, use the first view cone to analyze the occlusion relationship between the sub-region tile sets in the corresponding sub-region, integrate the occlusion relationship of the sub-region tile sets corresponding to each sub-region, and obtain the occlusion relationship between the preloaded tile sets; Loading the unobstructed preloaded tile set as a first tile set into the interactive interface, and storing the obstructed preloaded tile set as a second tile set into the first cache; wherein the interactive interface is presented with a current camera position, a preset field of view height, and a preset viewing angle; When the user clicks the unlock button, a second tile set within a second preset range from the current camera position is retrieved from the first cache, the retrieved second tile set is loaded into the interactive interface, and the user is allowed to rotate and zoom the perspective, so that when the user rotates to the perspective, the image after the perspective rotation is displayed in real time; The method further comprises: If the user drags the field of view after clicking the unlock button, it is determined whether the camera position after dragging is within a second preset range of the current camera position; If the camera position after dragging is within the second preset range of the current camera position, the interactive interface is directly presented at the current field of view height and current viewing angle; If the camera position after dragging is outside the second preset range of the current camera position but is within the preloaded area, the interactive interface will be restored to be presented at the preset field of view height and preset viewing angle, and then the second tile set within the second preset range of the camera position after dragging will be loaded into the interactive interface.
2. The method for loading large-scale oblique photography data according to claim 1, characterized in that: The using the first view frustum to analyze the occlusion relationship between the tile sets of each sub-region in the corresponding sub-region specifically includes: Calculate the distance from the center position of the bounding box of each sub-region tile set in the sub-region to the sub-region camera position, and the inclination angle of the center position of the bounding box of the sub-region tile set relative to the camera position; Among multiple sub-region tile sets whose inclination angle differences are less than a preset difference, the sub-region tile set with the shortest distance is used as the unobstructed tile data set, and the other sub-region tile sets are used as the obstructed tile data sets, so as to obtain the occlusion relationship between the sub-region tile sets in the sub-region.
3. The method for loading large-scale oblique photography data according to claim 1, characterized in that: The method further comprises: If the camera position after dragging is outside the preloading area, a new preloading area is generated. In the new preloading area, tiles are loaded and the interactive interface is presented based on the camera position after dragging, the preset field of view height and the preset viewing angle.
4. The method for loading large-scale oblique photography data according to claim 1, characterized in that: The step of finding multiple sub-region tile sets corresponding to the sub-regions from the preloaded tile sets specifically includes: According to the longitude range of the sub-region and the latitude range of the sub-region, determining whether the longitude range of each preloaded tile set overlaps with the longitude range of the sub-region, and determining whether the latitude range of each preloaded tile set overlaps with the latitude range of the sub-region; If the longitude range of the first preloaded tile set overlaps with the longitude range of the sub-region, and the latitude range of the first preloaded tile set overlaps with the latitude range of the sub-region, then the first preloaded tile set is the sub-region tile set of the sub-region.
5. The method for loading large-scale oblique photography data according to claim 1, characterized in that: The method of loading the unobstructed preloaded tile set as the first tile set into the interactive interface is actually loading multiple first tile sets that are visible at the current camera position, the preset field of view height, and the preset viewing angle into the interactive interface, which specifically includes: Generate a second view cone using the current camera position, a preset view height, and a preset view angle, and filter each first tile set according to the view range of the second view cone to obtain each related tile set; Starting from the root node of the relevant tile set, traversing nodes in turn in the direction of child nodes, and each time a node is visited, determining the inclusion relationship between the bounding box corresponding to the node and the second viewing cone; When it is determined that the bounding box corresponding to the first node is completely outside the second viewing cone, the first node and all child nodes under the first node are clipped; When it is determined that the bounding box corresponding to the first node is completely located inside the second viewing cone, the first node and all child nodes below the first node are retained; When it is determined that the bounding box portion corresponding to the first node is located inside the second viewing cone, the first node is retained, and the child nodes in the lower layer of the first node are traversed continuously until all the child nodes of the first node are clipped or retained; The retained nodes are visible tiles; the visible tiles are loaded into the interactive interface, and the other tiles in each first tile set are loaded into the second cache, so that when the user drags the camera position, other tiles are taken out from the second cache and loaded into the interactive interface.
6. The method for loading large-scale oblique photography data according to claim 5, characterized in that: The step of loading the visible tiles into the interactive interface specifically includes: Take each visible tile as the first tile, and calculate the screen space error SSE of each first tile in sequence from the parent node to the child node; If the screen space error SSE of the corresponding first tile is greater than the preset error, the first tile is not loaded, and the first tile is continuously accessed to the lower level of the first tile until the screen space error SSE of the corresponding first tile is less than or equal to the preset error or the first tile at the bottom layer is accessed, and the first tile with the screen space error SSE less than or equal to the preset error or the first tile at the bottom layer is loaded into the interactive interface; Among them, the screen space error SSE of the first tile = (geometricError×height) / (distance×sseDenominator); geometricError is the geometric error of the first tile, height is the pixel height of the interactive interface, distance is the distance between the current camera position and the center point of the minimum bounding box of the first tile, and sseDenominator is twice the tangent value of the current viewing angle.
7. The method for loading large-scale oblique photography data according to claim 1, characterized in that: The preset visual field height and the preset viewing angle are preset by those skilled in the art or preset by a user.
8. The method for loading large-scale oblique photography data according to claim 1, characterized in that: The method further comprises: When it is determined based on the user's historical operating habits that the number of times the user has browsed the corresponding area exceeds the preset number, and the difference between the various field of view heights used when historically browsing the area is less than the first preset difference, and the difference between the various viewing angles used when historically browsing the area is less than the second preset difference, then after calculating the average field of view height and the average viewing angle used for historical browsing of the area, the image of the area in the interactive interface at the average field of view height and the average viewing angle is pre-stored, so that when the user subsequently browses the area, and the difference between the actual field of view height and the average field of view height is less than the first preset difference, and the difference between the actual browsing viewing angle and the average viewing angle is less than the second preset difference, the image can be directly loaded onto the interactive interface.
9. A device for loading large-scale oblique photography data, characterized in that: include: at least one processor; And, a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the processor to execute the method for loading large-scale oblique photography data as described in any one of claims 1-8.
