From d235b175ad42dd32b11ffd1cf19f7a22c5eb5994 Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 22:38:44 +0200 Subject: [PATCH 01/14] Remove init= and redundant whitespace # Conflicts: # workshop/exercises/mapfiles/wcs.map --- workshop/exercises/mapfiles/clusters.map | 170 ++++---- workshop/exercises/mapfiles/contours.map | 122 +++--- workshop/exercises/mapfiles/countries.map | 70 +-- workshop/exercises/mapfiles/lakes.map | 4 +- workshop/exercises/mapfiles/landuse.map | 422 +++++++++---------- workshop/exercises/mapfiles/lines.map | 2 +- workshop/exercises/mapfiles/points.map | 2 +- workshop/exercises/mapfiles/polygons.map | 84 ++-- workshop/exercises/mapfiles/postgis.map | 72 ++-- workshop/exercises/mapfiles/railways.map | 208 ++++----- workshop/exercises/mapfiles/raster.map | 70 +-- workshop/exercises/mapfiles/sld.map | 8 +- workshop/exercises/mapfiles/stars.map | 164 +++---- workshop/exercises/mapfiles/tiles.map | 70 +-- workshop/exercises/mapfiles/vector-tiles.map | 48 +-- workshop/exercises/mapfiles/wfs.map | 4 +- 16 files changed, 759 insertions(+), 761 deletions(-) diff --git a/workshop/exercises/mapfiles/clusters.map b/workshop/exercises/mapfiles/clusters.map index 07c3e5a..f7d0776 100644 --- a/workshop/exercises/mapfiles/clusters.map +++ b/workshop/exercises/mapfiles/clusters.map @@ -1,86 +1,86 @@ -MAP - NAME "Clusters" - EXTENT 26.668678 58.339241 26.796582 58.40941 - UNITS DD - SIZE 800 600 - PROJECTION - "init=epsg:4326" - END - FONTSET "data/fonts/fontset.txt" - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - SYMBOL - NAME "circle" - TYPE ELLIPSE - POINTS - 1 1 - END - FILLED TRUE - END - LAYER - NAME "trees" - STATUS OFF - TYPE POINT - CONNECTIONTYPE OGR - # cluster does not seem to work with the native FLATGEOBUF driver - # CONNECTIONTYPE FLATGEOBUF - # DATA "data/osm/natural.fgb" - - CONNECTION "data/osm/natural.fgb" - CLUSTER - MAXDISTANCE 20 - REGION "ellipse" - END - - # LABELITEM "Cluster_FeatureCount" - - # PROCESSING "CLUSTER_ALGORITHM=SIMPLE" - # PROCESSING "CLUSTER_GET_ALL_SHAPES=OFF" - # PROCESSING "CLUSTER_KEEP_LOCATIONS=OFF" - - CLASSITEM "Cluster_FeatureCount" - - # class for clustered features - CLASS - EXPRESSION ("[Cluster_FeatureCount]" != "1") - STYLE - SIZE 30 - # In MapServer 8.2 we can use an expression for SIZE - # SIZE ([Cluster_FeatureCount] / 3) - SYMBOL "circle" - COLOR "#4A993A" - END - LABEL - FONT "LiberationSans" - TEXT "[Cluster_FeatureCount]" - TYPE TRUETYPE - SIZE 12 - COLOR 255 255 255 - ALIGN CENTER - FORCE TRUE # otherwise numbers can disappear - END - END - - # add a class for non-clustered features - CLASS - STYLE - SIZE 20 - SYMBOL "circle" - COLOR "#4A993A" - END - LABEL - FONT "LiberationSans" - TEXT "1" - TYPE TRUETYPE - SIZE 10 - COLOR 255 255 255 - ALIGN CENTER - END - END - - END +MAP + NAME "Clusters" + EXTENT 26.668678 58.339241 26.796582 58.40941 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + FONTSET "data/fonts/fontset.txt" + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + SYMBOL + NAME "circle" + TYPE ELLIPSE + POINTS + 1 1 + END + FILLED TRUE + END + LAYER + NAME "trees" + STATUS OFF + TYPE POINT + CONNECTIONTYPE OGR + # cluster does not seem to work with the native FLATGEOBUF driver + # CONNECTIONTYPE FLATGEOBUF + # DATA "data/osm/natural.fgb" + + CONNECTION "data/osm/natural.fgb" + CLUSTER + MAXDISTANCE 20 + REGION "ellipse" + END + + # LABELITEM "Cluster_FeatureCount" + + # PROCESSING "CLUSTER_ALGORITHM=SIMPLE" + # PROCESSING "CLUSTER_GET_ALL_SHAPES=OFF" + # PROCESSING "CLUSTER_KEEP_LOCATIONS=OFF" + + CLASSITEM "Cluster_FeatureCount" + + # class for clustered features + CLASS + EXPRESSION ("[Cluster_FeatureCount]" != "1") + STYLE + SIZE 30 + # In MapServer 8.2 we can use an expression for SIZE + # SIZE ([Cluster_FeatureCount] / 3) + SYMBOL "circle" + COLOR "#4A993A" + END + LABEL + FONT "LiberationSans" + TEXT "[Cluster_FeatureCount]" + TYPE TRUETYPE + SIZE 12 + COLOR 255 255 255 + ALIGN CENTER + FORCE TRUE # otherwise numbers can disappear + END + END + + # add a class for non-clustered features + CLASS + STYLE + SIZE 20 + SYMBOL "circle" + COLOR "#4A993A" + END + LABEL + FONT "LiberationSans" + TEXT "1" + TYPE TRUETYPE + SIZE 10 + COLOR 255 255 255 + ALIGN CENTER + END + END + + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/contours.map b/workshop/exercises/mapfiles/contours.map index 9d490f2..9549bf2 100644 --- a/workshop/exercises/mapfiles/contours.map +++ b/workshop/exercises/mapfiles/contours.map @@ -1,62 +1,62 @@ -MAP - NAME "Raster" - EXTENT 26.668678 58.339241 26.796582 58.409410 - UNITS DD - SIZE 800 600 - - IMAGETYPE PNG24 - - PROJECTION - "init=epsg:4326" - END - - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - - LAYER - NAME "dtm" - EXTENT 655000 6470000 660000 6475000 - STATUS OFF - TYPE RASTER - DATA "data/raster/54752_dtm_1m.tif" - PROJECTION - "epsg:3301" - END - - COMPOSITE - OPACITY 50 - END - - INCLUDE "terrain.include" - END - - LAYER - NAME "contours" - EXTENT 655000 6470000 660000 6475000 - STATUS OFF - TYPE LINE - CONNECTIONTYPE CONTOUR - DATA "data/raster/54752_dtm_1m.tif" - PROJECTION - "epsg:3301" - END - - PROCESSING "BANDS=1" - PROCESSING "CONTOUR_ITEM=elevation" - PROCESSING "CONTOUR_INTERVAL=2" - CLASS - STYLE - WIDTH 0.4 - COLOR 50 50 50 - END - END - - - - END - +MAP + NAME "Raster" + EXTENT 26.668678 58.339241 26.796582 58.409410 + UNITS DD + SIZE 800 600 + + IMAGETYPE PNG24 + + PROJECTION + "epsg:4326" + END + + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + + LAYER + NAME "dtm" + EXTENT 655000 6470000 660000 6475000 + STATUS OFF + TYPE RASTER + DATA "data/raster/54752_dtm_1m.tif" + PROJECTION + "epsg:3301" + END + + COMPOSITE + OPACITY 50 + END + + INCLUDE "terrain.include" + END + + LAYER + NAME "contours" + EXTENT 655000 6470000 660000 6475000 + STATUS OFF + TYPE LINE + CONNECTIONTYPE CONTOUR + DATA "data/raster/54752_dtm_1m.tif" + PROJECTION + "epsg:3301" + END + + PROCESSING "BANDS=1" + PROCESSING "CONTOUR_ITEM=elevation" + PROCESSING "CONTOUR_INTERVAL=2" + CLASS + STYLE + WIDTH 0.4 + COLOR 50 50 50 + END + END + + + + END + END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/countries.map b/workshop/exercises/mapfiles/countries.map index 640deda..522fd1a 100644 --- a/workshop/exercises/mapfiles/countries.map +++ b/workshop/exercises/mapfiles/countries.map @@ -1,36 +1,36 @@ -# Comment can be added using a hash (#) at the start of a line -# All Mapfiles begin with a MAP block, and finish with a closing END -MAP - NAME "mymap" - - # the default size used for image output - SIZE 800 400 - - # the projection used for the map - PROJECTION - "init=epsg:4326" - END - - - # the extent of the map in the projection - EXTENT -180 -90 180 90 - - LAYER - NAME "countries" # the name of the layer - TYPE POLYGON # the layer will display polygons - STATUS DEFAULT # this means the layer will always be displayed - - # we will use a FlatGeoBuf country dataset - CONNECTIONTYPE FLATGEOBUF - DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" - - # we will use a single class for all country polygons - CLASS - STYLE - COLOR 60 179 113 # the colour of the polygons - OUTLINECOLOR 255 255 255 # the colour of the polygon outline - WIDTH 1 # the width of the polygon outline - END - END - END +# Comment can be added using a hash (#) at the start of a line +# All Mapfiles begin with a MAP block, and finish with a closing END +MAP + NAME "mymap" + + # the default size used for image output + SIZE 800 400 + + # the projection used for the map + PROJECTION + "epsg:4326" + END + + + # the extent of the map in the projection + EXTENT -180 -90 180 90 + + LAYER + NAME "countries" # the name of the layer + TYPE POLYGON # the layer will display polygons + STATUS DEFAULT # this means the layer will always be displayed + + # we will use a FlatGeoBuf country dataset + CONNECTIONTYPE FLATGEOBUF + DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" + + # we will use a single class for all country polygons + CLASS + STYLE + COLOR 60 179 113 # the colour of the polygons + OUTLINECOLOR 255 255 255 # the colour of the polygon outline + WIDTH 1 # the width of the polygon outline + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/lakes.map b/workshop/exercises/mapfiles/lakes.map index 546d02f..570ed3a 100644 --- a/workshop/exercises/mapfiles/lakes.map +++ b/workshop/exercises/mapfiles/lakes.map @@ -3,9 +3,9 @@ MAP EXTENT 393234.3937012631 5208170.531190613 495403.1713263091 5303964.876754144 SIZE 800 600 PROJECTION - "init=epsg:26915" + "epsg:26915" END - FONTSET "data/fonts/fontset.txt" + FONTSET "data/fonts/fontset.txt" WEB METADATA "ows_enable_request" "*" diff --git a/workshop/exercises/mapfiles/landuse.map b/workshop/exercises/mapfiles/landuse.map index 7a184ce..316a156 100644 --- a/workshop/exercises/mapfiles/landuse.map +++ b/workshop/exercises/mapfiles/landuse.map @@ -1,213 +1,211 @@ -MAP - NAME "Landuse" - EXTENT 26.668678 58.339241 26.796582 58.40941 - UNITS DD - SIZE 800 600 - PROJECTION - "init=epsg:4326" - END - SYMBOL - NAME 'octahedron' - TYPE VECTOR - POINTS - 20 18 - 22 18 - 24 20 - 24 22 - 22 24 - 20 24 - 18 22 - 18 20 - 20 18 - END - FILLED FALSE -END - SYMBOL - NAME "marsh_isom" - TYPE VECTOR - FILLED TRUE - POINTS - 0 0.6666666 - 100 0.666666 - 100 1 - 0 1 - 0 0.66666666 - END - END - SYMBOL - NAME "uncrossablemarsh_isom" - TYPE VECTOR - FILLED TRUE - POINTS - 0 0.25 - 100 0.25 - 100 0.5 - 0 0.5 - 0 0.25 - END - END - SYMBOL - NAME "indistinctmarsh_isom" - TYPE VECTOR - FILLED TRUE - POINTS - 0 0.2 - 0.45 0.2 - 0.45 0.3 - 0 0.3 - 0 0.2 - -99 -99 - 0.7 0.2 - 1.15 0.2 - 1.15 0.3 - 0.7 0.3 - 0.7 0.2 - -99 -99 - 0.125 0.5 - 1.025 0.5 - 1.025 0.6 - 0.125 0.6 - 0.125 0.5 - END - END - SYMBOL - NAME "scrub" - TYPE VECTOR - POINTS - 88 122 - 90 122 - 92 124 - 92 126 - 90 128 - 88 128 - 86 126 - 86 124 - 88 122 - -99 -99 - 120 122 - 122 122 - 124 124 - 124 126 - 122 128 - 120 128 - 118 126 - 118 124 - 120 122 - -99 -99 - 106 84 - 108 84 - 110 86 - 110 88 - 108 90 - 106 90 - 104 88 - 104 86 - 106 84 - -99 -99 - 107 102 - 109 102 - 111 106 - 111 108 - 109 110 - 107 110 - 103 108 - 103 106 - 107 102 - -99 -99 - END - FILLED FALSE - END - SYMBOL - NAME "wetland2" - TYPE SVG - IMAGE "data/icons/wetland.svg" - END - SYMBOL - NAME "grass" - TYPE PIXMAP - IMAGE "resources/fills/grass_fill.png" - END - SYMBOL - NAME "tree" - TYPE SVG - IMAGE "data/icons/tree.svg" - END - SYMBOL - NAME "wetland" - TYPE PIXMAP - IMAGE "resources/fills/blue-paper.png" - END - SYMBOL - NAME "sand" - TYPE PIXMAP - IMAGE "resources/fills/sand.png" - END - SYMBOL - NAME "paper" - TYPE PIXMAP - IMAGE "resources/fills/paper.png" - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - LAYER - NAME "landuse" - STATUS OFF - TYPE POLYGON - CONNECTIONTYPE FLATGEOBUF - DATA "data/osm/landuse_a.fgb" - CLASSITEM "fclass" - CLASS - EXPRESSION "grass" - STYLE - SYMBOL "wetland" - END - END - - CLASS - EXPRESSION {park,grass} - STYLE - SYMBOL "grass" - END - END - CLASS - EXPRESSION "residential" - STYLE - SYMBOL "paper" - END - END - CLASS - EXPRESSION "forest" - - STYLE - #COLOR 231 255 170 - COLOR 34 139 34 - END - STYLE - SYMBOL "tree" # "octahedron" - SIZE 10 - COLOR 100 100 100 - END - - #STYLE - # SYMBOL "paper" - #END - END - #CLASS - # STYLE - # SYMBOL "marsh_isom" # uncrossablemarsh_isom indistinctmarsh_isom marsh_isom - # SIZE 10 - # # COLOR 100 100 100 - # END - #END - CLASS - STYLE - OUTLINECOLOR 150 150 150 - OUTLINEWIDTH 0.5 - END - END - END +MAP + NAME "Landuse" + EXTENT 26.668678 58.339241 26.796582 58.40941 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + SYMBOL + NAME 'octahedron' + TYPE VECTOR + POINTS + 20 18 + 22 18 + 24 20 + 24 22 + 22 24 + 20 24 + 18 22 + 18 20 + 20 18 + END + FILLED FALSE + END + SYMBOL + NAME "marsh_isom" + TYPE VECTOR + FILLED TRUE + POINTS + 0 0.6666666 + 100 0.666666 + 100 1 + 0 1 + 0 0.66666666 + END + END + SYMBOL + NAME "uncrossablemarsh_isom" + TYPE VECTOR + FILLED TRUE + POINTS + 0 0.25 + 100 0.25 + 100 0.5 + 0 0.5 + 0 0.25 + END + END + SYMBOL + NAME "indistinctmarsh_isom" + TYPE VECTOR + FILLED TRUE + POINTS + 0 0.2 + 0.45 0.2 + 0.45 0.3 + 0 0.3 + 0 0.2 + -99 -99 + 0.7 0.2 + 1.15 0.2 + 1.15 0.3 + 0.7 0.3 + 0.7 0.2 + -99 -99 + 0.125 0.5 + 1.025 0.5 + 1.025 0.6 + 0.125 0.6 + 0.125 0.5 + END + END + SYMBOL + NAME "scrub" + TYPE VECTOR + POINTS + 88 122 + 90 122 + 92 124 + 92 126 + 90 128 + 88 128 + 86 126 + 86 124 + 88 122 + -99 -99 + 120 122 + 122 122 + 124 124 + 124 126 + 122 128 + 120 128 + 118 126 + 118 124 + 120 122 + -99 -99 + 106 84 + 108 84 + 110 86 + 110 88 + 108 90 + 106 90 + 104 88 + 104 86 + 106 84 + -99 -99 + 107 102 + 109 102 + 111 106 + 111 108 + 109 110 + 107 110 + 103 108 + 103 106 + 107 102 + -99 -99 + END + FILLED FALSE + END + SYMBOL + NAME "wetland2" + TYPE SVG + IMAGE "data/icons/wetland.svg" + END + SYMBOL + NAME "grass" + TYPE PIXMAP + IMAGE "resources/fills/grass_fill.png" + END + SYMBOL + NAME "tree" + TYPE SVG + IMAGE "data/icons/tree.svg" + END + SYMBOL + NAME "wetland" + TYPE PIXMAP + IMAGE "resources/fills/blue-paper.png" + END + SYMBOL + NAME "sand" + TYPE PIXMAP + IMAGE "resources/fills/sand.png" + END + SYMBOL + NAME "paper" + TYPE PIXMAP + IMAGE "resources/fills/paper.png" + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + LAYER + NAME "landuse" + STATUS OFF + TYPE POLYGON + CONNECTIONTYPE FLATGEOBUF + DATA "data/osm/landuse_a.fgb" + CLASSITEM "fclass" + CLASS + EXPRESSION "grass" + STYLE + SYMBOL "wetland" + END + END + + CLASS + EXPRESSION {park,grass} + STYLE + SYMBOL "grass" + END + END + CLASS + EXPRESSION "residential" + STYLE + SYMBOL "paper" + END + END + CLASS + EXPRESSION "forest" + STYLE + #COLOR 231 255 170 + COLOR 34 139 34 + END + STYLE + SYMBOL "tree" # "octahedron" + SIZE 10 + COLOR 100 100 100 + END + #STYLE + # SYMBOL "paper" + #END + END + #CLASS + # STYLE + # SYMBOL "marsh_isom" # uncrossablemarsh_isom indistinctmarsh_isom marsh_isom + # SIZE 10 + # # COLOR 100 100 100 + # END + #END + CLASS + STYLE + OUTLINECOLOR 150 150 150 + OUTLINEWIDTH 0.5 + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/lines.map b/workshop/exercises/mapfiles/lines.map index 4033c38..d2b0c48 100644 --- a/workshop/exercises/mapfiles/lines.map +++ b/workshop/exercises/mapfiles/lines.map @@ -4,7 +4,7 @@ MAP SIZE 800 600 PROJECTION - "init=epsg:4326" + "epsg:4326" END WEB diff --git a/workshop/exercises/mapfiles/points.map b/workshop/exercises/mapfiles/points.map index 552b9c2..70e1e30 100644 --- a/workshop/exercises/mapfiles/points.map +++ b/workshop/exercises/mapfiles/points.map @@ -3,7 +3,7 @@ MAP EXTENT 17.77 43.31 17.83 43.36 SIZE 800 600 PROJECTION - "init=epsg:4326" + "epsg:4326" END FONTSET "data/fonts/fontset.txt" WEB diff --git a/workshop/exercises/mapfiles/polygons.map b/workshop/exercises/mapfiles/polygons.map index 627cfdc..6ab9453 100644 --- a/workshop/exercises/mapfiles/polygons.map +++ b/workshop/exercises/mapfiles/polygons.map @@ -1,43 +1,43 @@ -MAP - NAME "Buildings" - EXTENT 17.77 43.31 17.83 43.36 - UNITS DD - SIZE 800 600 - PROJECTION - "init=epsg:4326" - END - WEB - METADATA - "ows_title" "OSM Buildings" - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - LAYER - NAME "buildings" - TYPE POLYGON - STATUS OFF - CONNECTIONTYPE OGR - # CONNECTIONTYPE FLATGEOBUF - # DATA "data/osm/mostar/buildings_a.fgb" - CONNECTION "data/osm/mostar/buildings_a.fgb" - CLASSGROUP "university" # we can switch the default set of CLASSes here - CLASS - NAME "University" # this value is used for Legend titles for the CLASS - GROUP "university" - EXPRESSION ( "[type]" = "university" ) - STYLE - COLOR 255 0 0 - OUTLINECOLOR 0 0 0 - END - END - CLASS - NAME "Other" - GROUP "other" - STYLE - COLOR 246 241 223 - OUTLINECOLOR 0 0 0 - END - END - END +MAP + NAME "Buildings" + EXTENT 17.77 43.31 17.83 43.36 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + WEB + METADATA + "ows_title" "OSM Buildings" + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + LAYER + NAME "buildings" + TYPE POLYGON + STATUS OFF + CONNECTIONTYPE OGR + # CONNECTIONTYPE FLATGEOBUF + # DATA "data/osm/mostar/buildings_a.fgb" + CONNECTION "data/osm/mostar/buildings_a.fgb" + CLASSGROUP "university" # we can switch the default set of CLASSes here + CLASS + NAME "University" # this value is used for Legend titles for the CLASS + GROUP "university" + EXPRESSION ( "[type]" = "university" ) + STYLE + COLOR 255 0 0 + OUTLINECOLOR 0 0 0 + END + END + CLASS + NAME "Other" + GROUP "other" + STYLE + COLOR 246 241 223 + OUTLINECOLOR 0 0 0 + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/postgis.map b/workshop/exercises/mapfiles/postgis.map index fda1fb1..33de26a 100644 --- a/workshop/exercises/mapfiles/postgis.map +++ b/workshop/exercises/mapfiles/postgis.map @@ -1,37 +1,37 @@ -MAP - NAME "PostGIS" - EXTENT 26.668678 58.339241 26.796582 58.409410 - UNITS DD - SIZE 800 600 - - PROJECTION - "init=epsg:4326" - END - - WEB - METADATA - "ows_title" "OSM Water" - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - - LAYER - NAME "water" - STATUS OFF - TYPE POLYGON - CONNECTIONTYPE POSTGIS - CONNECTION "host=db user=docker password=docker port=5432 dbname=gis" - DATA "wkb_geometry FROM water_a USING UNIQUE ogc_fid USING srid=4326" - - PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance - CLASS - GROUP "default" - STYLE - COLOR "#d4f1f9" - OUTLINECOLOR "#918151" - END - END - END - +MAP + NAME "PostGIS" + EXTENT 26.668678 58.339241 26.796582 58.409410 + UNITS DD + SIZE 800 600 + + PROJECTION + "epsg:4326" + END + + WEB + METADATA + "ows_title" "OSM Water" + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + + LAYER + NAME "water" + STATUS OFF + TYPE POLYGON + CONNECTIONTYPE POSTGIS + CONNECTION "host=db user=docker password=docker port=5432 dbname=gis" + DATA "wkb_geometry FROM water_a USING UNIQUE ogc_fid USING srid=4326" + + PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance + CLASS + GROUP "default" + STYLE + COLOR "#d4f1f9" + OUTLINECOLOR "#918151" + END + END + END + END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/railways.map b/workshop/exercises/mapfiles/railways.map index 5617b74..6abc533 100644 --- a/workshop/exercises/mapfiles/railways.map +++ b/workshop/exercises/mapfiles/railways.map @@ -1,105 +1,105 @@ -MAP - NAME "Railways" - EXTENT 26.668678 58.339241 26.796582 58.40941 - UNITS DD - SIZE 800 600 - PROJECTION - "init=epsg:4326" - END - SYMBOL - NAME "vertline" # we can use this to reference the SYMBOL in STYLEs - TYPE VECTOR - FILLED FALSE # the symbol will be treated as a LINE - POINTS - 0 0 - 0 10 - END - END - SYMBOL - NAME "square" - TYPE VECTOR - FILLED TRUE # the symbol will be treated as a POLYGON - POINTS - 0 0 - 0 10 - 10 10 - 10 0 - END - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - LAYER - NAME "tracks" - STATUS OFF - TYPE LINE - CONNECTIONTYPE FLATGEOBUF - DATA "data/osm/railways.fgb" - CLASS - EXPRESSION ( "[name]" != "" ) - STYLE - COLOR 102 102 102 - WIDTH 4.0 - END - STYLE - COLOR 255 255 255 - WIDTH 2.0 - LINECAP BUTT - PATTERN - 8 12 - END - END - LABEL - TEXT "[name]" - COLOR 102 102 102 - SIZE 12 - ANGLE FOLLOW - OFFSET 8 -99 - END - END - CLASS - STYLE - COLOR 102 102 102 - WIDTH 0.8 - END - STYLE - COLOR 102 102 102 - SYMBOL "vertline" - WIDTH 0.4 - GAP -50 - END - END - END - - LAYER - NAME "stops" - STATUS OFF - TYPE POINT - TEMPLATE "void" - METADATA - "gml_include_items" "all" - "gml_featureid" "osm_id" - END - CONNECTIONTYPE FLATGEOBUF - DATA "data/osm/transport.fgb" - CLASSITEM "fclass" - CLASS - EXPRESSION {railway_station,railway_halt} - STYLE - SYMBOL "square" - SIZE 16 - COLOR 102 102 102 - END - LABEL - TEXT "[name]" - POSITION ur - COLOR 102 102 102 - SIZE 18 - END - END - END - END +MAP + NAME "Railways" + EXTENT 26.668678 58.339241 26.796582 58.40941 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + SYMBOL + NAME "vertline" # we can use this to reference the SYMBOL in STYLEs + TYPE VECTOR + FILLED FALSE # the symbol will be treated as a LINE + POINTS + 0 0 + 0 10 + END + END + SYMBOL + NAME "square" + TYPE VECTOR + FILLED TRUE # the symbol will be treated as a POLYGON + POINTS + 0 0 + 0 10 + 10 10 + 10 0 + END + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + LAYER + NAME "tracks" + STATUS OFF + TYPE LINE + CONNECTIONTYPE FLATGEOBUF + DATA "data/osm/railways.fgb" + CLASS + EXPRESSION ( "[name]" != "" ) + STYLE + COLOR 102 102 102 + WIDTH 4.0 + END + STYLE + COLOR 255 255 255 + WIDTH 2.0 + LINECAP BUTT + PATTERN + 8 12 + END + END + LABEL + TEXT "[name]" + COLOR 102 102 102 + SIZE 12 + ANGLE FOLLOW + OFFSET 8 -99 + END + END + CLASS + STYLE + COLOR 102 102 102 + WIDTH 0.8 + END + STYLE + COLOR 102 102 102 + SYMBOL "vertline" + WIDTH 0.4 + GAP -50 + END + END + END + + LAYER + NAME "stops" + STATUS OFF + TYPE POINT + TEMPLATE "void" + METADATA + "gml_include_items" "all" + "gml_featureid" "osm_id" + END + CONNECTIONTYPE FLATGEOBUF + DATA "data/osm/transport.fgb" + CLASSITEM "fclass" + CLASS + EXPRESSION {railway_station,railway_halt} + STYLE + SYMBOL "square" + SIZE 16 + COLOR 102 102 102 + END + LABEL + TEXT "[name]" + POSITION ur + COLOR 102 102 102 + SIZE 18 + END + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/raster.map b/workshop/exercises/mapfiles/raster.map index 94e663c..176a9d3 100644 --- a/workshop/exercises/mapfiles/raster.map +++ b/workshop/exercises/mapfiles/raster.map @@ -1,36 +1,36 @@ -MAP - NAME "Raster" - EXTENT 26.668678 58.339241 26.796582 58.409410 - UNITS DD - SIZE 800 600 - - IMAGETYPE PNG24 - - PROJECTION - "init=epsg:4326" - END - - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - - LAYER - NAME "dtm" - EXTENT 655000 6470000 660000 6475000 - STATUS OFF - TYPE RASTER - # Map data: Estonian Land Board 2024 - DATA "data/raster/54752_dtm_1m.tif" - PROJECTION - "epsg:3301" - END - COMPOSITE - OPACITY 80 - END - INCLUDE "terrain.include" - END - +MAP + NAME "Raster" + EXTENT 26.668678 58.339241 26.796582 58.409410 + UNITS DD + SIZE 800 600 + + IMAGETYPE PNG24 + + PROJECTION + "epsg:4326" + END + + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + + LAYER + NAME "dtm" + EXTENT 655000 6470000 660000 6475000 + STATUS OFF + TYPE RASTER + # Map data: Estonian Land Board 2024 + DATA "data/raster/54752_dtm_1m.tif" + PROJECTION + "epsg:3301" + END + COMPOSITE + OPACITY 80 + END + INCLUDE "terrain.include" + END + END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/sld.map b/workshop/exercises/mapfiles/sld.map index 544a2a0..242389a 100644 --- a/workshop/exercises/mapfiles/sld.map +++ b/workshop/exercises/mapfiles/sld.map @@ -3,8 +3,8 @@ MAP EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 #EXTENT -180 -90 180 90 PROJECTION - #"init=epsg:4326" - "init=epsg:3857" + #"epsg:4326" + "epsg:3857" END WEB METADATA @@ -26,7 +26,7 @@ MAP DEBUG 5 TYPE POLYGON PROJECTION - "init=epsg:4326" + "epsg:4326" END STATUS ON @@ -53,7 +53,7 @@ MAP # NAME "cities" # TYPE POINT # PROJECTION - # "init=epsg:4326" + # "epsg:4326" # END # STATUS ON # CONNECTIONTYPE OGR diff --git a/workshop/exercises/mapfiles/stars.map b/workshop/exercises/mapfiles/stars.map index 3e7e763..42c5ba4 100644 --- a/workshop/exercises/mapfiles/stars.map +++ b/workshop/exercises/mapfiles/stars.map @@ -1,83 +1,83 @@ -MAP - NAME "Stars!" - EXTENT -42.33528830884047 -47.25854720678822 43.404846801027695 24.75957883214916 - PROJECTION - "init=epsg:4326" - END - SIZE 400 400 - FONTSET "data/fonts/fontset.txt" - SYMBOL - NAME "circle" - TYPE ELLIPSE - FILLED TRUE - POINTS - 1 1 - END - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - IMAGECOLOR 0 0 0 - LAYER - TYPE LINE - PROJECTION - AUTO - END - NAME "constellations" - STATUS OFF - CONNECTIONTYPE OGR - CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/constellations.lines.json" - LABELITEM "Id" - CLASS - LABEL - COLOR "#15f4ee" - FONT "LiberationMono" - TYPE TRUETYPE - SIZE 10 - POSITION AUTO - PARTIALS FALSE - END - STYLE - COLOR "#15f4ee" - WIDTH 1 - END - END - END - LAYER - TYPE POINT - NAME "stars" - STATUS OFF - CONNECTIONTYPE OGR - CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" - PROCESSING "NATIVE_FILTER=mag>12" - COMPOSITE - COMPFILTER "blur(5)" - OPACITY 90 - END - CLASS - STYLE - SYMBOL "circle" - COLOR "#ffcd3c" - SIZE [mag] - END - END - END - LAYER - TYPE POINT - NAME "stars2" - STATUS OFF - CONNECTIONTYPE OGR - CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" - PROCESSING "NATIVE_FILTER=mag>10" - CLASS - STYLE - SYMBOL "circle" - COLOR 255 255 255 - SIZE 2 - END - END - END +MAP + NAME "Stars!" + EXTENT -42.33528830884047 -47.25854720678822 43.404846801027695 24.75957883214916 + PROJECTION + "epsg:4326" + END + SIZE 400 400 + FONTSET "data/fonts/fontset.txt" + SYMBOL + NAME "circle" + TYPE ELLIPSE + FILLED TRUE + POINTS + 1 1 + END + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + IMAGECOLOR 0 0 0 + LAYER + TYPE LINE + PROJECTION + AUTO + END + NAME "constellations" + STATUS OFF + CONNECTIONTYPE OGR + CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/constellations.lines.json" + LABELITEM "Id" + CLASS + LABEL + COLOR "#15f4ee" + FONT "LiberationMono" + TYPE TRUETYPE + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + STYLE + COLOR "#15f4ee" + WIDTH 1 + END + END + END + LAYER + TYPE POINT + NAME "stars" + STATUS OFF + CONNECTIONTYPE OGR + CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" + PROCESSING "NATIVE_FILTER=mag>12" + COMPOSITE + COMPFILTER "blur(5)" + OPACITY 90 + END + CLASS + STYLE + SYMBOL "circle" + COLOR "#ffcd3c" + SIZE [mag] + END + END + END + LAYER + TYPE POINT + NAME "stars2" + STATUS OFF + CONNECTIONTYPE OGR + CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" + PROCESSING "NATIVE_FILTER=mag>10" + CLASS + STYLE + SYMBOL "circle" + COLOR 255 255 255 + SIZE 2 + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/tiles.map b/workshop/exercises/mapfiles/tiles.map index f54e91c..eb637ee 100644 --- a/workshop/exercises/mapfiles/tiles.map +++ b/workshop/exercises/mapfiles/tiles.map @@ -1,36 +1,36 @@ -MAP - NAME "Tiles" - EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 - PROJECTION - "init=epsg:3857" - END - SIZE 256 256 - WEB - METADATA - "tile_map_edge_buffer" "10" - "tile_metatile_level" "0" - END - END - IMAGECOLOR "#ADD8E6" - LAYER - NAME "countries" - TYPE POLYGON - STATUS OFF - CONNECTIONTYPE FLATGEOBUF - DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" - EXTENT -180.0 -90.0 180.0 90 - PROJECTION - "init=epsg:4326" - END - CLASS - STYLE - COLOR 60 179 113 - OUTLINECOLOR 255 255 255 - OUTLINEWIDTH 0.1 - END - #LABEL - # TEXT "[name]" - #END - END - END +MAP + NAME "Tiles" + EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 + PROJECTION + "epsg:3857" + END + SIZE 256 256 + WEB + METADATA + "tile_map_edge_buffer" "10" + "tile_metatile_level" "0" + END + END + IMAGECOLOR "#ADD8E6" + LAYER + NAME "countries" + TYPE POLYGON + STATUS OFF + CONNECTIONTYPE FLATGEOBUF + DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" + EXTENT -180.0 -90.0 180.0 90 + PROJECTION + "epsg:4326" + END + CLASS + STYLE + COLOR 60 179 113 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 0.1 + END + #LABEL + # TEXT "[name]" + #END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/vector-tiles.map b/workshop/exercises/mapfiles/vector-tiles.map index 01a7785..4fa3ef2 100644 --- a/workshop/exercises/mapfiles/vector-tiles.map +++ b/workshop/exercises/mapfiles/vector-tiles.map @@ -1,25 +1,25 @@ -MAP - NAME "Vector Tiles" - EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 - SIZE 256 256 - PROJECTION - "init=epsg:3857" - END - LAYER - NAME "countries" - TYPE POLYGON - PROJECTION - "init=epsg:4326" - END - EXTENT -180.0 -90.0 180.0 90 - STATUS OFF - # If want to include attributes in the tiles add - # the METADATA block - METADATA - "gml_include_items" "all" - "gml_types" "auto" - END - CONNECTIONTYPE FLATGEOBUF - DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" - END +MAP + NAME "Vector Tiles" + EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 + SIZE 256 256 + PROJECTION + "epsg:3857" + END + LAYER + NAME "countries" + TYPE POLYGON + PROJECTION + "epsg:4326" + END + EXTENT -180.0 -90.0 180.0 90 + STATUS OFF + # If want to include attributes in the tiles add + # the METADATA block + METADATA + "gml_include_items" "all" + "gml_types" "auto" + END + CONNECTIONTYPE FLATGEOBUF + DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/wfs.map b/workshop/exercises/mapfiles/wfs.map index f1d351a..0945f14 100644 --- a/workshop/exercises/mapfiles/wfs.map +++ b/workshop/exercises/mapfiles/wfs.map @@ -3,7 +3,7 @@ MAP EXTENT -180 -90 180 90 SIZE 400 400 # PROJECTION - "init=epsg:4326" + "epsg:4326" END OUTPUTFORMAT @@ -28,7 +28,7 @@ MAP NAME "places" TYPE POINT PROJECTION - "init=epsg:4326" + "epsg:4326" END EXTENT -180.0 -90.0 180.0 90 STATUS OFF From 35ff3f1a05a4ff9a49c4f442db0d71426fc266c5 Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 23:00:00 +0200 Subject: [PATCH 02/14] Fix syntax --- workshop/exercises/mapfiles/railways.map | 1 - 1 file changed, 1 deletion(-) diff --git a/workshop/exercises/mapfiles/railways.map b/workshop/exercises/mapfiles/railways.map index 6abc533..435ec87 100644 --- a/workshop/exercises/mapfiles/railways.map +++ b/workshop/exercises/mapfiles/railways.map @@ -100,6 +100,5 @@ MAP SIZE 18 END END - END END END \ No newline at end of file From 5fbcdf9821d766ffc163cd2404d1b42bce5b59ba Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 23:01:18 +0200 Subject: [PATCH 03/14] Update to latest MapServer # Conflicts: # docker/Dockerfile # docker/ReadMe.md --- docker/Dockerfile | 6 +++++- docker/ReadMe.md | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index c529b74..cff9fbc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/osgeo/gdal:ubuntu-full-3.12.2 AS gdal +FROM ghcr.io/osgeo/gdal:ubuntu-full-3.13.1 AS gdal # see https://github.com/OSGeo/gdal/tree/master/docker#ubuntu-based FROM gdal AS builder @@ -73,15 +73,19 @@ RUN cmake .. \ -DWITH_CAIRO=1 \ -DWITH_RSVG=1 \ -DUSE_PROJ=1 \ + -DPROJ_INCLUDE_DIR=/usr/local/gdal-internal/include \ + -DPROJ_LIBRARY=/usr/local/gdal-internal/lib/libinternalproj.so \ -DUSE_WFS_SVR=1 \ -DUSE_OGCAPI_SVR=1 \ -DWITH_ORACLESPATIAL=0 \ -DWITH_PYTHON=1 \ -DWITH_MSSQL2008=0 +# Run the make command for pythonmapscript-wheel RUN cmake --build . --target pythonmapscript-wheel RUN ninja install + FROM gdal AS runner LABEL maintainer="sethg@geographika.co.uk" SHELL ["/bin/bash", "-o", "pipefail", "-cux"] diff --git a/docker/ReadMe.md b/docker/ReadMe.md index 6f59450..11e3a07 100644 --- a/docker/ReadMe.md +++ b/docker/ReadMe.md @@ -13,6 +13,9 @@ start "C:\Program Files\Docker\Docker\Docker Desktop.exe" cd D:\GitHub\getting-started-with-mapserver\docker +# MAPSERVER_BRANCH=main +# MAPSERVER_BRANCH=branch-8-6 + docker build ` --tag "mapserver-workshop" ` --target=runner ` @@ -49,8 +52,13 @@ Also check https://status.canonical.com/ ## Testing ``` +docker pull geographika/mapserver-workshop:latest +# docker stop mapserver-workshop +# docker rm mapserver-workshop +docker run -it --name mapserver-workshop geographika/mapserver-workshop:latest bash docker start mapserver-workshop docker exec -it mapserver-workshop bash +# mapserv -v ``` ## Build the Demo Image From b6f5ebb96cc16edce6621ed285681ce2ed607914 Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 23:01:49 +0200 Subject: [PATCH 04/14] Set MS_ONLINERESOURCE to root --- workshop/exercises/mapfiles/mapserver.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workshop/exercises/mapfiles/mapserver.conf b/workshop/exercises/mapfiles/mapserver.conf index 3dea138..77e1d53 100644 --- a/workshop/exercises/mapfiles/mapserver.conf +++ b/workshop/exercises/mapfiles/mapserver.conf @@ -7,6 +7,9 @@ CONFIG # Environment variables (see https://mapserver.org/environment_variables.html) # ENV + + MS_ONLINERESOURCE "/" + # # Limit Mapfile Access # From f998a905e6181e87fe98821bf28f2ca2e2bd9cc1 Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 23:03:12 +0200 Subject: [PATCH 05/14] Update to latest GDAL CLI commands --- workshop/content/docs/inputs/databases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workshop/content/docs/inputs/databases.md b/workshop/content/docs/inputs/databases.md index 3ac85c9..e5dce50 100644 --- a/workshop/content/docs/inputs/databases.md +++ b/workshop/content/docs/inputs/databases.md @@ -60,9 +60,9 @@ docker exec -it mapserver2 bash # navigate to the folder containing the OSM FlatGeobuf files cd /etc/mapserver/data/osm # import the water polygons dataset to the Postgres database in the Postgres Docker image -ogr2ogr -f "PostgreSQL" PG:"dbname=gis user=docker password=docker host=db port=5432" -nln water_a water_a.fgb +gdal vector convert water_a.fgb PG:"dbname=gis user=docker password=docker host=db port=5432" --output-layer water_a --overwrite # now check the data details in the database -ogrinfo PG:"host=db user=docker password=docker dbname=gis port=5432" water_a -summary +gdal vector info PG:"host=db user=docker password=docker dbname=gis port=5432" --layer water_a --summary ``` ## Code From c2b240373a3d0c638364081d1fc966c674c5dc7e Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 23:03:50 +0200 Subject: [PATCH 06/14] Update Docker images and fix port no. --- workshop/exercises/docker-db-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workshop/exercises/docker-db-compose.yml b/workshop/exercises/docker-db-compose.yml index 00c2478..b451598 100644 --- a/workshop/exercises/docker-db-compose.yml +++ b/workshop/exercises/docker-db-compose.yml @@ -29,10 +29,10 @@ services: mapserver: - image: camptocamp/mapserver:8.4-gdal3.10 + image: geographika/mapserver-workshop:latest container_name: mapserver2 ports: - - 7000:80 + - 7000:8080 environment: MAPSERVER_CONFIG_FILE: "/etc/mapserver/mapserver.conf" volumes: @@ -56,7 +56,7 @@ services: # from https://github.com/kartoza/docker-postgis/blob/develop/docker-compose.yml db: - image: kartoza/postgis:17-3.5 + image: kartoza/postgis:18-3.6 container_name: db volumes: - ./postgis-data:/var/lib/postgresql From 5d13eed63435c1d867f0aae707da784e821c98f1 Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 23:04:21 +0200 Subject: [PATCH 07/14] Disable unused services --- workshop/exercises/mapfiles/ogcapi-features.map | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/workshop/exercises/mapfiles/ogcapi-features.map b/workshop/exercises/mapfiles/ogcapi-features.map index 6767f03..79f7aa2 100644 --- a/workshop/exercises/mapfiles/ogcapi-features.map +++ b/workshop/exercises/mapfiles/ogcapi-features.map @@ -5,17 +5,18 @@ MAP SIZE 600 600 PROJECTION - "init=epsg:4326" + "epsg:4326" END WEB METADATA "ows_title" "OSM Features" - "ows_enable_request" "*" # this enables all OGC requests + # "ows_enable_request" "*" # this enables all OGC requests "ows_srs" "EPSG:4326 EPSG:3857" "oga_onlineresource" "/ogcapi-features/ogcapi" # "oga_html_template_directory" - # "oga_enable_request" "*" + "oga_enable_request" "*" + "ms_enable_modes" "!*" # disable CGI modes END END From 06a0c0e801144c171ad682776aaca59beaf7298b Mon Sep 17 00:00:00 2001 From: sethg Date: Fri, 5 Jun 2026 23:05:15 +0200 Subject: [PATCH 08/14] Add Mapfile validation checks # Conflicts: # .github/workflows/tests.yml --- .github/workflows/tests.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 96d5b6e..afd621a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,13 +1,14 @@ -name: Test documentation ⚙️ +name: Test documentation and Mapfiles ⚙️ on: pull_request: paths: - 'workshop/content/**' + - 'workshop/exercises/mapfiles/**' defaults: run: - working-directory: workshop/content + working-directory: workshop jobs: build: @@ -22,5 +23,9 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt + pip install mappyfile + - name: Test Mapfiles + run: | + mappyfile validate exercises/mapfiles/**/*.map - name: Deploy 📦 - run: zensical build --clean --strict + run: zensical build --clean --strict From 124b95c8ce1e6f8044f55e9de1fb9707dc54da15 Mon Sep 17 00:00:00 2001 From: sethg Date: Sat, 6 Jun 2026 12:16:43 +0200 Subject: [PATCH 09/14] Update notes --- .github/workflows/tests.yml | 46 ++++++++++++++++++------------------- docker/ReadMe.md | 11 +-------- 2 files changed, 24 insertions(+), 33 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index afd621a..5e9fe7b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,31 +1,31 @@ name: Test documentation and Mapfiles ⚙️ - -on: - pull_request: - paths: - - 'workshop/content/**' + +on: + pull_request: + paths: + - 'workshop/content/**' - 'workshop/exercises/mapfiles/**' - -defaults: - run: + +defaults: + run: working-directory: workshop - -jobs: - build: - name: Test documentation build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 - with: - python-version: '3.x' - - name: Install requirements 📦 - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt + +jobs: + build: + name: Test documentation build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: '3.x' + - name: Install requirements 📦 + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt pip install mappyfile - name: Test Mapfiles run: | mappyfile validate exercises/mapfiles/**/*.map - - name: Deploy 📦 + - name: Deploy 📦 run: zensical build --clean --strict diff --git a/docker/ReadMe.md b/docker/ReadMe.md index 11e3a07..79df47f 100644 --- a/docker/ReadMe.md +++ b/docker/ReadMe.md @@ -16,24 +16,15 @@ cd D:\GitHub\getting-started-with-mapserver\docker # MAPSERVER_BRANCH=main # MAPSERVER_BRANCH=branch-8-6 -docker build ` - --tag "mapserver-workshop" ` - --target=runner ` - --build-arg=MAPSERVER_BRANCH=main ` - --build-arg=MAPSERVER_REPO=https://github.com/mapserver/mapserver ` - . - # add --no-cache to the command below to force getting the latest code + docker build ` --tag "mapserver-workshop" ` --target=runner ` --build-arg=MAPSERVER_BRANCH=main ` --build-arg=MAPSERVER_REPO=https://github.com/mapserver/mapserver ` - --no-cache ` . -# docker run -it --name mapserver-workshop -p 8080:8080 mapserver-workshop - docker tag mapserver-workshop geographika/mapserver-workshop # docker login # geographika From cc86736c7eb82ea2e4de1d0b5599c6e726697098 Mon Sep 17 00:00:00 2001 From: sethg Date: Sat, 6 Jun 2026 12:21:32 +0200 Subject: [PATCH 10/14] EOL --- workshop/exercises/mapfiles/arcgis.map | 122 ++--- workshop/exercises/mapfiles/clusters.map | 170 +++---- workshop/exercises/mapfiles/contours.map | 122 ++--- workshop/exercises/mapfiles/countries.map | 70 +-- .../exercises/mapfiles/data/fonts/fontset.txt | 10 +- .../exercises/mapfiles/data/icons/tree.svg | 44 +- workshop/exercises/mapfiles/landuse.map | 420 +++++++++--------- workshop/exercises/mapfiles/polygons.map | 84 ++-- workshop/exercises/mapfiles/postgis.map | 72 +-- workshop/exercises/mapfiles/railways.map | 206 ++++----- workshop/exercises/mapfiles/raster.map | 70 +-- workshop/exercises/mapfiles/stac.map | 100 ++--- workshop/exercises/mapfiles/stars.map | 164 +++---- workshop/exercises/mapfiles/tiles.map | 70 +-- workshop/exercises/mapfiles/vector-tiles.map | 48 +- 15 files changed, 886 insertions(+), 886 deletions(-) diff --git a/workshop/exercises/mapfiles/arcgis.map b/workshop/exercises/mapfiles/arcgis.map index b04341b..408bc5d 100644 --- a/workshop/exercises/mapfiles/arcgis.map +++ b/workshop/exercises/mapfiles/arcgis.map @@ -1,61 +1,61 @@ -MAP - NAME "arcgis" - EXTENT -117.462057 33.895445 -117.436808 33.911090 - SIZE 400 400 - PROJECTION - "init=epsg:4326" - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - LAYER - NAME "PoolPermits" - TYPE POLYGON - PROJECTION - "init=epsg:3857" - END - CONNECTIONTYPE OGR - CONNECTION "https://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0/query?f=pjson" - PROCESSING "RENDERMODE=ALL_MATCHING_CLASSES" - CLASS - STYLE - COLOR 0 173 181 - OUTLINECOLOR 230 230 230 - OUTLINEWIDTH 0.1 - END - END - CLASS - VALIDATION - labels '.' - default_labels 'hidden' - END - EXPRESSION ('%labels%' = 'visible') - LABEL - TEXT "[apn]" - COLOR 220 240 255 - SIZE 8 - END - END - END - - # this layer is used for the excercise only - not in the arcgis.html page - LAYER - NAME "PoolPermitLabels" - TYPE POLYGON - PROJECTION - "init=epsg:3857" - END - CONNECTIONTYPE OGR - CONNECTION "https://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0/query?f=pjson" - CLASS - LABEL - TEXT "[apn]" - COLOR 220 240 255 - SIZE 8 - END - END - END -END +MAP + NAME "arcgis" + EXTENT -117.462057 33.895445 -117.436808 33.911090 + SIZE 400 400 + PROJECTION + "init=epsg:4326" + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + LAYER + NAME "PoolPermits" + TYPE POLYGON + PROJECTION + "init=epsg:3857" + END + CONNECTIONTYPE OGR + CONNECTION "https://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0/query?f=pjson" + PROCESSING "RENDERMODE=ALL_MATCHING_CLASSES" + CLASS + STYLE + COLOR 0 173 181 + OUTLINECOLOR 230 230 230 + OUTLINEWIDTH 0.1 + END + END + CLASS + VALIDATION + labels '.' + default_labels 'hidden' + END + EXPRESSION ('%labels%' = 'visible') + LABEL + TEXT "[apn]" + COLOR 220 240 255 + SIZE 8 + END + END + END + + # this layer is used for the excercise only - not in the arcgis.html page + LAYER + NAME "PoolPermitLabels" + TYPE POLYGON + PROJECTION + "init=epsg:3857" + END + CONNECTIONTYPE OGR + CONNECTION "https://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0/query?f=pjson" + CLASS + LABEL + TEXT "[apn]" + COLOR 220 240 255 + SIZE 8 + END + END + END +END diff --git a/workshop/exercises/mapfiles/clusters.map b/workshop/exercises/mapfiles/clusters.map index f7d0776..5efad04 100644 --- a/workshop/exercises/mapfiles/clusters.map +++ b/workshop/exercises/mapfiles/clusters.map @@ -1,86 +1,86 @@ -MAP - NAME "Clusters" - EXTENT 26.668678 58.339241 26.796582 58.40941 - UNITS DD - SIZE 800 600 - PROJECTION - "epsg:4326" - END - FONTSET "data/fonts/fontset.txt" - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - SYMBOL - NAME "circle" - TYPE ELLIPSE - POINTS - 1 1 - END - FILLED TRUE - END - LAYER - NAME "trees" - STATUS OFF - TYPE POINT - CONNECTIONTYPE OGR - # cluster does not seem to work with the native FLATGEOBUF driver - # CONNECTIONTYPE FLATGEOBUF - # DATA "data/osm/natural.fgb" - - CONNECTION "data/osm/natural.fgb" - CLUSTER - MAXDISTANCE 20 - REGION "ellipse" - END - - # LABELITEM "Cluster_FeatureCount" - - # PROCESSING "CLUSTER_ALGORITHM=SIMPLE" - # PROCESSING "CLUSTER_GET_ALL_SHAPES=OFF" - # PROCESSING "CLUSTER_KEEP_LOCATIONS=OFF" - - CLASSITEM "Cluster_FeatureCount" - - # class for clustered features - CLASS - EXPRESSION ("[Cluster_FeatureCount]" != "1") - STYLE - SIZE 30 - # In MapServer 8.2 we can use an expression for SIZE - # SIZE ([Cluster_FeatureCount] / 3) - SYMBOL "circle" - COLOR "#4A993A" - END - LABEL - FONT "LiberationSans" - TEXT "[Cluster_FeatureCount]" - TYPE TRUETYPE - SIZE 12 - COLOR 255 255 255 - ALIGN CENTER - FORCE TRUE # otherwise numbers can disappear - END - END - - # add a class for non-clustered features - CLASS - STYLE - SIZE 20 - SYMBOL "circle" - COLOR "#4A993A" - END - LABEL - FONT "LiberationSans" - TEXT "1" - TYPE TRUETYPE - SIZE 10 - COLOR 255 255 255 - ALIGN CENTER - END - END - - END +MAP + NAME "Clusters" + EXTENT 26.668678 58.339241 26.796582 58.40941 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + FONTSET "data/fonts/fontset.txt" + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + SYMBOL + NAME "circle" + TYPE ELLIPSE + POINTS + 1 1 + END + FILLED TRUE + END + LAYER + NAME "trees" + STATUS OFF + TYPE POINT + CONNECTIONTYPE OGR + # cluster does not seem to work with the native FLATGEOBUF driver + # CONNECTIONTYPE FLATGEOBUF + # DATA "data/osm/natural.fgb" + + CONNECTION "data/osm/natural.fgb" + CLUSTER + MAXDISTANCE 20 + REGION "ellipse" + END + + # LABELITEM "Cluster_FeatureCount" + + # PROCESSING "CLUSTER_ALGORITHM=SIMPLE" + # PROCESSING "CLUSTER_GET_ALL_SHAPES=OFF" + # PROCESSING "CLUSTER_KEEP_LOCATIONS=OFF" + + CLASSITEM "Cluster_FeatureCount" + + # class for clustered features + CLASS + EXPRESSION ("[Cluster_FeatureCount]" != "1") + STYLE + SIZE 30 + # In MapServer 8.2 we can use an expression for SIZE + # SIZE ([Cluster_FeatureCount] / 3) + SYMBOL "circle" + COLOR "#4A993A" + END + LABEL + FONT "LiberationSans" + TEXT "[Cluster_FeatureCount]" + TYPE TRUETYPE + SIZE 12 + COLOR 255 255 255 + ALIGN CENTER + FORCE TRUE # otherwise numbers can disappear + END + END + + # add a class for non-clustered features + CLASS + STYLE + SIZE 20 + SYMBOL "circle" + COLOR "#4A993A" + END + LABEL + FONT "LiberationSans" + TEXT "1" + TYPE TRUETYPE + SIZE 10 + COLOR 255 255 255 + ALIGN CENTER + END + END + + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/contours.map b/workshop/exercises/mapfiles/contours.map index 9549bf2..370f666 100644 --- a/workshop/exercises/mapfiles/contours.map +++ b/workshop/exercises/mapfiles/contours.map @@ -1,62 +1,62 @@ -MAP - NAME "Raster" - EXTENT 26.668678 58.339241 26.796582 58.409410 - UNITS DD - SIZE 800 600 - - IMAGETYPE PNG24 - - PROJECTION - "epsg:4326" - END - - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - - LAYER - NAME "dtm" - EXTENT 655000 6470000 660000 6475000 - STATUS OFF - TYPE RASTER - DATA "data/raster/54752_dtm_1m.tif" - PROJECTION - "epsg:3301" - END - - COMPOSITE - OPACITY 50 - END - - INCLUDE "terrain.include" - END - - LAYER - NAME "contours" - EXTENT 655000 6470000 660000 6475000 - STATUS OFF - TYPE LINE - CONNECTIONTYPE CONTOUR - DATA "data/raster/54752_dtm_1m.tif" - PROJECTION - "epsg:3301" - END - - PROCESSING "BANDS=1" - PROCESSING "CONTOUR_ITEM=elevation" - PROCESSING "CONTOUR_INTERVAL=2" - CLASS - STYLE - WIDTH 0.4 - COLOR 50 50 50 - END - END - - - - END - +MAP + NAME "Raster" + EXTENT 26.668678 58.339241 26.796582 58.409410 + UNITS DD + SIZE 800 600 + + IMAGETYPE PNG24 + + PROJECTION + "epsg:4326" + END + + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + + LAYER + NAME "dtm" + EXTENT 655000 6470000 660000 6475000 + STATUS OFF + TYPE RASTER + DATA "data/raster/54752_dtm_1m.tif" + PROJECTION + "epsg:3301" + END + + COMPOSITE + OPACITY 50 + END + + INCLUDE "terrain.include" + END + + LAYER + NAME "contours" + EXTENT 655000 6470000 660000 6475000 + STATUS OFF + TYPE LINE + CONNECTIONTYPE CONTOUR + DATA "data/raster/54752_dtm_1m.tif" + PROJECTION + "epsg:3301" + END + + PROCESSING "BANDS=1" + PROCESSING "CONTOUR_ITEM=elevation" + PROCESSING "CONTOUR_INTERVAL=2" + CLASS + STYLE + WIDTH 0.4 + COLOR 50 50 50 + END + END + + + + END + END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/countries.map b/workshop/exercises/mapfiles/countries.map index 522fd1a..4cb92f4 100644 --- a/workshop/exercises/mapfiles/countries.map +++ b/workshop/exercises/mapfiles/countries.map @@ -1,36 +1,36 @@ -# Comment can be added using a hash (#) at the start of a line -# All Mapfiles begin with a MAP block, and finish with a closing END -MAP - NAME "mymap" - - # the default size used for image output - SIZE 800 400 - - # the projection used for the map - PROJECTION - "epsg:4326" - END - - - # the extent of the map in the projection - EXTENT -180 -90 180 90 - - LAYER - NAME "countries" # the name of the layer - TYPE POLYGON # the layer will display polygons - STATUS DEFAULT # this means the layer will always be displayed - - # we will use a FlatGeoBuf country dataset - CONNECTIONTYPE FLATGEOBUF - DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" - - # we will use a single class for all country polygons - CLASS - STYLE - COLOR 60 179 113 # the colour of the polygons - OUTLINECOLOR 255 255 255 # the colour of the polygon outline - WIDTH 1 # the width of the polygon outline - END - END - END +# Comment can be added using a hash (#) at the start of a line +# All Mapfiles begin with a MAP block, and finish with a closing END +MAP + NAME "mymap" + + # the default size used for image output + SIZE 800 400 + + # the projection used for the map + PROJECTION + "epsg:4326" + END + + + # the extent of the map in the projection + EXTENT -180 -90 180 90 + + LAYER + NAME "countries" # the name of the layer + TYPE POLYGON # the layer will display polygons + STATUS DEFAULT # this means the layer will always be displayed + + # we will use a FlatGeoBuf country dataset + CONNECTIONTYPE FLATGEOBUF + DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" + + # we will use a single class for all country polygons + CLASS + STYLE + COLOR 60 179 113 # the colour of the polygons + OUTLINECOLOR 255 255 255 # the colour of the polygon outline + WIDTH 1 # the width of the polygon outline + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/data/fonts/fontset.txt b/workshop/exercises/mapfiles/data/fonts/fontset.txt index e60b1d4..a8dc39d 100644 --- a/workshop/exercises/mapfiles/data/fonts/fontset.txt +++ b/workshop/exercises/mapfiles/data/fonts/fontset.txt @@ -1,6 +1,6 @@ -# Alias # Font file -MaterialIcons MaterialIcons-Regular.ttf -MaterialIconsRound MaterialIconsRound-Regular.otf -LiberationMono LiberationMono-Regular.ttf -LiberationSans LiberationSans-Regular.ttf +# Alias # Font file +MaterialIcons MaterialIcons-Regular.ttf +MaterialIconsRound MaterialIconsRound-Regular.otf +LiberationMono LiberationMono-Regular.ttf +LiberationSans LiberationSans-Regular.ttf MonsieurLaDoulaise MonsieurLaDoulaise-Regular.ttf \ No newline at end of file diff --git a/workshop/exercises/mapfiles/data/icons/tree.svg b/workshop/exercises/mapfiles/data/icons/tree.svg index 1ee9fd0..abe73cb 100644 --- a/workshop/exercises/mapfiles/data/icons/tree.svg +++ b/workshop/exercises/mapfiles/data/icons/tree.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/workshop/exercises/mapfiles/landuse.map b/workshop/exercises/mapfiles/landuse.map index 316a156..ced2d59 100644 --- a/workshop/exercises/mapfiles/landuse.map +++ b/workshop/exercises/mapfiles/landuse.map @@ -1,211 +1,211 @@ -MAP - NAME "Landuse" - EXTENT 26.668678 58.339241 26.796582 58.40941 - UNITS DD - SIZE 800 600 - PROJECTION - "epsg:4326" - END - SYMBOL - NAME 'octahedron' - TYPE VECTOR - POINTS - 20 18 - 22 18 - 24 20 - 24 22 - 22 24 - 20 24 - 18 22 - 18 20 - 20 18 - END - FILLED FALSE - END - SYMBOL - NAME "marsh_isom" - TYPE VECTOR - FILLED TRUE - POINTS - 0 0.6666666 - 100 0.666666 - 100 1 - 0 1 - 0 0.66666666 - END - END - SYMBOL - NAME "uncrossablemarsh_isom" - TYPE VECTOR - FILLED TRUE - POINTS - 0 0.25 - 100 0.25 - 100 0.5 - 0 0.5 - 0 0.25 - END - END - SYMBOL - NAME "indistinctmarsh_isom" - TYPE VECTOR - FILLED TRUE - POINTS - 0 0.2 - 0.45 0.2 - 0.45 0.3 - 0 0.3 - 0 0.2 - -99 -99 - 0.7 0.2 - 1.15 0.2 - 1.15 0.3 - 0.7 0.3 - 0.7 0.2 - -99 -99 - 0.125 0.5 - 1.025 0.5 - 1.025 0.6 - 0.125 0.6 - 0.125 0.5 - END - END - SYMBOL - NAME "scrub" - TYPE VECTOR - POINTS - 88 122 - 90 122 - 92 124 - 92 126 - 90 128 - 88 128 - 86 126 - 86 124 - 88 122 - -99 -99 - 120 122 - 122 122 - 124 124 - 124 126 - 122 128 - 120 128 - 118 126 - 118 124 - 120 122 - -99 -99 - 106 84 - 108 84 - 110 86 - 110 88 - 108 90 - 106 90 - 104 88 - 104 86 - 106 84 - -99 -99 - 107 102 - 109 102 - 111 106 - 111 108 - 109 110 - 107 110 - 103 108 - 103 106 - 107 102 - -99 -99 - END - FILLED FALSE - END - SYMBOL - NAME "wetland2" - TYPE SVG - IMAGE "data/icons/wetland.svg" - END - SYMBOL - NAME "grass" - TYPE PIXMAP - IMAGE "resources/fills/grass_fill.png" - END - SYMBOL - NAME "tree" - TYPE SVG - IMAGE "data/icons/tree.svg" - END - SYMBOL - NAME "wetland" - TYPE PIXMAP - IMAGE "resources/fills/blue-paper.png" - END - SYMBOL - NAME "sand" - TYPE PIXMAP - IMAGE "resources/fills/sand.png" - END - SYMBOL - NAME "paper" - TYPE PIXMAP - IMAGE "resources/fills/paper.png" - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - LAYER - NAME "landuse" - STATUS OFF - TYPE POLYGON - CONNECTIONTYPE FLATGEOBUF - DATA "data/osm/landuse_a.fgb" - CLASSITEM "fclass" - CLASS - EXPRESSION "grass" - STYLE - SYMBOL "wetland" - END - END - - CLASS - EXPRESSION {park,grass} - STYLE - SYMBOL "grass" - END - END - CLASS - EXPRESSION "residential" - STYLE - SYMBOL "paper" - END - END - CLASS - EXPRESSION "forest" - STYLE - #COLOR 231 255 170 - COLOR 34 139 34 - END - STYLE - SYMBOL "tree" # "octahedron" - SIZE 10 - COLOR 100 100 100 - END - #STYLE - # SYMBOL "paper" - #END - END - #CLASS - # STYLE - # SYMBOL "marsh_isom" # uncrossablemarsh_isom indistinctmarsh_isom marsh_isom - # SIZE 10 - # # COLOR 100 100 100 - # END - #END - CLASS - STYLE - OUTLINECOLOR 150 150 150 - OUTLINEWIDTH 0.5 - END - END - END +MAP + NAME "Landuse" + EXTENT 26.668678 58.339241 26.796582 58.40941 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + SYMBOL + NAME 'octahedron' + TYPE VECTOR + POINTS + 20 18 + 22 18 + 24 20 + 24 22 + 22 24 + 20 24 + 18 22 + 18 20 + 20 18 + END + FILLED FALSE + END + SYMBOL + NAME "marsh_isom" + TYPE VECTOR + FILLED TRUE + POINTS + 0 0.6666666 + 100 0.666666 + 100 1 + 0 1 + 0 0.66666666 + END + END + SYMBOL + NAME "uncrossablemarsh_isom" + TYPE VECTOR + FILLED TRUE + POINTS + 0 0.25 + 100 0.25 + 100 0.5 + 0 0.5 + 0 0.25 + END + END + SYMBOL + NAME "indistinctmarsh_isom" + TYPE VECTOR + FILLED TRUE + POINTS + 0 0.2 + 0.45 0.2 + 0.45 0.3 + 0 0.3 + 0 0.2 + -99 -99 + 0.7 0.2 + 1.15 0.2 + 1.15 0.3 + 0.7 0.3 + 0.7 0.2 + -99 -99 + 0.125 0.5 + 1.025 0.5 + 1.025 0.6 + 0.125 0.6 + 0.125 0.5 + END + END + SYMBOL + NAME "scrub" + TYPE VECTOR + POINTS + 88 122 + 90 122 + 92 124 + 92 126 + 90 128 + 88 128 + 86 126 + 86 124 + 88 122 + -99 -99 + 120 122 + 122 122 + 124 124 + 124 126 + 122 128 + 120 128 + 118 126 + 118 124 + 120 122 + -99 -99 + 106 84 + 108 84 + 110 86 + 110 88 + 108 90 + 106 90 + 104 88 + 104 86 + 106 84 + -99 -99 + 107 102 + 109 102 + 111 106 + 111 108 + 109 110 + 107 110 + 103 108 + 103 106 + 107 102 + -99 -99 + END + FILLED FALSE + END + SYMBOL + NAME "wetland2" + TYPE SVG + IMAGE "data/icons/wetland.svg" + END + SYMBOL + NAME "grass" + TYPE PIXMAP + IMAGE "resources/fills/grass_fill.png" + END + SYMBOL + NAME "tree" + TYPE SVG + IMAGE "data/icons/tree.svg" + END + SYMBOL + NAME "wetland" + TYPE PIXMAP + IMAGE "resources/fills/blue-paper.png" + END + SYMBOL + NAME "sand" + TYPE PIXMAP + IMAGE "resources/fills/sand.png" + END + SYMBOL + NAME "paper" + TYPE PIXMAP + IMAGE "resources/fills/paper.png" + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + LAYER + NAME "landuse" + STATUS OFF + TYPE POLYGON + CONNECTIONTYPE FLATGEOBUF + DATA "data/osm/landuse_a.fgb" + CLASSITEM "fclass" + CLASS + EXPRESSION "grass" + STYLE + SYMBOL "wetland" + END + END + + CLASS + EXPRESSION {park,grass} + STYLE + SYMBOL "grass" + END + END + CLASS + EXPRESSION "residential" + STYLE + SYMBOL "paper" + END + END + CLASS + EXPRESSION "forest" + STYLE + #COLOR 231 255 170 + COLOR 34 139 34 + END + STYLE + SYMBOL "tree" # "octahedron" + SIZE 10 + COLOR 100 100 100 + END + #STYLE + # SYMBOL "paper" + #END + END + #CLASS + # STYLE + # SYMBOL "marsh_isom" # uncrossablemarsh_isom indistinctmarsh_isom marsh_isom + # SIZE 10 + # # COLOR 100 100 100 + # END + #END + CLASS + STYLE + OUTLINECOLOR 150 150 150 + OUTLINEWIDTH 0.5 + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/polygons.map b/workshop/exercises/mapfiles/polygons.map index 6ab9453..c60c589 100644 --- a/workshop/exercises/mapfiles/polygons.map +++ b/workshop/exercises/mapfiles/polygons.map @@ -1,43 +1,43 @@ -MAP - NAME "Buildings" - EXTENT 17.77 43.31 17.83 43.36 - UNITS DD - SIZE 800 600 - PROJECTION - "epsg:4326" - END - WEB - METADATA - "ows_title" "OSM Buildings" - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - LAYER - NAME "buildings" - TYPE POLYGON - STATUS OFF - CONNECTIONTYPE OGR - # CONNECTIONTYPE FLATGEOBUF - # DATA "data/osm/mostar/buildings_a.fgb" - CONNECTION "data/osm/mostar/buildings_a.fgb" - CLASSGROUP "university" # we can switch the default set of CLASSes here - CLASS - NAME "University" # this value is used for Legend titles for the CLASS - GROUP "university" - EXPRESSION ( "[type]" = "university" ) - STYLE - COLOR 255 0 0 - OUTLINECOLOR 0 0 0 - END - END - CLASS - NAME "Other" - GROUP "other" - STYLE - COLOR 246 241 223 - OUTLINECOLOR 0 0 0 - END - END - END +MAP + NAME "Buildings" + EXTENT 17.77 43.31 17.83 43.36 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + WEB + METADATA + "ows_title" "OSM Buildings" + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + LAYER + NAME "buildings" + TYPE POLYGON + STATUS OFF + CONNECTIONTYPE OGR + # CONNECTIONTYPE FLATGEOBUF + # DATA "data/osm/mostar/buildings_a.fgb" + CONNECTION "data/osm/mostar/buildings_a.fgb" + CLASSGROUP "university" # we can switch the default set of CLASSes here + CLASS + NAME "University" # this value is used for Legend titles for the CLASS + GROUP "university" + EXPRESSION ( "[type]" = "university" ) + STYLE + COLOR 255 0 0 + OUTLINECOLOR 0 0 0 + END + END + CLASS + NAME "Other" + GROUP "other" + STYLE + COLOR 246 241 223 + OUTLINECOLOR 0 0 0 + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/postgis.map b/workshop/exercises/mapfiles/postgis.map index 33de26a..19cd16e 100644 --- a/workshop/exercises/mapfiles/postgis.map +++ b/workshop/exercises/mapfiles/postgis.map @@ -1,37 +1,37 @@ -MAP - NAME "PostGIS" - EXTENT 26.668678 58.339241 26.796582 58.409410 - UNITS DD - SIZE 800 600 - - PROJECTION - "epsg:4326" - END - - WEB - METADATA - "ows_title" "OSM Water" - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - - LAYER - NAME "water" - STATUS OFF - TYPE POLYGON - CONNECTIONTYPE POSTGIS - CONNECTION "host=db user=docker password=docker port=5432 dbname=gis" - DATA "wkb_geometry FROM water_a USING UNIQUE ogc_fid USING srid=4326" - - PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance - CLASS - GROUP "default" - STYLE - COLOR "#d4f1f9" - OUTLINECOLOR "#918151" - END - END - END - +MAP + NAME "PostGIS" + EXTENT 26.668678 58.339241 26.796582 58.409410 + UNITS DD + SIZE 800 600 + + PROJECTION + "epsg:4326" + END + + WEB + METADATA + "ows_title" "OSM Water" + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + + LAYER + NAME "water" + STATUS OFF + TYPE POLYGON + CONNECTIONTYPE POSTGIS + CONNECTION "host=db user=docker password=docker port=5432 dbname=gis" + DATA "wkb_geometry FROM water_a USING UNIQUE ogc_fid USING srid=4326" + + PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance + CLASS + GROUP "default" + STYLE + COLOR "#d4f1f9" + OUTLINECOLOR "#918151" + END + END + END + END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/railways.map b/workshop/exercises/mapfiles/railways.map index 435ec87..2ac13c4 100644 --- a/workshop/exercises/mapfiles/railways.map +++ b/workshop/exercises/mapfiles/railways.map @@ -1,104 +1,104 @@ -MAP - NAME "Railways" - EXTENT 26.668678 58.339241 26.796582 58.40941 - UNITS DD - SIZE 800 600 - PROJECTION - "epsg:4326" - END - SYMBOL - NAME "vertline" # we can use this to reference the SYMBOL in STYLEs - TYPE VECTOR - FILLED FALSE # the symbol will be treated as a LINE - POINTS - 0 0 - 0 10 - END - END - SYMBOL - NAME "square" - TYPE VECTOR - FILLED TRUE # the symbol will be treated as a POLYGON - POINTS - 0 0 - 0 10 - 10 10 - 10 0 - END - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - LAYER - NAME "tracks" - STATUS OFF - TYPE LINE - CONNECTIONTYPE FLATGEOBUF - DATA "data/osm/railways.fgb" - CLASS - EXPRESSION ( "[name]" != "" ) - STYLE - COLOR 102 102 102 - WIDTH 4.0 - END - STYLE - COLOR 255 255 255 - WIDTH 2.0 - LINECAP BUTT - PATTERN - 8 12 - END - END - LABEL - TEXT "[name]" - COLOR 102 102 102 - SIZE 12 - ANGLE FOLLOW - OFFSET 8 -99 - END - END - CLASS - STYLE - COLOR 102 102 102 - WIDTH 0.8 - END - STYLE - COLOR 102 102 102 - SYMBOL "vertline" - WIDTH 0.4 - GAP -50 - END - END - END - - LAYER - NAME "stops" - STATUS OFF - TYPE POINT - TEMPLATE "void" - METADATA - "gml_include_items" "all" - "gml_featureid" "osm_id" - END - CONNECTIONTYPE FLATGEOBUF - DATA "data/osm/transport.fgb" - CLASSITEM "fclass" - CLASS - EXPRESSION {railway_station,railway_halt} - STYLE - SYMBOL "square" - SIZE 16 - COLOR 102 102 102 - END - LABEL - TEXT "[name]" - POSITION ur - COLOR 102 102 102 - SIZE 18 - END - END - END +MAP + NAME "Railways" + EXTENT 26.668678 58.339241 26.796582 58.40941 + UNITS DD + SIZE 800 600 + PROJECTION + "epsg:4326" + END + SYMBOL + NAME "vertline" # we can use this to reference the SYMBOL in STYLEs + TYPE VECTOR + FILLED FALSE # the symbol will be treated as a LINE + POINTS + 0 0 + 0 10 + END + END + SYMBOL + NAME "square" + TYPE VECTOR + FILLED TRUE # the symbol will be treated as a POLYGON + POINTS + 0 0 + 0 10 + 10 10 + 10 0 + END + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + LAYER + NAME "tracks" + STATUS OFF + TYPE LINE + CONNECTIONTYPE FLATGEOBUF + DATA "data/osm/railways.fgb" + CLASS + EXPRESSION ( "[name]" != "" ) + STYLE + COLOR 102 102 102 + WIDTH 4.0 + END + STYLE + COLOR 255 255 255 + WIDTH 2.0 + LINECAP BUTT + PATTERN + 8 12 + END + END + LABEL + TEXT "[name]" + COLOR 102 102 102 + SIZE 12 + ANGLE FOLLOW + OFFSET 8 -99 + END + END + CLASS + STYLE + COLOR 102 102 102 + WIDTH 0.8 + END + STYLE + COLOR 102 102 102 + SYMBOL "vertline" + WIDTH 0.4 + GAP -50 + END + END + END + + LAYER + NAME "stops" + STATUS OFF + TYPE POINT + TEMPLATE "void" + METADATA + "gml_include_items" "all" + "gml_featureid" "osm_id" + END + CONNECTIONTYPE FLATGEOBUF + DATA "data/osm/transport.fgb" + CLASSITEM "fclass" + CLASS + EXPRESSION {railway_station,railway_halt} + STYLE + SYMBOL "square" + SIZE 16 + COLOR 102 102 102 + END + LABEL + TEXT "[name]" + POSITION ur + COLOR 102 102 102 + SIZE 18 + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/raster.map b/workshop/exercises/mapfiles/raster.map index 176a9d3..8b6f994 100644 --- a/workshop/exercises/mapfiles/raster.map +++ b/workshop/exercises/mapfiles/raster.map @@ -1,36 +1,36 @@ -MAP - NAME "Raster" - EXTENT 26.668678 58.339241 26.796582 58.409410 - UNITS DD - SIZE 800 600 - - IMAGETYPE PNG24 - - PROJECTION - "epsg:4326" - END - - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - - LAYER - NAME "dtm" - EXTENT 655000 6470000 660000 6475000 - STATUS OFF - TYPE RASTER - # Map data: Estonian Land Board 2024 - DATA "data/raster/54752_dtm_1m.tif" - PROJECTION - "epsg:3301" - END - COMPOSITE - OPACITY 80 - END - INCLUDE "terrain.include" - END - +MAP + NAME "Raster" + EXTENT 26.668678 58.339241 26.796582 58.409410 + UNITS DD + SIZE 800 600 + + IMAGETYPE PNG24 + + PROJECTION + "epsg:4326" + END + + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + + LAYER + NAME "dtm" + EXTENT 655000 6470000 660000 6475000 + STATUS OFF + TYPE RASTER + # Map data: Estonian Land Board 2024 + DATA "data/raster/54752_dtm_1m.tif" + PROJECTION + "epsg:3301" + END + COMPOSITE + OPACITY 80 + END + INCLUDE "terrain.include" + END + END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/stac.map b/workshop/exercises/mapfiles/stac.map index bdf02ab..d5bc4d5 100644 --- a/workshop/exercises/mapfiles/stac.map +++ b/workshop/exercises/mapfiles/stac.map @@ -1,51 +1,51 @@ -MAP - NAME "STAC" - EXTENT -180 -90 180 90 - UNITS DD - SIZE 600 600 - PROJECTION - "init=epsg:4326" - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857 EPSG:5070" - END - VALIDATION - # check the parameter is in the form -74.134,41.871,-73.694,42.089 - BBOX '^-?\d+(?:\.\d+)?,-?\d+(?:\.\d+)?,-?\d+(?:\.\d+)?,-?\d+(?:\.\d+)?$' - END - END - - LAYER - NAME "lcpri" - TYPE RASTER - DATA 'STACIT:\"https://planetarycomputer.microsoft.com/api/stac/v1/search?&collections=usgs-lcmap-conus-v13&datetime=2021-01-01/2021-12-31&bbox=%BBOX%\":asset=lcpri' - PROJECTION - "init=epsg:5070" - END - PROCESSING "BANDS=1" - CLASS - EXPRESSION ([pixel] = 5) - STYLE - COLOR 28 107 160 - END - END - - CLASS - EXPRESSION ([pixel] != 5) - STYLE - COLORRANGE 255 255 230 0 100 0 # light green to dark green - DATARANGE 1 8 - END - END - - # to switch to black and white uncomment below - - # PROCESSING "SCALE=1,8" - # PROCESSING "SCALE_BUCKETS=256" - # PROCESSING "CLASSIFY_SCALED=TRUE" - - END - +MAP + NAME "STAC" + EXTENT -180 -90 180 90 + UNITS DD + SIZE 600 600 + PROJECTION + "init=epsg:4326" + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857 EPSG:5070" + END + VALIDATION + # check the parameter is in the form -74.134,41.871,-73.694,42.089 + BBOX '^-?\d+(?:\.\d+)?,-?\d+(?:\.\d+)?,-?\d+(?:\.\d+)?,-?\d+(?:\.\d+)?$' + END + END + + LAYER + NAME "lcpri" + TYPE RASTER + DATA 'STACIT:\"https://planetarycomputer.microsoft.com/api/stac/v1/search?&collections=usgs-lcmap-conus-v13&datetime=2021-01-01/2021-12-31&bbox=%BBOX%\":asset=lcpri' + PROJECTION + "init=epsg:5070" + END + PROCESSING "BANDS=1" + CLASS + EXPRESSION ([pixel] = 5) + STYLE + COLOR 28 107 160 + END + END + + CLASS + EXPRESSION ([pixel] != 5) + STYLE + COLORRANGE 255 255 230 0 100 0 # light green to dark green + DATARANGE 1 8 + END + END + + # to switch to black and white uncomment below + + # PROCESSING "SCALE=1,8" + # PROCESSING "SCALE_BUCKETS=256" + # PROCESSING "CLASSIFY_SCALED=TRUE" + + END + END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/stars.map b/workshop/exercises/mapfiles/stars.map index 42c5ba4..15b485f 100644 --- a/workshop/exercises/mapfiles/stars.map +++ b/workshop/exercises/mapfiles/stars.map @@ -1,83 +1,83 @@ -MAP - NAME "Stars!" - EXTENT -42.33528830884047 -47.25854720678822 43.404846801027695 24.75957883214916 - PROJECTION - "epsg:4326" - END - SIZE 400 400 - FONTSET "data/fonts/fontset.txt" - SYMBOL - NAME "circle" - TYPE ELLIPSE - FILLED TRUE - POINTS - 1 1 - END - END - WEB - METADATA - "ows_enable_request" "*" - "ows_srs" "EPSG:4326 EPSG:3857" - END - END - IMAGECOLOR 0 0 0 - LAYER - TYPE LINE - PROJECTION - AUTO - END - NAME "constellations" - STATUS OFF - CONNECTIONTYPE OGR - CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/constellations.lines.json" - LABELITEM "Id" - CLASS - LABEL - COLOR "#15f4ee" - FONT "LiberationMono" - TYPE TRUETYPE - SIZE 10 - POSITION AUTO - PARTIALS FALSE - END - STYLE - COLOR "#15f4ee" - WIDTH 1 - END - END - END - LAYER - TYPE POINT - NAME "stars" - STATUS OFF - CONNECTIONTYPE OGR - CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" - PROCESSING "NATIVE_FILTER=mag>12" - COMPOSITE - COMPFILTER "blur(5)" - OPACITY 90 - END - CLASS - STYLE - SYMBOL "circle" - COLOR "#ffcd3c" - SIZE [mag] - END - END - END - LAYER - TYPE POINT - NAME "stars2" - STATUS OFF - CONNECTIONTYPE OGR - CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" - PROCESSING "NATIVE_FILTER=mag>10" - CLASS - STYLE - SYMBOL "circle" - COLOR 255 255 255 - SIZE 2 - END - END - END +MAP + NAME "Stars!" + EXTENT -42.33528830884047 -47.25854720678822 43.404846801027695 24.75957883214916 + PROJECTION + "epsg:4326" + END + SIZE 400 400 + FONTSET "data/fonts/fontset.txt" + SYMBOL + NAME "circle" + TYPE ELLIPSE + FILLED TRUE + POINTS + 1 1 + END + END + WEB + METADATA + "ows_enable_request" "*" + "ows_srs" "EPSG:4326 EPSG:3857" + END + END + IMAGECOLOR 0 0 0 + LAYER + TYPE LINE + PROJECTION + AUTO + END + NAME "constellations" + STATUS OFF + CONNECTIONTYPE OGR + CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/constellations.lines.json" + LABELITEM "Id" + CLASS + LABEL + COLOR "#15f4ee" + FONT "LiberationMono" + TYPE TRUETYPE + SIZE 10 + POSITION AUTO + PARTIALS FALSE + END + STYLE + COLOR "#15f4ee" + WIDTH 1 + END + END + END + LAYER + TYPE POINT + NAME "stars" + STATUS OFF + CONNECTIONTYPE OGR + CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" + PROCESSING "NATIVE_FILTER=mag>12" + COMPOSITE + COMPFILTER "blur(5)" + OPACITY 90 + END + CLASS + STYLE + SYMBOL "circle" + COLOR "#ffcd3c" + SIZE [mag] + END + END + END + LAYER + TYPE POINT + NAME "stars2" + STATUS OFF + CONNECTIONTYPE OGR + CONNECTION "/vsicurl/https://raw.githubusercontent.com/ofrohn/d3-celestial/master/data/stars.14.json" + PROCESSING "NATIVE_FILTER=mag>10" + CLASS + STYLE + SYMBOL "circle" + COLOR 255 255 255 + SIZE 2 + END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/tiles.map b/workshop/exercises/mapfiles/tiles.map index eb637ee..e7662d2 100644 --- a/workshop/exercises/mapfiles/tiles.map +++ b/workshop/exercises/mapfiles/tiles.map @@ -1,36 +1,36 @@ -MAP - NAME "Tiles" - EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 - PROJECTION - "epsg:3857" - END - SIZE 256 256 - WEB - METADATA - "tile_map_edge_buffer" "10" - "tile_metatile_level" "0" - END - END - IMAGECOLOR "#ADD8E6" - LAYER - NAME "countries" - TYPE POLYGON - STATUS OFF - CONNECTIONTYPE FLATGEOBUF - DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" - EXTENT -180.0 -90.0 180.0 90 - PROJECTION - "epsg:4326" - END - CLASS - STYLE - COLOR 60 179 113 - OUTLINECOLOR 255 255 255 - OUTLINEWIDTH 0.1 - END - #LABEL - # TEXT "[name]" - #END - END - END +MAP + NAME "Tiles" + EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 + PROJECTION + "epsg:3857" + END + SIZE 256 256 + WEB + METADATA + "tile_map_edge_buffer" "10" + "tile_metatile_level" "0" + END + END + IMAGECOLOR "#ADD8E6" + LAYER + NAME "countries" + TYPE POLYGON + STATUS OFF + CONNECTIONTYPE FLATGEOBUF + DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" + EXTENT -180.0 -90.0 180.0 90 + PROJECTION + "epsg:4326" + END + CLASS + STYLE + COLOR 60 179 113 + OUTLINECOLOR 255 255 255 + OUTLINEWIDTH 0.1 + END + #LABEL + # TEXT "[name]" + #END + END + END END \ No newline at end of file diff --git a/workshop/exercises/mapfiles/vector-tiles.map b/workshop/exercises/mapfiles/vector-tiles.map index 4fa3ef2..fe7869c 100644 --- a/workshop/exercises/mapfiles/vector-tiles.map +++ b/workshop/exercises/mapfiles/vector-tiles.map @@ -1,25 +1,25 @@ -MAP - NAME "Vector Tiles" - EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 - SIZE 256 256 - PROJECTION - "epsg:3857" - END - LAYER - NAME "countries" - TYPE POLYGON - PROJECTION - "epsg:4326" - END - EXTENT -180.0 -90.0 180.0 90 - STATUS OFF - # If want to include attributes in the tiles add - # the METADATA block - METADATA - "gml_include_items" "all" - "gml_types" "auto" - END - CONNECTIONTYPE FLATGEOBUF - DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" - END +MAP + NAME "Vector Tiles" + EXTENT -20037508.34 -20048966.1 20037508.34 20048966.1 + SIZE 256 256 + PROJECTION + "epsg:3857" + END + LAYER + NAME "countries" + TYPE POLYGON + PROJECTION + "epsg:4326" + END + EXTENT -180.0 -90.0 180.0 90 + STATUS OFF + # If want to include attributes in the tiles add + # the METADATA block + METADATA + "gml_include_items" "all" + "gml_types" "auto" + END + CONNECTIONTYPE FLATGEOBUF + DATA "data/naturalearth/ne_110m_admin_0_countries.fgb" + END END \ No newline at end of file From edee4a1a075a5c2db9658d146c8735808cd78ce8 Mon Sep 17 00:00:00 2001 From: sethg Date: Sat, 6 Jun 2026 12:24:05 +0200 Subject: [PATCH 11/14] EOL --- workshop/exercises/mapfiles/data/fonts/fontset.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/workshop/exercises/mapfiles/data/fonts/fontset.txt b/workshop/exercises/mapfiles/data/fonts/fontset.txt index a8dc39d..e60b1d4 100644 --- a/workshop/exercises/mapfiles/data/fonts/fontset.txt +++ b/workshop/exercises/mapfiles/data/fonts/fontset.txt @@ -1,6 +1,6 @@ -# Alias # Font file -MaterialIcons MaterialIcons-Regular.ttf -MaterialIconsRound MaterialIconsRound-Regular.otf -LiberationMono LiberationMono-Regular.ttf -LiberationSans LiberationSans-Regular.ttf +# Alias # Font file +MaterialIcons MaterialIcons-Regular.ttf +MaterialIconsRound MaterialIconsRound-Regular.otf +LiberationMono LiberationMono-Regular.ttf +LiberationSans LiberationSans-Regular.ttf MonsieurLaDoulaise MonsieurLaDoulaise-Regular.ttf \ No newline at end of file From 59ce18820c725164ecd9bb27ccb65fed8fd9a7cd Mon Sep 17 00:00:00 2001 From: sethg Date: Sat, 6 Jun 2026 12:30:28 +0200 Subject: [PATCH 12/14] Path fixes --- .github/workflows/tests.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5e9fe7b..336de46 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,13 +19,14 @@ jobs: - uses: actions/setup-python@v6 with: python-version: '3.x' - - name: Install requirements 📦 - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - pip install mappyfile - name: Test Mapfiles run: | + pip install mappyfile mappyfile validate exercises/mapfiles/**/*.map + - name: Install doc requirements 📦 + run: | + cd content + python -m pip install --upgrade pip + pip install -r requirements.txt - name: Deploy 📦 run: zensical build --clean --strict From d2957edcb594dafdbe28bc6f5a13bd62ee0b3055 Mon Sep 17 00:00:00 2001 From: sethg Date: Sat, 6 Jun 2026 12:40:20 +0200 Subject: [PATCH 13/14] Path fix --- .github/workflows/tests.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 336de46..effaaae 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -29,4 +29,6 @@ jobs: python -m pip install --upgrade pip pip install -r requirements.txt - name: Deploy 📦 - run: zensical build --clean --strict + run: | + cd content + zensical build --clean --strict From ca299c0c1f329bf8e512da32cfc9ab9782939ec6 Mon Sep 17 00:00:00 2001 From: sethg Date: Sat, 6 Jun 2026 12:45:24 +0200 Subject: [PATCH 14/14] Path --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index effaaae..cf3ce4a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,7 +22,7 @@ jobs: - name: Test Mapfiles run: | pip install mappyfile - mappyfile validate exercises/mapfiles/**/*.map + mappyfile validate exercises/mapfiles/*.map - name: Install doc requirements 📦 run: | cd content