QGeoView - Qt/C ++ widget for visualizing geographic data
Qt is a great framework for desktop, mobile and embedded platforms!
However, in QtWidgets, I personally always lacked the solution for displaying geo-referenced data, something very simple to use and enough for visualization of placemarks or heat-maps. An ideal example for me were such solutions as OpenLayers or Google Maps API. I'm familiar with the QtLocation module, but again it is not very suitable for QtWidgets / C++ development, since it is a QML solution more for mobile platforms than for desktop. In general, this was the reason for the creation of QGeoView.
QGeoView is a Qt / C ++ widget for visualizing geographic data, like tiled layers, raster or vector data. QGeoView has only Qt as dependency. This component uses QGraphicsView and focuses on usability and performance.
QGeoView public interface follows best practices from OpenLayers and Google Maps API and supports all basic map features, like:
- EPSG3857 projection (others can be added)
- Camera changes: scaling, rotation, moving
- TMS (OSM, Google, Bing or custom)
- Map control widgets
QGeoView uses a hierarchical object storage system, which can store both visual objects (for example, raster or shapes) and non-visual objects (for example, a layer of items). Override in paint event for the visual object allow you to show on the map any geo-data from any source (like in QGraphicsView). However, QGeoView itself does not provide methods for reading/parsing of geo-data sources (files). The only exception are TMS servers and bitmap images, for all other sources you need to extend solution.
You can learn more about this project on GitHub (GPL licence). Feedback's and contributions are welcome :)
Nice. Thank you for sharing.