CUGIS is a desktop Geographic Information System (GIS) application developed based on the Qt framework, specifically designed for geospatial data processing and analysis. This project was developed by students from China University of Geosciences and integrates various GIS functionalities including vector data management, raster data analysis, and spatial analysis.
- Vector Data Support: Reading, displaying, and editing vector features such as points, lines, and polygons
- Raster Data Support: Reading and displaying raster formats like TIFF
- Layer Management: Multi-layer overlay display with layer order adjustment and visibility control
- Project Files: Support for saving and loading project files
- Convex Hull Calculation: Automatic calculation of convex hull for point sets
- Buffer Analysis: Creating buffers of specified distance for features
- Overlay Analysis: Spatial overlay operations between layers
- Delaunay Triangulation: Building Delaunay triangulation networks
- Voronoi Diagram: Generating Voronoi polygons
- Feature Creation: Interactive creation of points, lines, and polygons
- Feature Editing: Support for vertex addition, deletion, and movement operations
- Attribute Editing: Editing of feature attribute data
- Undo/Redo: Complete edit history functionality
- Feature Statistics: Counting features in layers
- Geometric Calculations: Calculating geometric properties like area, perimeter, and length
- Raster Statistics: Statistical analysis of raster data
- Grayscale Histogram: Displaying grayscale distribution of raster data
- Color Composition: Support for true color and false color image generation
- Neighborhood Analysis: Neighborhood statistics like mean, maximum, and minimum
- Terrain Analysis: Calculating terrain factors like slope and aspect
- Flow Direction Analysis: D8+ raster flow direction analysis
- Coordinate System: Support for WGS84 (EPSG:4326) and Web Mercator (EPSG:3857) coordinate display
- Symbol System: Customizable display styles for points, lines, and polygons
- Theme Switching: Support for light and dark theme switching
- Zoom Navigation: Map zooming, panning, and other navigation operations
- Programming Language: C++
- GUI Framework: Qt 6.6.1
- Development Tool: Visual Studio 2022
- Build System: MSBuild
- GEOS Library: Geometry engine for spatial analysis operations
- GDAL/OGR: Geographic data abstraction library supporting multiple data formats
- Exiv2: Image metadata processing library
- RapidJSON: JSON parsing library
CUGISv1.5/
├── gistest/ # Main project directory
│ ├── *.cpp # Source files
│ ├── *.h # Header files
│ ├── gistest.vcxproj # Visual Studio project file
│ ├── gistest.ui # Qt Designer interface file
│ ├── icon/ # Icon resources
│ └── thirdlib/ # Third-party libraries
├── gistest.sln # Visual Studio solution file
└── README.md # Project documentation
- Windows 10/11 64-bit
- Visual Studio 2022
- Qt 6.6.1 (MSVC 2019 64-bit)
- Clone the project locally
- Open
gistest.slnwith Visual Studio 2022 - Configure Qt environment variables, ensuring correct Qt installation path
- Select x64 platform and Release configuration
- Compile the project
After successful compilation, find the executable file in the x64/Release/ directory.
- Open Data: Open vector or raster data through the menu bar
- Layer Management: Manage layer display and order in the layer tree
- Map Navigation: Use mouse wheel for zooming, drag for panning
- Coordinate Viewing: Status bar displays current mouse position geographic coordinates
- Select the layer to analyze
- Choose the corresponding analysis function from the analysis menu
- Set analysis parameters
- View analysis results
- Enter edit mode
- Select features to edit or create new features
- Perform editing operations
- Save editing results
- Zeng Yifan - Main Developer
- Xie Yuhan - Main Developer
This project is for learning and research purposes only.
- Added raster terrain analysis functionality
- Optimized coordinate display system
- Improved user interface experience
- Fixed known issues
- Refactored project architecture
- Added multiple spatial analysis functions
- Improved data management mechanisms
Welcome to submit Issues and Pull Requests to improve the project.
If you have questions or suggestions, please contact us through GitHub Issues.