diff --git a/DATA_SOURCES.md b/DATA_SOURCES.md index fff4f0e82..91ec42398 100644 --- a/DATA_SOURCES.md +++ b/DATA_SOURCES.md @@ -218,6 +218,7 @@ Each Data Library entry is a manifest in `src/library/entries/` pointing at a li | Entry | How it is served | Licence / terms | Attribution | | --- | --- | --- | --- | | **Alaska Statewide Imagery (2023)** (`ak-statewide-imagery`, `apps.geo.fpac.usda.gov`) | tiles, bbox, browser-direct | [Public Domain (U.S. Government work)](https://www.usgs.gov/information-policies-and-instructions/copyrights-and-credits) | "USDA / Alaska Geospatial Council" | +| **Amsterdam traffic and ANPR camera positions** (`amsterdam-traffic-cameras`, `api.data.amsterdam.nl`) | dataset, geojson, browser-direct; operator adds `amsterdam-traffic-cameras` to `GEV_LIBRARY_ENABLE` | [Gemeente Amsterdam open data: public unless stated otherwise; no named licence](https://schemas.data.amsterdam.nl/datasets/verkeersinformatiesystemen/dataset) | "Gemeente Amsterdam, verkeersinformatiesystemen register (entry contributed by @Maher-Reven)" | | **Arkansas Statewide Imagery (2023)** (`ar-statewide-imagery`, `gis.arkansas.gov`) | tiles, bbox, browser-direct | [Public domain — Arkansas GIS Office open data](https://gis.arkansas.gov/) | "Arkansas GIS Office" | | **Arizona Statewide Imagery (2017)** (`az-statewide-imagery`, `azgeo.az.gov`) | tiles, xyz, browser-direct; operator adds `az-statewide-imagery` to `GEV_LIBRARY_ENABLE` | [Open state geodata — attribution requested](https://azgeo.az.gov/) | "AZGEO" | | **Bangor, Maine Orthoimagery** (`bangor-me`, `tiles.arcgis.com`) | tiles, xyz, browser-direct; operator adds `bangor-me` to `GEV_LIBRARY_ENABLE` | [Local government open data — see publisher terms](https://www.bangormaine.gov/) | "City of Bangor GIS" | diff --git a/changelog.d/1604-data-library.md b/changelog.d/1604-data-library.md index 7b5b211fa..385459daa 100644 --- a/changelog.d/1604-data-library.md +++ b/changelog.d/1604-data-library.md @@ -8,7 +8,9 @@ generic `/api/library` proxy serves entries without CORS. Seeded with NASA EONET events, EIA and WRI power plants, NWS alerts, NOAA tide stations, Smithsonian volcanoes, NASA Black Marble, OpenSeaMap seamarks, and the - opt-in IMF PortWatch and CCTV packs. FEMA USA Structures and the + opt-in IMF PortWatch and CCTV packs, plus the City of Amsterdam's + traffic and ANPR camera positions (opt-in; contributed by @Maher-Reven in + #251). FEMA USA Structures and the National Bridge Inventory load what is in view once you zoom in, and Addresscloud's EPC ratings stream from Source Cooperative's GeoParquet on S3, coloured A–G with live legend counts. Open tile overlays (geology, diff --git a/scripts/package-boundaries.json b/scripts/package-boundaries.json index 27ab5ad04..f76bd666a 100644 --- a/scripts/package-boundaries.json +++ b/scripts/package-boundaries.json @@ -3213,6 +3213,7 @@ "src/library/selection.js", "src/library/ledger.json", "src/library/entries/ak-statewide-imagery.json", + "src/library/entries/amsterdam-traffic-cameras.json", "src/library/entries/ar-statewide-imagery.json", "src/library/entries/az-statewide-imagery.json", "src/library/entries/bangor-me.json", diff --git a/src/library/catalog.js b/src/library/catalog.js index c04656e13..3a5319bb2 100644 --- a/src/library/catalog.js +++ b/src/library/catalog.js @@ -12,6 +12,7 @@ import ledgerRows from './ledger.json' with { type: 'json' }; import akStatewideImagery from './entries/ak-statewide-imagery.json' with { type: 'json' }; import arStatewideImagery from './entries/ar-statewide-imagery.json' with { type: 'json' }; import azStatewideImagery from './entries/az-statewide-imagery.json' with { type: 'json' }; +import amsterdamTrafficCameras from './entries/amsterdam-traffic-cameras.json' with { type: 'json' }; import bangorMe from './entries/bangor-me.json' with { type: 'json' }; import basemapAtOrthofoto from './entries/basemap-at-orthofoto.json' with { type: 'json' }; import bayernDop40 from './entries/bayern-dop40.json' with { type: 'json' }; @@ -119,6 +120,7 @@ import wvStatewideImagery from './entries/wv-statewide-imagery.json' with { type /** Raw manifests in file-name order; the validated form is below. */ export const LIBRARY_MANIFESTS = Object.freeze([ akStatewideImagery, + amsterdamTrafficCameras, arStatewideImagery, azStatewideImagery, bangorMe, diff --git a/src/library/entries/amsterdam-traffic-cameras.json b/src/library/entries/amsterdam-traffic-cameras.json new file mode 100644 index 000000000..04058886f --- /dev/null +++ b/src/library/entries/amsterdam-traffic-cameras.json @@ -0,0 +1,39 @@ +{ + "id": "amsterdam-traffic-cameras", + "kind": "dataset", + "family": "cameras", + "title": "Amsterdam traffic and ANPR camera positions", + "provider": "Gemeente Amsterdam", + "description": "Where the City of Amsterdam's traffic and ANPR cameras stand (about 500), from its traffic information systems register. Positions and camera type only: the city publishes no pictures.", + "icon": "◉", + "maintainer": "github:Maher-Reven", + "coverage": { "countries": ["NL"], "bbox": [4.72, 52.27, 5.08, 52.44] }, + "source": { + "format": "geojson", + "url": "https://api.data.amsterdam.nl/v1/verkeersinformatiesystemen/verkeersinformatiesystemen/", + "query": { + "objectSoort": "Camera", + "_format": "geojson", + "_pageSize": "1000" + }, + "fetch": "browser-direct", + "cacheSeconds": 86400, + "maxFeatures": 1000 + }, + "display": { + "color": "#e53e3e", + "label": "standplaats", + "fields": ["typeGedetailleerd", "objectnummer"] + }, + "licence": { + "name": "Gemeente Amsterdam open data: public unless stated otherwise; no named licence", + "url": "https://schemas.data.amsterdam.nl/datasets/verkeersinformatiesystemen/dataset", + "operatorOptIn": true + }, + "attribution": { + "text": "Gemeente Amsterdam, verkeersinformatiesystemen register (entry contributed by @Maher-Reven)", + "url": "https://api.data.amsterdam.nl/v1/docs/" + }, + "status": "community", + "reviewed": "2026-11-07" +} diff --git a/src/library/ledger.json b/src/library/ledger.json index de9dee009..9caf0feea 100644 --- a/src/library/ledger.json +++ b/src/library/ledger.json @@ -101,5 +101,6 @@ ["kartverket-topo-grey", "2r"], ["kartverket-topo", "2s"], ["kartverket-toporaster", "2t"], - ["mapterhorn-terrain", "2u"] + ["mapterhorn-terrain", "2u"], + ["amsterdam-traffic-cameras", "2v"] ]