Skip to content
forked from 3liz/QuickOSM

QGIS plugin to fetch OSM data with the Overpass API

License

Notifications You must be signed in to change notification settings

Troctolite/QuickOSM

 
 

Repository files navigation

QuickOSM

Logo of QuickOSM

Build Status

Versions

  • QuickOSM is maintained only for a maintained QGIS version (LTR, stable release and dev).
QuickOSM QGIS Min QGIS Max Branch
1.0 → 1.4 2.0 2.18 master_qgis2
1.5 → 1.7 3.0 3.2
1.8 → 3.4 master

Watch the Video tutorial

Install the QuickOSM plugin

  • QGIS Plugins menu → Manage and Install Plugins…
  • Search for QuickOSM and select it
  • Install Plugin

Try a quick query

  • Vector menu → QuickOSM -> QuickOSM
  • In the key field enter amenity
  • In the value field enter toilets
  • Set the name of the town/village to London
  • Run Query

The Overpass API takes a few seconds to respond, and after that you should get new point and polygon layers for the toilets of London! (nodes and ways in OpenStreetMap with the amenity=toilet tag on them)

Generalities

QuickOSM allows you to work quickly with OSM data in QGIS thanks to Overpass API.

  • Write some queries for you by providing a key/value
  • Choose to run the query on an area or an extent
  • Configure the query : which layers, which columns…
  • Open a local OSM (.osm or .pbf) with a specific osmconf in QGIS
  • Build some models with QGIS Processing

There are some useful tips, like automatic colours on lines (if the tag is present) or some actions (right-click in the attribute table) for each entities (edit in JOSM for instance).

Using QuickOSM in a Processing model or in a Python script

Since QGIS 3.4, QuickOSM is available in the Processing modeler. Here some useful algorithms in an appropriate order:

  • QuickOSMAdvanced, one of the Build query algorithms.
  • File ToolsDownload file.
  • Modeler ToolsString concatenation. Useful to concatenate the downloaded filepath with
    • |layername=points
    • |layername=lines
    • |layername=multilinestrings
    • |layername=multipolygons
  • QuickOSMOpen OSM file. Instead of the step above with the string concatenation.

Check a more detailed answer on stackexchange.

  • Vector TableExplode HStore field (QGIS ≥ 3.6)
  • Vector TableFeature filter

Since QGIS 3.6, you can export your Processing model as a Python script.

As an example, you can download this model and load it in your QGIS. Additionally, you can download example QGIS style files for OSM from here. The model will download and style OSM data from an extent and packages it in one Geopackage.

Translation

  • The web-based translating platform Transifex is used.

Development and tests

  • QuickOSM uses a Git submodule.
    • For a new clone, including the submodule, do git clone --recursive https://github.com/3liz/QuickOSM.git.
    • For an existing clone, do git submodule init and git submodule update.
    • These command will populate the qgis_plugin_tools.
  • For panels, you can find a quick diagram in the doc folder.
  • For tests, it's using the unittest framework.
    • They are launched on GitHub using Travis, you can check the Travis status on each commits and pull requests.
    • You can launch them locally:
      • make docker_test using Docker with the current LTR following the QGIS release schedule.
        • qgis_plugin_tools/docker_test.sh QuickOSM release-3_4 for QGIS 3.4
        • qgis_plugin_tools/docker_test.sh QuickOSM latest for QGIS Master or any other tags available on Docker Hub.
        • If you are using docker, do not forget to update your image from time to time docker pull qgis/qgis:latest.
      • Setting up your IDE to launch them by adding paths to your QGIS installation. I personally use PyCharm on Ubuntu.
      • Launching tests from QGIS Desktop app, in the Python console using :
from qgis.utils import plugins
plugins['QuickOSM'].run_tests()

Credits

Author: Etienne Trimaille : https://twitter.com/etrimaille

Contributors:

About

QGIS plugin to fetch OSM data with the Overpass API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.4%
  • Other 0.6%