When viewing TMS layers in QGIS, as well as in any other GIS, the background map may be blurred if the current map scale does not match the scale of the tiles. The reason for this is a feature of TMS, namely the use of a fixed set of so-called “zoom levels”: tiles are generated only for certain scales defined by the data provider.
So to get a sharp image, you should only use the scales that correspond to the zoom levels of the selected TMS service. For OpenStreetMap, the formula for calculating the scale for each zoom level can be found on this page, and a similar approach can be used for other services.
Some time ago I added a special widget to QGIS to select a map scale from a given set. Later, it became possible to edit this list and define a set of scales on a global level as well as on a project level. So if your project uses TMS layers, you can create your own list of scales and switch between them. At the same time, you still have the option of using any intermediate scale values.
Another option is to install the Tile Map Scale plugin. This plugin allows you to easily connect popular TMS layers (remember about ToS!). It also monitors map scale changes and automatically sets the nearest correct TMS scale. Note that you will not be able to use intermediate scale values in this case.
Finally, QGIS has a built-in widget for changing the scale according to the layer’s scale list. It can be found in “View → Panels → Tile scale” or from the toolbar context menu.
When displaying spatial information, it is desirable to have a “context” — some additional data to help you navigate and make the information more readable. This can include administrative boundaries, hydrology, road networks, etc. Such additional layers are called “basemaps”. The term “basemap” is often used to refer exclusively to services such as Google Maps, BING Maps, OpenStreetMap and so on, but this is not correct.
So what is a basemap? It is a background layer (such as a digital elevation model or topographic map) on which thematic layers are overlaid. The basemap is often used for geographic reference and may include elements of the geodetic network. Very often, aerial or satellite imagery is used as a basemap.
At the same time, the widespread use of different map services as basemaps is explained by their accessibility: all that is needed to use them is an Internet connection and minimal GIS skills, whereas the use of other types of data may require some preparatory work, such as georeferencing.
Let’s see how we can use different map services in QGIS.
I have released a new version of the Photo2Shape plugin. This is a QGIS plugin that allows you to create a point vector layer from a set of geotagged photos.
Users now have the ability to recursively process directories and the option to append data to an existing file. The code has also been refactored, and instead of EXIF.py the more convenient and reliable exifread is now used.
I’m pretty sure that the heterogeneity of the Processing plugin’s graphical interface is not something that many people (if any) pay attention to. And it is very likely that the code responsible for the generation of the interface has never been seen by anyone other than the developers. Since everything works as expected, everyone is happy with it. And it does not matter what the windows or buttons look like. Let alone the code. In fact, both are important. A unified interface looks professional, is more convenient and pleasant to use, while clean, well-structured code is easier to maintain and extend.
My first thought was to do a crowdfunding campaign like Matthias, but then I changed my mind. So now I am slowly fixing it in my spare time. I’m hoping to get this done in time for the 2.8 release, which will be a long-term supported release.
The release of QGIS 2.6 “Brighton” has been announced. This release contains many new features, bugfixes and improvements.
The detailed changelog can be found here. For normal users, it is better to use the visual changelog. The most important and interesting changes are listed below:
implemented support for expression (virtual) fields
actions can now have an associated icon
more expression functions and variables have been added, including $currentfeature and $atlasfeature to get the current feature in different contexts, attribute() and getFeature() to get the attribute value of a feature or a feature with matching attribute, respectively
layer tree overhaul: new API, visibility groups, legend filter and more
syntax highlighting in all code editors (Python, expressions, HTML and CSS)
added support for custom colour palettes
new colour picker dialogue with a wide range of features
Processing Modeler overhaul
online repository for Processing models and scrips
item panel in Print Composer for quick access to all composer items
many properties of various composer items have been made data-defined
support for multiple overview maps for a composer map element
and much more
The source code and binary packages for Windows, Debian, and Ubuntu are available for download. Packages for other distributions and operating systems will appear as they are prepared by the maintainers.
I have finished translating the PyQGIS Developer Cookbook into Ukrainian. It will be available on the QGIS documentation portal soon.
Comments and constructive criticism are welcome. Or even better, create an account and edit directly in Transifex
(although I personally don’t like it much and translate locally: git + Qt Linguist are the best).
At last! QGIS has finally got support for multithreaded rendering, the corresponding changes were merged into master by Martin Dobias just an hour ago. This is basically a revival of the 2010 GSoC project “QGIS on steroids” (successfully completed, but never merged into master), taking into account the latest changes to the QGIS codebase.
By default, multithreaded rendering is disabled, one can enable it in the QGIS settings “Settings → Options → Rendering → Render layers in parallel using all available CPU cores”. It is also possible to set canvas refresh interval during rendering (0 means real-time updates).
The work was done with the financial support from Lutra Consulting and Swiss QGIS User group.
As previously announced, QGIS has moved to a fixed 4-month release cycle. And now the first release on the new schedule has taken place.
This release focuses on bug fixes and performance improvements. Much effort has been put into developing and improving the Print Composer, making it even easier to create printed maps.
The full changelog can be found here. A visual changelog is also available. The most interesting and important changes are listed below:
support for pasting WKT from the clipboard as a new feature in the existing vector layer or as a new memory layer
UI improvements in the expression builder widget. It is now possible to resize various areas, advanced users can hide operator buttons to free up some screen space
The 10th QGIS developer meeting in Brighton (UK) has come to an end. This meeting was the most attended ever. This can be explained by the growing popularity of QGIS and the fact that the hackfest was held just before the FOSS4G conference.
The first day was almost unremarkable, with participants gradually arriving at the University of Sussex, newcomers getting to know each other — in short, an ordinary day before the hackfest itself. Among the notable changes to the code during the day:
copy/paste support for rendering rules
ELSE branch support in rule-based renderer
improvements in the print composer menus
Meanwhile, at Gatwick Airport, Victor Olaya is starting a complete refactoring of the Processing framework…
The QGIS developers are not superstitious people, and Friday the 13th did not affect their work in any way. The list of commits is impressive:
the Plugin Manager got the ability to optionally hide deprecated plugins, as well as highlight them in the plugin list
implemented visualisation of topological information in GRASS layers
Processing framework got a new, more convenient, configuration dialogue
10 new algorithms were added to Processing
and others improvements and bug fixes
There were also several discussions, starting with Richard talking about the new website. This was followed by discussions about refactoring the vector API, support for attribute domains, the possibility of using QML (especially in QGIS Android), the architecture and further development of the Processing framework.
On Saturday, Victor pushed to master the first set of refactoring commits
It’s starting to get fun… now nothing works :-)
Despite the refactoring, the framework continues to grow in functionality: 5 new algorithms have been added, and a few old ones have been improved. The Python console gets support for custom colour schemes (aesthetes will be pleased). There were also several discussions: a unified configuration dialogue, 3D support (Globe plugin, PostGIS, etc.), plugin manager and repository, further development of the WMS client, QGIS Server, QGIS WebClient.
Sunday, the penultimate full day of the hackfest. Another series of discussions, this time on documentation, the abstraction layer for databases, and attribute/geometry indexing. Quite a few commits were also made:
new script editor for Processing
reduced number of data conversions when running SAGA algorithms in QGIS
obsolete settings and related code were removed from Processing
added the ability to save models created in the Graphical Modeler as an image
expressions support in “Graduated” and “Unique values” symbology
More than a year has passed since the release of QGIS 1.8.0. And now, after many months of waiting and several postponements of the release date, QGIS 2.0 “Dufour” is officially announced. This release can be seen as the beginning of a new phase in the life of the project.
So the project is now officially called QGIS. The word “Quantum” in the name never had much meaning, and having two names (Quantum GIS and QGIS) sometimes caused unnecessary confusion. Also, using a shorter and more generic name allows for consistent naming of all components: QGIS Desktop, QGIS Server, QGIS Browser, etc.
Along with the release of version 2.0, the official website has undergone a major overhaul. We hope that the new design will be more convenient and functional, making it easier to find the information you need.
Long-awaited news for Windows users - QGIS is now available in a 64-bit version (both as a standalone installer and via OSGeo4W). Note that *NIX and MacOS users have long been able to use 64-bit packages.
The full list of changes in this release is quite impressive, you can check it out here. The so-called visual changelog is also available. In this post I will only list the most interesting and/or noticeable changes, but there are quite a few of them.
We have made a lot of changes to the QGIS GUI to make it cleaner and easier to use:
the icon theme has been updated to use the “GIS” theme, which is more consistent and professional
the layout of the various dialogues has been standardised with extensive use of vertical tabs and collapsible group boxes
to replace annoying modal message boxes, we have implemented a new non-blocking pop-up notification system with a corresponding API for plugin developers
QGIS 2.0 adds support for even more data sources and many data handling improvements, including:
added Oracle Spatial data provider
new OpenStreetMap data provider that works in read-only mode and uses the Overpass API to load data, downloaded data is stored in the SpatiaLite database
complete overhaul of the raster data provider subsystem. We moved to a “raster pipes” architecture — chains of independent operations (data reading, reprojection, resampling, rendering filters, etc.) that can be combined. One of the results is the ability to export open images in any supported format, while changing image resolution, cropping and reprojecting. In addition, it is now possible to save the raster as it is rendered in the GIS, e.g., if a colour palette has been applied to a singleband raster, it can be saved as a georeferenced RGB raster
Among other changes:
Heatmap plugin optimisations and improvements
SEXTANTE integrated into QGIS as a core plugin and renamed to Processing
unified Plugin Manager that allows you to download, install and manage plug-ins in a single window
new Python console with syntax highlighting, autocompletion, customisable fonts and other improvements
support for custom expression functions
support for project macros
new Python API. QGIS has been migrated to use SIP API v2, Qt types are automatically converted to the corresponding Python types
improved layer tree
many symbology and labelling enhancements: support for blending modes, mode data-defined properties, colour ramp support, etc.