Static map images
Static maps images (have the potential to) offer an easy way to embed maps on a webpage.
The idea is for web site developers to simply use an
<img /> tag (in pure HTML or via a CMS). Its src attribute specifies the location of the map, the size of the image, the zoom level, the type of map, etc. When the webpage is displayed, the browser requests the image from the static map service and the map is displayed with no dynamic features, the same way as any other image.
Most of the options are open source, meaning you could host the service within your own webspace.
- Of course you can also grab a static map image by simply taking a screenshot; instructions for this vary between operating systems.
- OSM's own Share panel's Image option also allows generating an image, but not as a permalinkable URL (for one-offs, and not for scripted use)
- The following services are available:
- Mapbox Static API and classic Static API - sign up for API key
- Geoapify Static Maps API - sign up for API key
- Tyler (github) - available as a "demo".
- osm-static-maps - nodejs library + self hosted option, with demo on heroku
- StaticMapLite staticMapLite + staticMapWizzard - Available but hosted only reluctantly. Looking unreliable. Referrer usage requirement.
- staticmap from komoot
- staticmapservice - a configurable web service based on staticmap
- Printmaps Static Map Generator (free for normal resolution, premium for high resolution)
- py-staticmaps - Python library for creating PNG+SVG maps with pin-style+image markers, geodesic polylines, polygons, circles.
- go-staticmaps - Go library and command line tool to render static map images using OpenStreetMap tiles.
- php-osm-static-api - PHP library to render static images using OpenStreetMap tiles.
- A few services used to exist, but were taken offline. These along with other "tile stitching" options can still be run and used locally or re-hosted somewhere:
- MapQuest/Open Static Maps API
- Static Maps API
- Not a service, but it seems that you can find the (old) python script by searching the web for some keyword combination: http://modestmaps.com/examples-python-ws/ ws-compose and ws-pinwin
- (check above list and move items out of it if known not to cause load)
- A local shell script (uses firefox screenshotting)
|Functionality||staticMapLite||Tyler ||osm-static-maps||Geoapify Static Maps API|
(recently re-hosted but only reluctantly)
|URL||http://staticmap.openstreetmap.de/||http://tyler-demo.herokuapp.com||heroku hosted demo||Demo|
|Image types||gif, jpeg||jpeg, png||png||png||jpeg, png (lossless optimized)||jpeg, png|
|Supported URL Parameters|
|Support of Markers|
|Multiple Markers||yes||max. 10||yes||no||Through geojson||yes|
|Custom Markers||no||URL based||3 styles||no||URL based||Generated by Geoapify Marker Icon API|
|Support of Path / Vectors / Polygons / Overlays|
|Polygons||yes||max. 4||no||no||Through geojson||no|
Comparison of request parameters
Besides varying in supported features each implementation has its own request parameter syntax. If you are planning to use one of those, read the documentation that comes with it. Eventually some projects will adapt or implement compatibility modes.
Google Static Maps API
WMS Client getMap Request