diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f99cb125..d0881be6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,61 +13,61 @@ jobs: check_mapfiles: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.11 - cache: "pip" - # Some mapfiles are generated by scripts, but also committed to the repo. - # Check for mismatches between committed files and script output. - - name: Regenerate mapfiles and check for equality - run: | - for script in gen_*.py; do - mapfile=$(echo $script | sed 's/^gen_//; s/\.py$//').map - if [ ! -f "$mapfile" ]; then - mapfile="private/$mapfile" + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.13 + cache: "pip" + # Some mapfiles are generated by scripts, but also committed to the repo. + # Check for mismatches between committed files and script output. + - name: Regenerate mapfiles and check for equality + run: | + for script in gen_*.py; do + mapfile=$(echo $script | sed 's/^gen_//; s/\.py$//').map if [ ! -f "$mapfile" ]; then - echo "Result of ${script} not committed" - exit 1 + mapfile="private/$mapfile" + if [ ! -f "$mapfile" ]; then + echo "Result of ${script} not committed" + exit 1 + fi fi - fi - python3 "$script" | cmp - "$mapfile" - done - # The index.json file is not committed, but generated by the Docker - # entrypoint. It should at least be valid JSON. - - name: Check index.json file - run: | - # Create some bogus connection files, or including them will fail: - mkdir -p connections - for c in bag basiskaart dataselectie dataservices panorama; do - echo CONNECTIONTYPE postgis > connection/$c.inc - done - python3 tools/make_indexjson.py *.map | jq . > /dev/null - - name: Authorization checks - run: | - python3 -m pip install -r tools/requirements.txt - # adresseerbare_objecten and bgt_inrichtingselementen can't be parsed - # due to limitations in mappyfile. - # The other excluded maps should be fixed. They have workarounds in - # place to prevent access to restricted fields. - python3 tools/auth_check.py -e \ - adresseerbare_objecten bgt_inrichtingselementen \ - bomen brk2 ondergrond ziektenplagenexotengroen \ - meldingen_huidige_jaar meldingen_vorige_jaar meldingen_indicatoren \ - monumenten hr handelsregister hr_kvk eigendommen_v2 erfpacht_v2 + python3 "$script" | cmp - "$mapfile" + done + # The index.json file is not committed, but generated by the Docker + # entrypoint. It should at least be valid JSON. + - name: Check index.json file + run: | + # Create some bogus connection files, or including them will fail: + mkdir -p connections + for c in bag basiskaart dataselectie dataservices panorama; do + echo CONNECTIONTYPE postgis > connection/$c.inc + done + python3 tools/make_indexjson.py *.map | jq . > /dev/null + - name: Authorization checks + run: | + python3 -m pip install -r tools/requirements.txt + # adresseerbare_objecten and bgt_inrichtingselementen can't be parsed + # due to limitations in mappyfile. + # The other excluded maps should be fixed. They have workarounds in + # place to prevent access to restricted fields. + python3 tools/auth_check.py -e \ + adresseerbare_objecten bgt_inrichtingselementen \ + bomen brk2 ondergrond ziektenplagenexotengroen \ + meldingen_huidige_jaar meldingen_vorige_jaar meldingen_indicatoren \ + monumenten hr handelsregister hr_kvk eigendommen_v2 erfpacht_v2 # Regression test. Asserts that we don't suffer from the MapServer 7.x # bounding box bug https://github.com/MapServer/MapServer/issues/6478. test_bbox: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Run MapServer - run: docker compose up -d public && - sleep 3 - - name: Projection test - run: | - curl 'http://localhost:8383/maps/projectiontest?REQUEST=GetFeature&SERVICE=wfs&OUTPUTFORMAT=application/json;%20subtype=geojson;%20charset=utf-8&Typename=feature&version=1.1.0&srsname=urn:ogc:def:crs:EPSG::4326&bbox=4.89337404,52.36483743,4.89351768,52.36489491'; - curl 'http://localhost:8383/maps/projectiontest?REQUEST=GetFeature&SERVICE=wfs&OUTPUTFORMAT=application/json;%20subtype=geojson;%20charset=utf-8&Typename=feature&version=1.1.0&srsname=urn:ogc:def:crs:EPSG::4326&bbox=4.89337404,52.36483743,4.89351768,52.36489491' | - jq '.features | if length > 0 then . else halt_error(1) end' + - uses: actions/checkout@v3 + - name: Run MapServer + run: docker compose up -d public && + sleep 3 + - name: Projection test + run: | + curl 'http://localhost:8383/maps/projectiontest?REQUEST=GetFeature&SERVICE=wfs&OUTPUTFORMAT=application/json;%20subtype=geojson;%20charset=utf-8&Typename=feature&version=1.1.0&srsname=urn:ogc:def:crs:EPSG::4326&bbox=4.89337404,52.36483743,4.89351768,52.36489491'; + curl 'http://localhost:8383/maps/projectiontest?REQUEST=GetFeature&SERVICE=wfs&OUTPUTFORMAT=application/json;%20subtype=geojson;%20charset=utf-8&Typename=feature&version=1.1.0&srsname=urn:ogc:def:crs:EPSG::4326&bbox=4.89337404,52.36483743,4.89351768,52.36489491' | + jq '.features | if length > 0 then . else halt_error(1) end' diff --git a/compose.yml b/compose.yml index 3e5062eb..061ee124 100644 --- a/compose.yml +++ b/compose.yml @@ -29,7 +29,7 @@ services: # Bare bones 'webserver' to behave as public loadbalancer publicdummy: - image: python:3.11-slim-bullseye + image: python:3.13-slim-bullseye ports: - 8000:8000 command: python3 -m http.server 8000 diff --git a/panden_bouwjaar.map b/panden_bouwjaar.map new file mode 100644 index 00000000..e0c95835 --- /dev/null +++ b/panden_bouwjaar.map @@ -0,0 +1,630 @@ +LAYER + NAME 'onbekend' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] == 1005) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' 'Onbekend' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME 'Onbekend' + STYLE + COLOR '#767676' + OPACITY 50 + OUTLINECOLOR '#767676' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME 'ouder_dan_1800' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] < 1800 AND [oorspronkelijk_bouwjaar] != 1005) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' 'Ouder dan 1800' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME 'Ouder dan 1800' + STYLE + COLOR '#610000' + OPACITY 50 + OUTLINECOLOR '#610000' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1800_1850' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1800 AND [oorspronkelijk_bouwjaar] < 1850) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1800-1850' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1800-1850' + STYLE + COLOR '#A00000' + OPACITY 50 + OUTLINECOLOR '#A00000' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1850_1900' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1850 AND [oorspronkelijk_bouwjaar] < 1900) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1850-1900' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1850-1900' + STYLE + COLOR '#EC0000' + OPACITY 50 + OUTLINECOLOR '#EC0000' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1900_1930' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1900 AND [oorspronkelijk_bouwjaar] < 1930) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1900-1930' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1900-1930' + STYLE + COLOR '#F14600' + OPACITY 50 + OUTLINECOLOR '#F14600' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1930_1945' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1930 AND [oorspronkelijk_bouwjaar] < 1945) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1930-1945' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1930-1945' + STYLE + COLOR '#FBAA00' + OPACITY 50 + OUTLINECOLOR '#FBAA00' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1945_1960' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1945 AND [oorspronkelijk_bouwjaar] < 1960) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1945-1960' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1945-1960' + STYLE + COLOR '#FFE600' + OPACITY 50 + OUTLINECOLOR '#FFE600' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1960_1975' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1960 AND [oorspronkelijk_bouwjaar] < 1975) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1960-1975' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1960-1975' + STYLE + COLOR '#E5F2FC' + OPACITY 50 + OUTLINECOLOR '#E5F2FC' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1975_1985' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1975 AND [oorspronkelijk_bouwjaar] < 1985) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1975-1985' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1975-1985' + STYLE + COLOR '#B1D9F5' + OPACITY 50 + OUTLINECOLOR '#B1D9F5' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1985_1995' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1985 AND [oorspronkelijk_bouwjaar] < 1995) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1985-1995' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1985-1995' + STYLE + COLOR '#71BDEE' + OPACITY 50 + OUTLINECOLOR '#71BDEE' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '1995_2005' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 1995 AND [oorspronkelijk_bouwjaar] < 2005) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '1995-2005' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '1995-2005' + STYLE + COLOR '#007EC5' + OPACITY 50 + OUTLINECOLOR '#007EC5' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '2005_2015' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 2005 AND [oorspronkelijk_bouwjaar] < 2015) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '2005-2015' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '2005-2015' + STYLE + COLOR '#005FA3' + OPACITY 50 + OUTLINECOLOR '#005FA3' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '2015_2025' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 2015 AND [oorspronkelijk_bouwjaar] < 2025) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '2015-2025' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '2015-2025' + STYLE + COLOR '#00467A' + OPACITY 50 + OUTLINECOLOR '#00467A' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END +LAYER + NAME '2025_of_nieuwer' + INCLUDE 'connection/dataservices.inc' + DATA "geometrie FROM (SELECT id, oorspronkelijk_bouwjaar, geometrie, ligging_omschrijving, type_woonobject, ('https://api.data.amsterdam.nl/v1/bag/panden/' || identificatie || '/?volgnummer=' || volgnummer::text) AS uri FROM public.bag_panden_v1 WHERE coalesce(eind_geldigheid, now()) >= now() AND status_omschrijving NOT IN ('Niet gerealiseerd pand', 'Pand gesloopt', 'Pand ten onrechte opgevoerd')) AS subquery USING srid=28992 USING UNIQUE id" +FILTER ([oorspronkelijk_bouwjaar] >= 2025) + GROUP 'panden_naar_bouwjaar' + TYPE POLYGON + CLASSITEM "oorspronkelijk_bouwjaar" + LABELITEM "oorspronkelijk_bouwjaar" + TEMPLATE 'fooOnlyForWMSGetFeatureInfo.html' + PROJECTION + 'init=epsg:28992' + END + METADATA + 'ows_title' '2025 of nieuwer' + 'ows_group_title' 'Panden naar bouwjaar' + 'wms_include_items' 'all' + 'ows_abstract' 'BAG panden van de gemeente Amsterdam, met leeftijd codering' + 'gml_featureid' 'ID' + 'gml_geometries' 'geometry' + 'gml_geometry_type' 'polygon' + 'gml_include_items' 'all' + END + CLASS + NAME '2025 of nieuwer' + STYLE + COLOR '#002D4F' + OPACITY 50 + OUTLINECOLOR '#002D4F' + WIDTH 1 + END + LABEL + MINSCALEDENOM 10 + MAXSCALEDENOM 1000 + COLOR 0 0 0 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 3 + FONT 'Ubuntu-M' + TYPE truetype + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + END +END diff --git a/referentiekaarten/header.inc b/referentiekaarten/header.inc index 516be5a3..757f118d 100644 --- a/referentiekaarten/header.inc +++ b/referentiekaarten/header.inc @@ -68,6 +68,7 @@ "ows_accessconstraints" "For internal use only" END + TEMPPATH "/tmp/" IMAGEPATH "/srv/mapserver/tmp_img/" IMAGEURL "/ms_tmp/" BROWSEFORMAT "image/svg+xml"