Easily creating location-based applications with OSMAlchemy
Learn how to create (web) applications using real-world map data with as little resources as possible
Location-based applications grow in importance, not only for the augmented reality gaming community, but also for businesses adding location-aware functionality to their web applications, mobile apps and the like. We show how to work with the vast set of OpenStreetMap data with minimal Python programming and very little resources using the OSMAlchemy library.
In this workshop, we will create a web application that uses the live set of OpenStreetMap data to allow users to review places like restaurants, bars and the like. Doing so, we will use the following technologies:
- the Python programming language
- the Flask micro-framework for web applications
- an SQLite database
- the SQLAlchemy object-relational mapper
- the OSMAlchemy library
- the Angular.JS framework
When writing applications that use OpenStreetMap, one had to decide whether to only use a really small subset of the data or maintain their own local copy of the whole planet data, which accumulates to more than 1 TB of data and consumes a lot of resources to work with it. OSMAlchemy provides access to the live data through the Overpass API in combination with a local, SQLAlchemy-based cache. It also allows access to the complete set of OpenStreetMap data by simply querying SQLAlchemy, without even caring about Overpass API access.
After attending the workshop, you will be able to implement arbitrary applications using whatever OpenStreetMap features you like. You should have some basic knowledge about Python and relational databases. Having heard about Flask, REST and SQLAlchemy gives you an extra bonus, but is not strictly necessary. If you want to try the examples during the workshop, please make sure to have the most recent (stable) versions of Python 3, Flask, Flask-SQLAlchemy, Flask-Restless and OSMAlchemy installed beforehand.