GPU-Accelerated Geospatial Query Rendering via Vertex Buffers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Spatial queries involving large geospatial data sets on map applications are computationally expensive, leading to slow processing and unsatisfactory user experiences due to the limitations of CPU-based solutions in parallelization, trigonometric calculations, conditional checks, and intersection computations.
Innovation Solution
The method leverages the GPU for spatial queries by projecting feature data and query boundaries into a shared coordinate system, using vertex and fragment shaders for rendering, and retrieving pixel values for processing, thereby eliminating costly CPU-based operations and utilizing parallel processing for faster results.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If spatial queries are processed using CPU-based solutions, then the processing can be completed with existing computational resources, but the processing time becomes excessively long and computational resources are overutilized
Solution Approach 1:
The patent replaces the traditional CPU-based mechanical computation system with a GPU-based parallel processing system. The CPU prepares vertex buffers and projection parameters, then delegates the computationally intensive spatial query processing to the GPU, which performs parallel trigonometric calculations and geometric operations much faster than sequential CPU processing.
Solution Approach 2:
The patent segments the spatial processing task into distinct components: the CPU handles data preparation and buffer management, while the GPU handles parallel vertex processing and geometric computations. This segmentation allows each processor to optimize for its specific strength, reducing overall processing time.
2Reliability
If spatial queries involve large geospatial data sets, then comprehensive query results can be obtained, but the computational cost increases significantly
Solution Approach 1:
The patent substitutes the energy-intensive CPU computation system with a more efficient GPU parallel processing system for handling large geospatial datasets. The GPU's architecture is better suited for the parallel operations required by spatial queries, reducing overall computational resource consumption while maintaining result accuracy.
Solution Approach 2:
The patent performs preliminary actions by pre-projecting geospatial features into vertex buffers on the CPU before transferring them to the GPU. This preparation work reduces the computational burden during actual query execution, as the GPU receives pre-processed data ready for parallel operations.
3Ease of operation
If traditional CPU-based spatial query methods are used, then implementation is straightforward with existing APIs, but processing speed is insufficient for responsive user experience
Solution Approach 1:
The patent replaces the slow but simple CPU-based processing system with a faster GPU-based system. While this requires additional setup for vertex buffers and shader programs, the patent provides a structured approach that balances the increased implementation complexity with the substantial gains in query execution speed.
Solution Approach 2:
The patent introduces vertex buffers as an intermediary data structure that bridges the CPU and GPU systems. These buffers serve as a communication interface, allowing the CPU to prepare spatial data in a format that the GPU can efficiently process, thus facilitating the transition between the two processing systems.
Data Source
AI summary
A method including receiving a spatial query on spatial data. The spatial query has a spatial query extent including a sub-portion of the spatial data. A projection type is selected for the spatial query. A framebuffer is created for the selected projection type. Vertex buffers are established to hold a geometry of the selected projection type. The vertex buffers are passed from a CPU to a GPU. A spatial geometry of the spatial query extent is rendered into the framebuffer by projecting feature vertex data for features that fall at least partly within the spatial query extent into the vertex buffers. Rendering generates rendered framebuffer pixel values. Pixel values of the rendered framebuffer are retrieved as bytes on the CPU. A spatial query result is processed that includes or uses the pixel values.


