See FAQ.md for information about which licenses are compatible with this index.
The 'source' documents for this project are the .geojson files in sources
. To add
a new imagery source, add a new file to this directory.
Each source must be a GeoJSON Feature
and must minimally have name
, type
, url
, and category
properties.
To improve readability, the keys of the GeoJSON document should be ordered consistently: type
, properties
, then geometry
.
We further recommend to add the licence related and privacy_policy_url
properties.
See schema.json for the full list of available properties.
The source url
property should contain a url with replacement tokens. An application will replace the tokens as needed to download image tiles. Whenever possible, use https URLs.
Supported TMS tokens:
{zoom}
,{x}
,{y}
for Z/X/Y tile coordinates{-y}
for flipped TMS-style Y coordinates{switch:a,b,c}
for DNS server multiplexing{apikey}
for an app specific apikey
Example: https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png
Supported WMS tokens:
{proj}
- requested projection (e.g. EPSG:3857){width}
,{height}
- requested image dimensions (e.g. 256, 512){bbox}
- requested bounding box
Example: http://geodienste-hamburg.de/HH_WMS_Geobasisdaten?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=13&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}
Alternatively, with following binder wizard a template can be created based on a WMS GetCapabilities query.
Make sure you submit the most appropriate image format for the images: usually, jpeg for photography and png for maps. See #435 for a case where bmp was better.
Local (i.e. not worldwide) sources should define an appropriate extent as the geometry for the GeoJSON feature. Polygons and bounding boxes can be created by using a tool like http://geojson.io/
See FAQ.md for information about how to draw a bounding polygon.
Alternatively, polygons can be created based on administrative boundaries using the following binder notebook.
Valid imagery dates should be defined with start_date
and end_date
properties:
"start_date": "2012",
"end_date": "2014",
Specifying reduced accuracy dates is complex. For simplicity, the schema allows
a subset of ISO 8601 defined in RFC 3339
except that a reduced precision date is allowed. For example, 2013-04-15T14:02:54.05+00:00
is a fully specified ISO 8601 date-time, 2013-04-15
could be used for just the date,
or 2013-04
for just the month, 2013
for just the year.
To specify imagery taken sometime in 2019, use "start_date": "2019"
,
"end_date": "2019"
.
Implementations must not round down the end date (e.g. consider 2013
the same as the
start of 2013
. Note that this is the opposite of what we did before, and layers before 2015 could have overly wide date ranges.
Follow this workflow to create and submit a change to the editor layer index. Whenever branches are mentioned, replace master
with main
.
After you've made a modification, and submit a pull request including those json files. Tests will be run automatically, though if you'd like to manually test as it would appear in the iD editor you can try at https://ideditor.github.io/imagery-index/index.html.