What type of OSM data needs do you have?
openstreetmap.org, Amy Lee Walton (Mapbox Gallery), Stamen Designs
January 10, 2010: 7.0M earthquake strikes Haiti
Points? Lines? Polygons?
Points, Lines, Polygons
Nodes, Ways, Relations (sort of)
...
...
Objects w/ tag | Key | Most-common values |
---|---|---|
66% | building | yes, garage, house, school |
64% | height | 8.2, 8.0 |
13% | highway | residential |
11% | name | (various) |
2% | amenity | parking, bicycle parking |
xml | (.osm / .osh) |
pbf | (.osm.pbf .osh.pbf) |
Vector Tiles | (.mbtiles) |
Optimized for read-only DB access.
Custom query language
The Overpass Turbo project is very helpful
Full history file is also available:
- Every version of an object
- Timestamp, user, version #
planet.openstreetmap.org/planet/full-history/Benefits of an active dev community:
There are a lot of them, depending on your needs
The primary library for working with full OSM data formats.
Written in C++, ported to Python, Node
Standalone utility as well
Command-Line utility to populate PostGIS database with OSM data
Tile Reduce 3 OSM Coverage from Mapbox on Vimeo.
OSM Lint (Bridge On Node)
use 'strict';
var turf = require('turf');
// Identify Point geometries with a bridge tag.
module.exports = function(tileLayers, tile, writeData, done) {
var layer = tileLayers.osm.osm;
var result = layer.features.filter(function(val) {
if (val.properties.bridge && (val.geometry.type === 'Point')) {
val.properties._osmlint = 'bridgeonnode';
return true;
}
});
if (result.length > 0) {
var fc = turf.featureCollection(result);
writeData(JSON.stringify(fc) + '\n');
}
done(null, null);
};
Currently an active area of research...
Open Schema?
NoSQL? SQL?
MongoDB: NoSQL document store. Works for smaller areas (small Countries) Epic-OSM