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
The Open Database License (ODbL)
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