Table of Contents for
QGIS: Becoming a GIS Power User
Close
Version ebook
/
Retour
QGIS: Becoming a GIS Power User
by Alexander Bruy
Published by Packt Publishing, 2017
Cover
Table of Contents
QGIS: Becoming a GIS Power User
QGIS: Becoming a GIS Power User
QGIS: Becoming a GIS Power User
Credits
Preface
What you need for this learning path
Who this learning path is for
Reader feedback
Customer support
1. Module 1
1. Getting Started with QGIS
Running QGIS for the first time
Introducing the QGIS user interface
Finding help and reporting issues
Summary
2. Viewing Spatial Data
Dealing with coordinate reference systems
Loading raster files
Loading data from databases
Loading data from OGC web services
Styling raster layers
Styling vector layers
Loading background maps
Dealing with project files
Summary
3. Data Creation and Editing
Working with feature selection tools
Editing vector geometries
Using measuring tools
Editing attributes
Reprojecting and converting vector and raster data
Joining tabular data
Using temporary scratch layers
Checking for topological errors and fixing them
Adding data to spatial databases
Summary
4. Spatial Analysis
Combining raster and vector data
Vector and raster analysis with Processing
Leveraging the power of spatial databases
Summary
5. Creating Great Maps
Labeling
Designing print maps
Presenting your maps online
Summary
6. Extending QGIS with Python
Getting to know the Python Console
Creating custom geoprocessing scripts using Python
Developing your first plugin
Summary
2. Module 2
1. Exploring Places – from Concept to Interface
Acquiring data for geospatial applications
Visualizing GIS data
The basemap
Summary
2. Identifying the Best Places
Raster analysis
Publishing the results as a web application
Summary
3. Discovering Physical Relationships
Spatial join for a performant operational layer interaction
The CartoDB platform
Leaflet and an external API: CartoDB SQL
Summary
4. Finding the Best Way to Get There
OpenStreetMap data for topology
Database importing and topological relationships
Creating the travel time isochron polygons
Generating the shortest paths for all students
Web applications – creating safe corridors
Summary
5. Demonstrating Change
TopoJSON
The D3 data visualization library
Summary
6. Estimating Unknown Values
Interpolated model values
A dynamic web application – OpenLayers AJAX with Python and SpatiaLite
Summary
7. Mapping for Enterprises and Communities
The cartographic rendering of geospatial data – MBTiles and UTFGrid
Interacting with Mapbox services
Putting it all together
Going further – local MBTiles hosting with TileStream
Summary
3. Module 3
1. Data Input and Output
Finding geospatial data on your computer
Describing data sources
Importing data from text files
Importing KML/KMZ files
Importing DXF/DWG files
Opening a NetCDF file
Saving a vector layer
Saving a raster layer
Reprojecting a layer
Batch format conversion
Batch reprojection
Loading vector layers into SpatiaLite
Loading vector layers into PostGIS
2. Data Management
Joining layer data
Cleaning up the attribute table
Configuring relations
Joining tables in databases
Creating views in SpatiaLite
Creating views in PostGIS
Creating spatial indexes
Georeferencing rasters
Georeferencing vector layers
Creating raster overviews (pyramids)
Building virtual rasters (catalogs)
3. Common Data Preprocessing Steps
Converting points to lines to polygons and back – QGIS
Converting points to lines to polygons and back – SpatiaLite
Converting points to lines to polygons and back – PostGIS
Cropping rasters
Clipping vectors
Extracting vectors
Converting rasters to vectors
Converting vectors to rasters
Building DateTime strings
Geotagging photos
4. Data Exploration
Listing unique values in a column
Exploring numeric value distribution in a column
Exploring spatiotemporal vector data using Time Manager
Creating animations using Time Manager
Designing time-dependent styles
Loading BaseMaps with the QuickMapServices plugin
Loading BaseMaps with the OpenLayers plugin
Viewing geotagged photos
5. Classic Vector Analysis
Selecting optimum sites
Dasymetric mapping
Calculating regional statistics
Estimating density heatmaps
Estimating values based on samples
6. Network Analysis
Creating a simple routing network
Calculating the shortest paths using the Road graph plugin
Routing with one-way streets in the Road graph plugin
Calculating the shortest paths with the QGIS network analysis library
Routing point sequences
Automating multiple route computation using batch processing
Matching points to the nearest line
Creating a routing network for pgRouting
Visualizing the pgRouting results in QGIS
Using the pgRoutingLayer plugin for convenience
Getting network data from the OSM
7. Raster Analysis I
Using the raster calculator
Preparing elevation data
Calculating a slope
Calculating a hillshade layer
Analyzing hydrology
Calculating a topographic index
Automating analysis tasks using the graphical modeler
8. Raster Analysis II
Calculating NDVI
Handling null values
Setting extents with masks
Sampling a raster layer
Visualizing multispectral layers
Modifying and reclassifying values in raster layers
Performing supervised classification of raster layers
9. QGIS and the Web
Using web services
Using WFS and WFS-T
Searching CSW
Using WMS and WMS Tiles
Using WCS
Using GDAL
Serving web maps with the QGIS server
Scale-dependent rendering
Hooking up web clients
Managing GeoServer from QGIS
10. Cartography Tips
Using Rule Based Rendering
Handling transparencies
Understanding the feature and layer blending modes
Saving and loading styles
Configuring data-defined labels
Creating custom SVG graphics
Making pretty graticules in any projection
Making useful graticules in printed maps
Creating a map series using Atlas
11. Extending QGIS
Defining custom projections
Working near the dateline
Working offline
Using the QspatiaLite plugin
Adding plugins with Python dependencies
Using the Python console
Writing Processing algorithms
Writing QGIS plugins
Using external tools
12. Up and Coming
Preparing LiDAR data
Opening File Geodatabases with the OpenFileGDB driver
Using Geopackages
The PostGIS Topology Editor plugin
The Topology Checker plugin
GRASS Topology tools
Hunting for bugs
Reporting bugs
Bibliography
Index
Prev
Previous Chapter
Cover
Next
Next Chapter
QGIS: Becoming a GIS Power User
Table of Contents
QGIS: Becoming a GIS Power User
QGIS: Becoming a GIS Power User
Credits
Preface
What this learning path covers
What you need for this learning path
Who this learning path is for
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Module 1
1. Getting Started with QGIS
Installing QGIS
Installing QGIS on Windows
Installing on Ubuntu
Running QGIS for the first time
Introducing the QGIS user interface
Finding help and reporting issues
Summary
2. Viewing Spatial Data
Loading vector data from files
Dealing with coordinate reference systems
Loading raster files
Georeferencing raster maps
Loading data from databases
Loading data from OGC web services
Styling raster layers
Styling vector layers
Creating point styles – an example of an airport style
Creating line styles – an example of river or road styles
Creating polygon styles – an example of a landmass style
Loading background maps
Dealing with project files
Summary
3. Data Creation and Editing
Creating new vector layers
Working with feature selection tools
Selecting features with the mouse
Selecting features with expressions
Selecting features using spatial queries
Editing vector geometries
Using basic digitizing tools
Using advanced digitizing tools
Using snapping to enable topologically correct editing
Using measuring tools
Editing attributes
Editing attributes in the attribute table
Editing attributes in the feature form
Creating a feature form using autogenerate
Designing a feature form using drag and drop designer
Designing a feature form using a .ui file
Calculating new attribute values
Reprojecting and converting vector and raster data
Joining tabular data
Setting up a join in Layer Properties
Checking join results in the attribute table
Using temporary scratch layers
Checking for topological errors and fixing them
Finding errors with the Topology Checker
Fixing invalid geometry errors
Adding data to spatial databases
Summary
4. Spatial Analysis
Analyzing raster data
Clipping rasters
Analyzing elevation/terrain data
Using the raster calculator
Combining raster and vector data
Converting between rasters and vectors
Accessing raster and vector layer statistics
Computing zonal statistics
Creating a heatmap from points
Vector and raster analysis with Processing
Finding nearest neighbors
Converting between points, lines, and polygons
Identifying features in the proximity of other features
Sampling a raster at point locations
Mapping density with hexagonal grids
Calculating area shares within a region
Batch-processing multiple datasets
Automated geoprocessing with the graphical modeler
Documenting and sharing models
Leveraging the power of spatial databases
Selecting by location in SpatiaLite
Aggregating data in SpatiaLite
Summary
5. Creating Great Maps
Advanced vector styling
Creating a graduated style
Creating and using color ramps
Using categorized styles for nominal data
Creating a rule-based style for road layers
Creating data-defined symbology
Creating a dynamic heatmap style
Creating a 2.5D style
Adding live layer effects
Working with different styles
Labeling
Customizing label text styles
Controlling label formatting
Configuring label buffers, background, and shadows
Controlling label placement
Configuring point labels
Configuring line labels
Configuring polygon labels
Placing labels manually
Controlling label rendering
Designing print maps
Creating a basic map
Adding a scalebar
Adding a North arrow image
Adding a legend
Adding explanatory text to the map
Adding map grids and frames
Creating overview maps
Adding more details with attribute tables and HTML frames
Creating a map series using the Atlas feature
Presenting your maps online
Exporting a web map
Creating map tiles
Exporting a 3D web map
Summary
6. Extending QGIS with Python
Adding functionality using actions
Configuring your first Python action
Opening files using actions
Opening a web browser using actions
Getting to know the Python Console
Loading and exploring datasets
Styling layers
Filtering data
Creating a memory layer
Exporting map images
Creating custom geoprocessing scripts using Python
Writing your first Processing script
Writing a script with vector layer output
Visualizing the script progress
Developing your first plugin
Creating the plugin template with Plugin Builder
Customizing the plugin GUI
Implementing plugin functionality
Creating a custom map tool
Summary
2. Module 2
1. Exploring Places – from Concept to Interface
The development community and dependencies
Data format read/write
Geospatial coordinate transformation
Analysis
Web publishing
Installation
Linux
Mac
Windows
OSGeo-Live
Acquiring data for geospatial applications
Producing geospatial data with georeferencing
Table join
Geocode
Orthorectify
The spatial reference manipulation – making the coordinates line up
Setting CRS
Transformation and projection
Visualizing GIS data
The layer style
Labels
The basemap
Using OpenStreetMap for the basemap data
Avoiding obscurity and confusion
The layer scale dependency
The label conflict
The polygon label conflict resolution
Tile caches
Generating and testing a simple directory-based tile cache structure
Create a layer description file for the TileLayer plugin
Summary
2. Identifying the Best Places
Vector data – Extract, Transform, and Load
Loading data and establishing the CRS conformity
The extracting (filtering) features
Converting to raster
Doing more at once—working in batch
Raster analysis
Map algebra
Additive modeling
Proximity
Creating a proximity to the easements grid
Slope
Combining the criteria with Map Calculator
Zonal statistics
Publishing the results as a web application
qgis2leaf
Summary
3. Discovering Physical Relationships
Hydrological modeling
Preparing the data
Filling the grid sinks
Clipping the grid to study the area by mask layer
Modeling the hydrological network based on elevation
Workflow automation with the graphical models
Creating a graphical model
Adding the input parameters
Adding the raster parameter – elevation
Adding the vector parameter – extent
Adding the algorithms
Fill Sinks
Clip raster
Channel network and drainage basins
Running the model
Spatial join for a performant operational layer interaction
The NNJoin plugin
The CartoDB platform
Publishing the data to CartoDB
Preparing a CartoDB SQL Query
Generating the test data
The CartoDB SQL view tab
The QGIS CartoDB plugin
The CartoDB SQL API
Leaflet and an external API: CartoDB SQL
Summary
4. Finding the Best Way to Get There
Postgres with PostGIS and pgRouting
Installing Postgres/PostGIS/pgRouting
Creating a new Postgres database
Registering the PostGIS and pgRouting extensions
OpenStreetMap data for topology
Downloading the OSM data
Adding the data to the map
Projecting the OSM data
Splitting all the lines at intersections
Database importing and topological relationships
Connecting to the database
Importing into PostGIS with DB Manager
Creating the topological network data
An alternate workflow: topology with osm2po
Using the pgRouting Layer plugin to test
Creating the travel time isochron polygons
Generating the travel time for each road segment
Creating isochron polygons
Converting the travel time lines to points
Selecting the travel time ranges in points and creating convex hulls
Generating the shortest paths for all students
Finding the associated segment for a student location
Calculating the accumulated shortest paths by segment
Flow symbology
Web applications – creating safe corridors
Registering a Twitter account and API access
Setting up the Twitter Tools API
Summary
5. Demonstrating Change
Leveraging spatial relationships
Gathering the data
Boundaries
Tabular data from American FactFinder
Preparing and exporting the data
The tabular data
Combining it yearly
Updating and removing fields
The boundary data
Calculating the average white population change in each census tract
The spatial join in SpatiaLite
Creating a SpatiaLite database
Importing layers to SpatiaLite
Querying and loading the SpatiaLite layer from the DB Manager
TopoJSON
An example of GeoJSON
An example of TopoJSON
Vector simplification
Simplification methods
Other options
Simplifying for TopoJSON
Simplifying for other outputs
Converting to TopoJSON
Web mapshaper
The command-line tool
The D3 data visualization library
What is D3?
Some fundamentals
Parsing
Graphic elements, SVG, path, and Canvas
Projection
Shape generator
Scales
Binding
Select, Select All, Enter, Return, Exit, Insert, and Append
Animated time series map
The development environment
Code
main.js
Output
Summary
6. Estimating Unknown Values
Importing the data
Connecting and importing from MySQL in QGIS
Converting to spatial format
The layer/table relations
NetCDF
Viewing NetCDF in QGIS
Interpolated model values
Python for workflow automation
Knowing your environment
Generating the parameter grids for each time period
What this code does
Running a code in Python
Running the printed commands in the Windows command console
The subprocess module
Calculating the vulnerability index
Creating regular points
Sampling the index grid by points
Create SQLite database and import
A dynamic web application – OpenLayers AJAX with Python and SpatiaLite
Server side – CGI in Python
Python CGI development
Starting a CGI hosting
Testing the CGI hosting
Debugging server-side code
Our Python server-side, database-driven code
PySpatiaLite
The Python code for web access to SQLite through JSON
The OpenLayers/jQuery client-side code
Exporting the OpenLayers 3 map using QGIS
Modifying the exported OpenLayers 3 map application
Adding an interactive HTML element
AJAX – the glue between frontend and backend
Adding an AJAX call to the singleclick event handler
Populating and triggering the popup from the callback function
Testing the application
Summary
7. Mapping for Enterprises and Communities
Google Sheets for data management
Creating a new Google document
Publishing Google Sheets on the Web
Previewing JSON
Parsing the JSON data
Starting up the server
Test parsing with jQuery
Rollout
Assigning permissions to additional users
The editing workflow
The publishing workflow
Viewing the changes in your JSON feed
The cartographic rendering of geospatial data – MBTiles and UTFGrid
OpenStreetMap to SpatiaLite
To tile and use UTFGrid with TileMill
Preparing a basemap from OSM
Preparing the operational layer in TileMill
Exporting MBTiles
Uploading to Mapbox
The MBTiles file
Interacting with Mapbox services
Connecting your local app with a hosted service
The API token
Mapbox.js
Simple UTFGrid modification
Previewing a simple UTFGrid modification
OpenLayers
Code modification
Putting it all together
Parsing the sheets JSON feed
Completing the application
Going further – local MBTiles hosting with TileStream
Setting up a Vagrant virtual Linux instance
Installing Node.js and TileStream
Setting up and starting TileStream
Summary
3. Module 3
1. Data Input and Output
Introduction
Finding geospatial data on your computer
Getting ready
How to do it…
How it works…
There's more…
Adding layers with the Layer menu
Adding a folder to Favorites
Nonfile data sources
Describing data sources
Getting ready
How to do it…
How it works…
There's more…
See also
Importing data from text files
How to do it…
How it works…
There's more…
See also
Importing KML/KMZ files
How to do it…
How it works…
There's more…
Importing DXF/DWG files
How to do it…
How it works…
There's more…
Opening DWG files
Opening a NetCDF file
How to do it…
How it works…
There's more…
The NetCDF Browser plugin
Saving a vector layer
Getting ready
How to do it…
How it works…
There's more…
Fine-tuning the export operation
Opening the layer after creating it
Saving a raster layer
Getting ready
How to do it…
How it works…
There's more…
Reprojecting a layer
Getting ready
How to do it…
How it works…
There's more…
Batch format conversion
Getting ready
How to do it…
How it works…
There's more…
Batch reprojection
How to do it…
How it works…
There's more…
Loading vector layers into SpatiaLite
Getting ready
How to do it…
How it works…
There's more…
See also
Loading vector layers into PostGIS
Getting ready
How to do it…
How it works…
There's more…
See also
2. Data Management
Introduction
Joining layer data
Getting ready
How to do it…
How it works…
There's more…
Cleaning up the attribute table
Getting ready
How to do it…
How it works…
There's more…
See also
Configuring relations
Getting ready
How to do it…
How it works…
Joining tables in databases
Getting ready
How to do it…
How it works…
There's more…
See also
Creating views in SpatiaLite
Getting ready
How to do it…
How it works…
There's more…
See also
Creating views in PostGIS
Getting ready
How to do it…
How it works…
There's more…
See also
Creating spatial indexes
Getting ready
How to do it…
How it works…
There's more…
See also
Georeferencing rasters
Getting ready
How to do it…
How it works…
There's more…
See also
Georeferencing vector layers
Getting ready
How to do it…
How it works…
There's more…
See also
Creating raster overviews (pyramids)
Getting ready
How to do it…
How it works…
There's more…
See also
Building virtual rasters (catalogs)
Getting ready
How to do it…
How it works…
There's more…
See also
3. Common Data Preprocessing Steps
Introduction
Converting points to lines to polygons and back – QGIS
Getting ready
How to do it…
Converting points to lines (or polygons)
Converting lines to polygons
Converting polygons to lines
Converting polygons or lines to points
How it works…
There's more…
Converting points to lines to polygons and back – SpatiaLite
Getting ready
How to do it…
Points to lines
Lines to polygons
How it works…
There's more…
See also
Converting points to lines to polygons and back – PostGIS
Getting ready
How to do it…
Converting points to lines
Converting lines to polygons
Converting lines or polygons to points
How it works…
There's more…
See also
Cropping rasters
Getting ready
How to do it…
How it works…
There's more…
See also
Clipping vectors
Getting ready
How to do it…
How it works…
There's more…
See also
Extracting vectors
Getting ready
How to do it…
How it works…
There's more…
See also
Converting rasters to vectors
Getting ready
How to do it…
How it works…
There's more…
See also
Converting vectors to rasters
Getting ready
How to do it…
How it works…
There's more…
See also
Building DateTime strings
Getting ready
How to do it…
How it works…
There's more…
See also
Geotagging photos
Getting ready
How to do it…
How it works…
There's more…
See also
4. Data Exploration
Introduction
Listing unique values in a column
Getting ready
How to do it…
How it works…
There's more…
Exploring numeric value distribution in a column
Getting ready
How to do it…
How it works...
See also
Exploring spatiotemporal vector data using Time Manager
Getting ready
How to do it…
How it works…
See also
Creating animations using Time Manager
Getting ready
How to do it…
How it works…
Designing time-dependent styles
Getting ready
How to do it…
How it works…
See also
Loading BaseMaps with the QuickMapServices plugin
Getting ready
How to do it…
How it works…
There's more…
See also
Loading BaseMaps with the OpenLayers plugin
Getting ready
How to do it…
How it works…
There's more…
See also
Viewing geotagged photos
Getting ready
How to do it…
Going a little further
How it works…
There's more…
See also
5. Classic Vector Analysis
Introduction
Selecting optimum sites
Getting ready
How to do it…
How it works…
There's more…
Dasymetric mapping
Getting ready
How to do it…
How it works…
Calculating regional statistics
Getting ready
How to do it…
How it works…
Estimating density heatmaps
Getting ready
How to do it…
How it works…
Estimating values based on samples
Getting ready
How to do it…
How it works…
There's more…
See also
6. Network Analysis
Introduction
Creating a simple routing network
Getting ready
How to do it…
How it works…
There's more…
Calculating the shortest paths using the Road graph plugin
Getting ready
How to do it…
How it works…
See also
Routing with one-way streets in the Road graph plugin
Getting ready
How to do it…
How it works…
Calculating the shortest paths with the QGIS network analysis library
Getting ready
How to do it…
How it works…
See also
Routing point sequences
Getting ready
How to do it…
How it works…
There's more…
See also
Automating multiple route computation using batch processing
Getting ready
How to do it…
Matching points to the nearest line
Getting ready
How to do it…
How it works…
Creating a routing network for pgRouting
Getting ready
How to do it…
How it works…
See also
Visualizing the pgRouting results in QGIS
Getting ready
How to do it…
How it works…
See also
Using the pgRoutingLayer plugin for convenience
Getting ready
How to do it…
How it works…
See also
Getting network data from the OSM
Getting ready
How to do it…
How it works…
7. Raster Analysis I
Introduction
Using the raster calculator
Getting ready
How to do it…
How it works…
There's more…
See also
Preparing elevation data
Getting ready
How to do it…
How it works…
There's more…
Calculating a slope
Getting ready
How to do it…
How it works…
There's more…
Using a ratio for elevation values
Other slope algorithms
Calculating the slope
See also
Calculating a hillshade layer
Getting ready
How to do it…
How it works…
There's more…
Enhancing your map view with a hillshade layer
Analyzing hydrology
Getting ready
How to do it…
How it works…
There's more…
Calculating a topographic index
Getting ready
How to do it…
How it works…
There's more…
Automating analysis tasks using the graphical modeler
Getting ready
How to do it…
How it works…
See also
8. Raster Analysis II
Introduction
Calculating NDVI
Getting ready
How to do it…
How it works…
There's more…
Extracting bands
Handling null values
How to do it…
How it works…
There's more…
Controlling the rendering of null values
Setting extents with masks
How to do it…
How it works…
There's more…
Restricting analysis to a given area
Removing superfluous no-data values
Masking using a vector mask
Sampling a raster layer
Getting ready
How to do it…
How it works…
There's more…
Other raster-vector data transfer operations
Visualizing multispectral layers
Getting ready
How to do it…
How it works…
There's more…
See also
Modifying and reclassifying values in raster layers
Getting ready
How to do it…
How it works…
There's more…
Reclassifying into classes of equal amplitude
Reclassifying into classes of equal area
See also
Performing supervised classification of raster layers
Getting ready
How to do it…
How it works…
There's more…
See also
9. QGIS and the Web
Introduction
Using web services
Getting ready
How to do it…
How it works…
There's more…
See also
Using WFS and WFS-T
Getting ready
How to do it…
How it works…
There's more…
Searching CSW
Getting ready
How to do it…
How it works…
There's more…
See also
Using WMS and WMS Tiles
Getting ready
How to do it…
How it works…
There's more…
See also
Using WCS
Getting ready
How to do it…
How it works…
There's more…
Using GDAL
Getting ready
How to do it…
How it works…
There's more…
See also
Serving web maps with the QGIS server
Getting ready
How to do it…
How it works…
There's more…
See also
Scale-dependent rendering
Getting ready
How to do it…
How it works…
There's more…
See also
Hooking up web clients
Getting ready
How to do it…
How it works…
There's more…
See also
Managing GeoServer from QGIS
Getting ready
How to do it…
How it works…
There's more…
Editing a remote style
Support for multiple formats
See also
10. Cartography Tips
Introduction
Using Rule Based Rendering
Getting ready
How to do it…
How it works…
There's more…
Handling transparencies
Getting ready
How to do it…
How it works…
There's more…
Understanding the feature and layer blending modes
Getting ready
How to do it…
How it works…
Saving and loading styles
Getting ready
How to do it…
How it works…
There's more…
Configuring data-defined labels
Getting ready
How to do it…
Example: moving and rotating a label
How it works…
There's more…
Creating custom SVG graphics
Getting ready
How to do it…
How it works…
There's more…
See also
Making pretty graticules in any projection
Getting ready
How to do it…
How it works…
There's more…
See also
Making useful graticules in printed maps
Getting ready
How to do it…
How it works…
There's more…
Creating a map series using Atlas
Getting ready
How to do it…
How it works…
There's more…
11. Extending QGIS
Introduction
Defining custom projections
Getting ready
How to do it…
How it works…
There's more…
See also
Working near the dateline
Getting ready
How to do it…
How it works…
See also
Working offline
Getting ready
How to do it…
How it works…
There's more…
See also
Using the QspatiaLite plugin
Getting ready
How to do it…
How it works…
There's more…
See also
Adding plugins with Python dependencies
Getting ready
How to do it…
How it works…
There's more…
Using the Python console
Getting ready
How to do it…
How it works…
There's more…
See also
Writing Processing algorithms
Getting ready
How to do it…
How it works…
There's more…
See also
Writing QGIS plugins
Getting ready
How to do it…
How it works…
There's more…
Creating plugins with more complex UI elements
Documenting you plugin
Releasing your plugin
Using external tools
Getting ready
How to do it…
GPSBabel
spatialite-gui
pgAdmin
How it works…
There's more…
12. Up and Coming
Introduction
Preparing LiDAR data
Getting ready
How to do it…
How it works…
There's more…
Opening File Geodatabases with the OpenFileGDB driver
Getting ready
How to do it…
How it works…
There's more…
See also
Using Geopackages
Getting ready
How to do it…
How it works…
There's more…
See also
The PostGIS Topology Editor plugin
Getting ready
How to do it…
How it works…
See also
The Topology Checker plugin
Getting ready
How to do it…
How it works…
See also
GRASS Topology tools
Getting ready
How to do it…
How it works…
There's more…
See also
Hunting for bugs
Getting ready
How to do it…
Creating a backtrace under Linux
Capturing debug output with DebugView under Windows
How it works…
There's more…
See also
Reporting bugs
Getting ready
How to do it…
How it works…
There's more…
See also
Bibliography
Index
Prev
Previous Chapter
Cover
Next
Next Chapter
QGIS: Becoming a GIS Power User