Vector tiles are a way to deliver geographic data in small chunks to a browser or other client app. Vector tiles are similar to raster tiles but instead of raster images the data returned is a vector representation of the features in the tile. For example a GeoJSON vector tile might include roads as LineStrings and bodies of water as Polygons. Some vector tile sources are clipped so that all geometry is bounded in the tiles, potentially chopping features in half. Other vector tile sources serve unclipped geometry so that a whole lake may be returned even if only a small part of it intersects the tile.
There are currently several experimental projects serving vector tiles from OpenStreetMap data. The Mapnik Vector Tiles are one source of OSM vector tiles in GeoJSON format. The OpenStreetMap API can also be used as an ad-hoc vector tile source for OSM XML data by creating appropriate bounding box queries; the iD editor uses this mechanism to access OSM source data.
- 1 TODO
- 2 Ongoing projects, people
- 3 Student projects
- 4 Discussions
- 5 Services
- 6 Server
- 7 Formats
- 8 Client/renderer
- 9 Styling
- 10 Native client-side libraries
- 11 Generalization
- 12 Clipping
- 13 Others
Much work required to turn this into a useful resource for people learning about vector tiles. Some sources:
- Tile data server
- WikiMiniAtlas/Vector tiles - Documentation for the Vector tile system currently in use by the WikiMiniAtlas, Stuff Wikimedia page
- Further work on links below; verify links and descriptions; discuss structure; integrate with Tile data server --Ikonor (talk)
Ongoing projects, people
- Michal Migurski:
- Paweł Paprota: "my personal goal is to make OWL a source of up-to-date worldwide vector tiles"
- Kai Krueger: "working on a geojson vector "renderer" for tirex", and testing GSoC Data Tile Service
- Google Summer of Code/2012/Data Tile Service, GitHub, osm-dev Mail: GSoC Data tile example site (example offline),
- vector rendering on Marble (GSoC 2012)
- Segmentation of OpenStreetMap Data - Generating, Merging, and Distributing Tiles - Bachelor Report 09/2011, see OSMT
- 3D OSM mit WebGl? (German)
- Libraries to render vector-based maps in the browser (GIS Stack Exchange)
- dev Forum: Real Time Rendering in the Browser - Ideas how it can be done
- dev: OSM formats optimised for client-side vector rendering?
- Forum: Rendering auf dem Clientrechner (German)
- Forum: 50 km x 50 km "Chunks" (German)
- Talk-de Projektidee: Segmentierung von OSM-Daten (German)
- gis.stackexchange.com: How to create Vector Polygons at the same amazing speeds GISCloud is able to render them?
- OpenLayers User List: GisCloud showing tons of vectors features on Web Browser
- Mapnik Vector Tiles - Road Lines+Labels, Land Usages, Water Areas; GeoJSON + MVT
- Freemap GeoJSON Vector Tiles - Freemap API delivers GeoJSON tiles of selected areas of the UK. Please contact me (nickw) on freemapinfo at gmail dot com if interested, to avoid bandwidth issues on my server.
- OSM2VectorTiles provides "Free Vector Tiles from OpenStreetMap", based on opensource stuff from MapBox.
- vector-tile-server - node.js server based on Mapnik, protocol buffers tile format, used by OpenScienceMap (according to Tile_data_server)
- Kothic JS json_getter.py, json_getter-setup
- Mapnik Metawriter, Demo - replaced by UTFGrid
- Trapi - Perl, OSM SVN
- node-tileserver - node.js server which can generate GeoJSON tiles for KothicJS
- Cloudmade Vector Stream Server - SVG output
- MVT (Mapnik Vector Tiles) - binary with WKB (well-known binary), optimized for Mapnik as Client, supported by TileStache VecTiles provider, blog
- Mapbox vector tile format - A format based on Google Protocol Buffers, using a serialization of the Mapnik API
- OpenScienceMap OSciM-PBF: binary Protocol Buffers format. The current version is implemented by TileStache OSciMap4 provider. Version 2: oscim-draft.txt , supported by vector-tile-server  and TileStache OSciMap provider
- GSoC2012 Data Tile Service - similar to Kothic
- Kothic JSON: custom GeoJSON-like, supported by Kothic json_getter.py and TileStache JsonOSciMap provider
- GeoJSON, provided by TileStache
- Mapsforge: Specification: Mapsforge Binary Map File Format
- Strategy.Grid (Metawriter Demo, see below)
- vector-behavior sandbox OpenLayers.Grid + OpenLayers.Strategy.Grid
- Grid Strategy - feedback and few questions - what still needs to be done
- Blog: Adding Grid Strategy to the mix - make it work with the Cluster Strategy
- Ticket #2720: Refactor Layer.Grid into separate Grid class
- Strategy.TFS, Protocol.TFS: Tile Feature Strategy in OpenLayers
- Polymaps - built in, clipped and unclipped, supported by TileStache
- WhirlyGlobe-Maply Supports Migurski's vector tiles, their own format, and MapBox's format
- Avecado (by Mapquest.com) is a library for building Mapnik vector tiles, along with language bindings for Python and some utility programs.
- Polymaps, example: http://polymaps.org/ex/statehood.html
- Cartagen, OSM-dev Cartagen - client-side vector based map renderer, dynamic maps
- Osmarender_Frontend, http://osmarenderfrontend.wordpress.com/
- Kothic JS
- VECNIK (CartoDB, Vizzuality) - "Render Vector HTML5 maps using CartoDB and Carto as styling language, on top of ModestMaps"
- cartodb_tile_render - prototype
- Mapbox GL JS
- OpenLayers 3 (in development), Blog
- OpenLayers Adapter - KML, Shapefile
- OpenLayers 3 integration
- OpenWebGlobe, Camptocamp news, GitHub
- xml3d.org - OpenStreetMap 3D Viewer and tools - XML3D
- Tangram is a WebGL solution for OpenStreetMap developed by Mapzen, also see blog posting about it.
- gl-solar, webGL rendering of OSM data (blog), Demo - with Squares based on D3
- OSM Buildings - iD + three.js
- Freemap 3D
- OpenScienceMap/VectorTileMap - WebGL port of VectorTileMap, written in Java (using libgdx gwt backend). OpenScienceMap
- Google MapsGL
- Nokia HERE 3D
- MapSurfer.NET is a cartographic framework (written in C#) which allows using vector tiles as a data source
- Plain SVG CSS
- OpenLayers Styling
- carto (MapBox / TileMill)
- GSS (Cartagen)
- Cascadenic (für Mapnik)
- Mapbox GL Style Spec
Native client-side libraries
- OpenLayers LineString.simplify
- Simplify.js / Leaflet
- PostGIS ST_Simplify, ST_SimplifyPreserveTopology
- TopoJSON - for topology-preserving simplification
- PostGIS ST_Intersection
- Geojson CSS
- Exploring the Future: is HTML5 the solution for GIS Applications on the World Wide Web?
- How Interactivity Works with UTFGrid
- Web mapping with vector data. Is it the future ? 2012
- GIS Cloud Starts HTML5 Mapping Revolution!
- Vector tile tutorial; not OSM specific, but notes on clients and servers
- awesome implementations of the Mapbox Vector Tile specification