Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scale rules in EGDI #570

Open
renatabarros opened this issue Oct 11, 2021 · 25 comments
Open

Scale rules in EGDI #570

renatabarros opened this issue Oct 11, 2021 · 25 comments

Comments

@renatabarros
Copy link

Hello all (again),
One last thing missing to properly display GeoConnect³d data are the scale rules. Every object in our geopackages has an assigned scaleFrom and scaleTo (as 2 attributes) where it should appear/disappear from the web viewer. This is also something HIKE is doing for their faults as far as I know. However, I didn't find any tips for the code to create such rules. Could you help me out? Thanks in advance.

A more concrete example using the dataset gsi_geom.
These are the attributes within the shp:
image

Therefore these points should appear at scale 1:2,000,000 and disappear at scale 1:25,000 in the viewer.

And these are the scale steps we share with HIKE:
image

@nmtoken
Copy link

nmtoken commented Oct 11, 2021

In the mapserver configuration file try adding:

MAXSCALEDENOM 2000000
MINSCALEDENOM 25000

@renatabarros
Copy link
Author

It works, thank you!
Now if it is the case that the scaleFrom / scaleTo varies within the same layer depending on the object, is there a way to assign a field or an expression to have the correct combination for each object?

Example from another gpkg:
image

@nmtoken
Copy link

nmtoken commented Oct 11, 2021

I don't think there's an easy way to do it.

In a mapserver configuration where I had full control, I would create two (or more depending on scales) layers from the single data source using an appropriate query, and give each layer the required scale range. Then I would group the layers, and show the grouped layer in the map.

@renatabarros
Copy link
Author

I managed to query & show only scalefrom 4, but still unsure how to create multiple layers from the same dataset?

@nmtoken
Copy link

nmtoken commented Oct 11, 2021

You can use a WHERE clause in the SELECT

Like:

DATA "wkb_geometry FROM (SELECT * FROM project_gip_p.r2rlimitst3 WHERE category = 'Contact') AS t USING UNIQUE ogc_fid SRID 3034 FILTER"

@renatabarros
Copy link
Author

Sorry, I didn't explain well before. This is what I did, and works for one combination of scalefrom/to
DATA "wkb_geometry FROM (SELECT * FROM project_geoconnect3d.gc3dgsilimits WHERE scalefrom = 4 AND scaleto = 6) AS t USING UNIQUE ogc_fid SRID 3034 FILTER

However, I don't know how to then create the other layers to show the other scale combinations. I tried duplicating the whole LAYER code and changing the query in the second one to another scale combination, but it didn't work. This second step is what I need some help with.

@nmtoken
Copy link

nmtoken commented Oct 11, 2021

can you post both full config files

@renatabarros
Copy link
Author

Sorry I'm not sure what config files are, the mapserver code? Or the actual geopackage file?

@nmtoken
Copy link

nmtoken commented Oct 12, 2021

The mapserver code.

@renatabarros
Copy link
Author

renatabarros commented Oct 12, 2021

LAYER
 NAME "gc3d_gsi_limits"
 GROUP "egdi"
 TYPE Line
 STATUS on
 METADATA
  "ows_title" "gc3d_gsi_limits"
  "ows_abstract" "Auto generated data set"
  "ows_group_title" "EGDI"
  "ows_group_abstract" "EGDI"
  "gml_featureid" "ogc_fid"
  "ows_featureid" "ogc_fid"
  "ows_include_items" "all"
  "gml_include_items" "all"
  "gml_types" "auto"
  "ows_srs" "EPSG:3034"
  "gml_geometries" "msGeometry"
  "gml_msGeometry_type" "Line"
  "dataset_path" "/egdi/shared/datasets/geoconnect3d/gc3d_gsi_sf.gpkg"
  "ows_extent" "2629527.682252142 2895001.265000496 3056936.1140277805 3294942.869486996"
  "wms_style" "default"
  "wms_style_default_legendurl_href" "/egdi/get_legend.jsp?layer=10970"
  "wms_style_default_legendurl_format" "image/png"
  "wms_style_default_legendurl_height" "250"
  "wms_style_default_legendurl_width" "250"
  "ows_inspire_capabilities" "url"
  "ows_inspire_metadataurl_format" "application/xml"
  "ows_inspire_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_format" "text/xml"
  "ows_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_type" "TC211"
 END
 HEADER "templates/wms_header.html" 
 TEMPLATE "templates/std_template.html"  # Otherwise not queryable
 FOOTER "templates/wms_footer.html"
 CONNECTIONTYPE POSTGIS 
 CONNECTION "host=geusmapcachedb dbname=egdi user=gis_viewer password=view2Qis port=5432"
 DATA "wkb_geometry FROM (SELECT * FROM project_geoconnect3d.gc3dgsilimits WHERE scalefrom = 4 AND scaleto = 6) AS t USING UNIQUE ogc_fid SRID 3034 FILTER"
 LABELCACHE on
 MAXSCALEDENOM 2000000
 MINSCALEDENOM 500000
 CLASS
  NAME "gc3d_gsi_limits"
  # dummy expression has no matches
  EXPRESSION ([linetype] = -1)
  STYLE
   # Omit COLOR RGB for no colour
  END
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Contact")
  STYLE
   COLOR "#000004"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Contact 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Contact")
  STYLE
   PATTERN 3 5 END
   COLOR "#000004"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Contact 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Crustal boundary")
  STYLE
   COLOR "#208719"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Crustal boundary 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Crustal boundary")
  STYLE
   PATTERN 3 5 END
   COLOR "#208719"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Crustal boundary 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Fault")
  STYLE
   COLOR "#eb0c23"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Fault 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Fault")
  STYLE
   PATTERN 3 5 END
   COLOR  "#eb0c23"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Fault 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Lineament")
  STYLE
   COLOR "#3cf03c"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Lineament 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Lineament")
  STYLE
   PATTERN 3 5 END
   COLOR "#3cf03c"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Lineament 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Orogenic front")
  STYLE
   COLOR "#35e1ed"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Orogenic front 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Orogenic front")
  STYLE
   PATTERN 3 5 END
   COLOR "#35e1ed"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Orogenic front 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Plate boundary")
  STYLE
   COLOR "#280c99"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Plate boundary 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Plate boundary")
  STYLE
   PATTERN 3 5 END
   COLOR "#280c99"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Plate boundary 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Unconformity")
  STYLE
   COLOR "#b540df"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Unconformity 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Unconformity")
  STYLE
   PATTERN 3 5 END
   COLOR "#b540df"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Unconformity 1"
 END
 PROJECTION
  "init=epsg:3034"
 END  
END

@nmtoken
Copy link

nmtoken commented Oct 12, 2021

For grouping to work would need something like:

LAYER
    NAME "gc3d_gsi_limits_copy1"
    GROUP "gc3d_gsi_limits"
    TYPE Line
    STATUS on
    METADATA
     "ows_title" "gc3d_gsi_limits (4 to 6)"
     "ows_abstract" "A copy of gc3d_gsi_limits (scalefrom = 4 AND scaleto = 6)"
     "ows_group_title" "Geoconnect3D gsi limits"
     "ows_group_abstract" "Group of Geoconnect3D gsi limits data categorized by scalefrom and scaleto ranges"
     "gml_featureid" "ogc_fid"
     "ows_featureid" "ogc_fid"
     "ows_include_items" "all"
     "gml_include_items" "all"
     "gml_types" "auto"
     "ows_srs" "EPSG:3034 EPSG:3857 EPSG:4258 EPSG:4326"
     "gml_geometries" "msGeometry"
     "gml_msGeometry_type" "Line"
     "dataset_path" "/egdi/shared/datasets/geoconnect3d/gc3d_gsi_sf.gpkg"
     "ows_extent" "2629527.682252142 2895001.265000496 3056936.1140277805 3294942.869486996"
     "wms_style" "default"
     "wms_style_default_legendurl_href" "/egdi/get_legend.jsp?layer=10970"
     "wms_style_default_legendurl_format" "image/png"
     "wms_style_default_legendurl_height" "250"
     "wms_style_default_legendurl_width" "250"
     "ows_inspire_capabilities" "url"
     "ows_inspire_metadataurl_format" "application/xml"
     "ows_inspire_metadataurl_href" "https://egdi.geology.cz/record/xml/61603ba9-e7a8-46f9-9076-2eaf0a010855"
     "ows_metadataurl_format" "text/html"
     "ows_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
     "ows_metadataurl_type" "TC211"
    END
    HEADER "templates/wms_header.html" 
    TEMPLATE "templates/std_template.html"  # Otherwise not queryable
    FOOTER "templates/wms_footer.html"
    CONNECTIONTYPE POSTGIS 
    CONNECTION "host=geusmapcachedb dbname=egdi user=gis_viewer password=view2Qis port=5432"
    DATA "wkb_geometry FROM (SELECT * FROM project_geoconnect3d.gc3dgsilimits WHERE scalefrom = 4 AND scaleto = 6) AS t USING UNIQUE ogc_fid SRID 3034 FILTER"
    LABELCACHE on
    MAXSCALEDENOM 2000000
    MINSCALEDENOM 500000
    CLASS
     NAME "gc3d_gsi_limits"
     # dummy expression has no matches
     EXPRESSION ([linetype] = -1)
     STYLE
      # Omit COLOR RGB for no colour
     END
    END
    CLASS
     EXPRESSION ([linetype] = 0 AND "[category]" = "Contact")
     STYLE
      COLOR "#000004"
      WIDTH 1
      LINEJOIN bevel
     END
     TITLE "Contact 0"
    END
    CLASS
     EXPRESSION ([linetype] = 1 AND "[category]" = "Contact")
     STYLE
      PATTERN 3 5 END
      COLOR "#000004"
      WIDTH 1
      LINEJOIN round
     END
     TITLE "Contact 1"
    END
    CLASS
     EXPRESSION ([linetype] = 0 AND "[category]" = "Crustal boundary")
     STYLE
      COLOR "#208719"
      WIDTH 1
      LINEJOIN bevel
     END
     TITLE "Crustal boundary 0"
    END
    CLASS
     EXPRESSION ([linetype] = 1 AND "[category]" = "Crustal boundary")
     STYLE
      PATTERN 3 5 END
      COLOR "#208719"
      WIDTH 1
      LINEJOIN round
     END
     TITLE "Crustal boundary 1"
    END
    CLASS
     EXPRESSION ([linetype] = 0 AND "[category]" = "Fault")
     STYLE
      COLOR "#eb0c23"
      WIDTH 1
      LINEJOIN bevel
     END
     TITLE "Fault 0"
    END
    CLASS
     EXPRESSION ([linetype] = 1 AND "[category]" = "Fault")
     STYLE
      PATTERN 3 5 END
      COLOR  "#eb0c23"
      WIDTH 1
      LINEJOIN round
     END
     TITLE "Fault 1"
    END
    CLASS
     EXPRESSION ([linetype] = 0 AND "[category]" = "Lineament")
     STYLE
      COLOR "#3cf03c"
      WIDTH 1
      LINEJOIN bevel
     END
     TITLE "Lineament 0"
    END
    CLASS
     EXPRESSION ([linetype] = 1 AND "[category]" = "Lineament")
     STYLE
      PATTERN 3 5 END
      COLOR "#3cf03c"
      WIDTH 1
      LINEJOIN round
     END
     TITLE "Lineament 1"
    END
    CLASS
     EXPRESSION ([linetype] = 0 AND "[category]" = "Orogenic front")
     STYLE
      COLOR "#35e1ed"
      WIDTH 1
      LINEJOIN bevel
     END
     TITLE "Orogenic front 0"
    END
    CLASS
     EXPRESSION ([linetype] = 1 AND "[category]" = "Orogenic front")
     STYLE
      PATTERN 3 5 END
      COLOR "#35e1ed"
      WIDTH 1
      LINEJOIN round
     END
     TITLE "Orogenic front 1"
    END
    CLASS
     EXPRESSION ([linetype] = 0 AND "[category]" = "Plate boundary")
     STYLE
      COLOR "#280c99"
      WIDTH 1
      LINEJOIN bevel
     END
     TITLE "Plate boundary 0"
    END
    CLASS
     EXPRESSION ([linetype] = 1 AND "[category]" = "Plate boundary")
     STYLE
      PATTERN 3 5 END
      COLOR "#280c99"
      WIDTH 1
      LINEJOIN round
     END
     TITLE "Plate boundary 1"
    END
    CLASS
     EXPRESSION ([linetype] = 0 AND "[category]" = "Unconformity")
     STYLE
      COLOR "#b540df"
      WIDTH 1
      LINEJOIN bevel
     END
     TITLE "Unconformity 0"
    END
    CLASS
     EXPRESSION ([linetype] = 1 AND "[category]" = "Unconformity")
     STYLE
      PATTERN 3 5 END
      COLOR "#b540df"
      WIDTH 1
      LINEJOIN round
     END
     TITLE "Unconformity 1"
    END
    PROJECTION
     "init=epsg:3034"
    END  
END

LAYER
 NAME "gc3d_gsi_limits_copy2"
 GROUP "gc3d_gsi_limits"
 TYPE Line
 STATUS on
 METADATA
  "ows_title" "gc3d_gsi_limits (6 to 10)"
  "ows_abstract" "A copy of gc3d_gsi_limits (scalefrom = 6 AND scaleto = 10)"
  # group title and abstract need only be set on one member of the group
  "ows_group_title" "Geoconnect3D gsi limits"
  "ows_group_abstract" "Group of Geoconnect3D gsi limits data categorized by scalefrom and scaleto ranges"
  "gml_featureid" "ogc_fid"
  "ows_featureid" "ogc_fid"
  "ows_include_items" "all"
  "gml_include_items" "all"
  "gml_types" "auto"
  "ows_srs" "EPSG:3034 EPSG:3857 EPSG:4258 EPSG:4326"
  "gml_geometries" "msGeometry"
  "gml_msGeometry_type" "Line"
  "dataset_path" "/egdi/shared/datasets/geoconnect3d/gc3d_gsi_sf.gpkg"
  "ows_extent" "2629527.682252142 2895001.265000496 3056936.1140277805 3294942.869486996"
  "wms_style" "default"
  "wms_style_default_legendurl_href" "/egdi/get_legend.jsp?layer=10970"
  "wms_style_default_legendurl_format" "image/png"
  "wms_style_default_legendurl_height" "250"
  "wms_style_default_legendurl_width" "250"
  "ows_inspire_capabilities" "url"
  "ows_inspire_metadataurl_format" "application/xml"
  "ows_inspire_metadataurl_href" "https://egdi.geology.cz/record/xml/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_format" "text/html"
  "ows_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_type" "TC211"
 END
 HEADER "templates/wms_header.html" 
 TEMPLATE "templates/std_template.html"  # Otherwise not queryable
 FOOTER "templates/wms_footer.html"
 CONNECTIONTYPE POSTGIS 
 CONNECTION "host=geusmapcachedb dbname=egdi user=gis_viewer password=view2Qis port=5432"
 DATA "wkb_geometry FROM (SELECT * FROM project_geoconnect3d.gc3dgsilimits WHERE scalefrom = 6 AND scaleto = 10) AS t USING UNIQUE ogc_fid SRID 3034 FILTER"
 LABELCACHE on
 MAXSCALEDENOM 500000
 MINSCALEDENOM 25000
 CLASS
  NAME "gc3d_gsi_limits"
  # dummy expression has no matches
  EXPRESSION ([linetype] = -1)
  STYLE
   # Omit COLOR RGB for no colour
  END
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Contact")
  STYLE
   COLOR "#000004"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Contact 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Contact")
  STYLE
   PATTERN 3 5 END
   COLOR "#000004"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Contact 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Crustal boundary")
  STYLE
   COLOR "#208719"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Crustal boundary 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Crustal boundary")
  STYLE
   PATTERN 3 5 END
   COLOR "#208719"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Crustal boundary 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Fault")
  STYLE
   COLOR "#eb0c23"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Fault 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Fault")
  STYLE
   PATTERN 3 5 END
   COLOR  "#eb0c23"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Fault 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Lineament")
  STYLE
   COLOR "#3cf03c"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Lineament 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Lineament")
  STYLE
   PATTERN 3 5 END
   COLOR "#3cf03c"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Lineament 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Orogenic front")
  STYLE
   COLOR "#35e1ed"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Orogenic front 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Orogenic front")
  STYLE
   PATTERN 3 5 END
   COLOR "#35e1ed"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Orogenic front 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Plate boundary")
  STYLE
   COLOR "#280c99"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Plate boundary 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Plate boundary")
  STYLE
   PATTERN 3 5 END
   COLOR "#280c99"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Plate boundary 1"
 END
 CLASS
  EXPRESSION ([linetype] = 0 AND "[category]" = "Unconformity")
  STYLE
   COLOR "#b540df"
   WIDTH 1
   LINEJOIN bevel
  END
  TITLE "Unconformity 0"
 END
 CLASS
  EXPRESSION ([linetype] = 1 AND "[category]" = "Unconformity")
  STYLE
   PATTERN 3 5 END
   COLOR "#b540df"
   WIDTH 1
   LINEJOIN round
  END
  TITLE "Unconformity 1"
 END
 PROJECTION
  "init=epsg:3034"
 END  
END

@renatabarros
Copy link
Author

So I should create a copy of the dataset for every scaleFrom/scaleTo combination I have, then list them with the corresponding rules, one LAYER after the other?

@nmtoken
Copy link

nmtoken commented Oct 19, 2021

That is I think the only way to do it. Would work with or without grouping (that is assigning all the layers to a group); grouping would be neater, but I'm not sure if the configuration editor will allow it.

@renatabarros
Copy link
Author

renatabarros commented Oct 20, 2021

I cannot make it work :(

I also tried Union Layer and no luck:

LAYER
 NAME "gc3d_gsi_units_union"
 GROUP "egdi"
 TYPE Polygon
 STATUS on
 CONNECTIONTYPE UNION
 CONNECTION "gc3d_gsi_units26,gc3d_gsi_units24" #reference to source layers
 STYLEITEM "AUTO" 
 CLASS
 END
 PROJECTION
  "init=epsg:3034"
 END  
END

LAYER
 NAME "gc3d_gsi_units26"
 GROUP "egdi"
 TYPE Polygon
 STATUS off
 METADATA
  "ows_title" "gc3d_gsi_units26"
  "ows_abstract" "Auto generated data set"
  "ows_group_title" "EGDI"
  "ows_group_abstract" "EGDI"
  "gml_featureid" "ogc_fid"
  "ows_featureid" "ogc_fid"
  "ows_include_items" "all"
  "gml_include_items" "all"
  "gml_types" "auto"
  "ows_srs" "EPSG:3034"
  "gml_geometries" "msGeometry"
  "gml_msGeometry_type" "Polygon"
  "dataset_path" "/egdi/shared/datasets/geoconnect3d/gc3d_gsi_sf.gpkg"
  "ows_extent" "2658592.7609132337 2909815.2107352 3039373.5745098125 3290453.4667510046"
  "wms_style" "default"
  "wms_style_default_legendurl_href" "/egdi/get_legend.jsp?layer=10972"
  "wms_style_default_legendurl_format" "image/png"
  "wms_style_default_legendurl_height" "250"
  "wms_style_default_legendurl_width" "250"
  "ows_inspire_capabilities" "url"
  "ows_inspire_metadataurl_format" "application/xml"
  "ows_inspire_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_format" "text/xml"
  "ows_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_type" "TC211"
 END
 HEADER "templates/wms_header.html" 
 TEMPLATE "templates/std_template.html"  # Otherwise not queryable
 FOOTER "templates/wms_footer.html"
 CONNECTIONTYPE POSTGIS 
 CONNECTION "host=geusmapcachedb dbname=egdi user=gis_viewer password=view2Qis port=5432"
 DATA "wkb_geometry FROM (SELECT * FROM project_geoconnect3d.gc3dgsiunits WHERE scalefrom = 2 AND scaleto = 6) AS t USING UNIQUE ogc_fid SRID 3034 FILTER"
 LABELCACHE on
 CLASS
  NAME "gc3d_gsi_units26"
  STYLE
   OUTLINECOLOR 0 0 0
   COLOR 255 85 0
  END
 PROJECTION
  "init=epsg:3034"
 END  
END

LAYER
 NAME "gc3d_gsi_units24"
 GROUP "egdi"
 TYPE Polygon
 STATUS off
 METADATA
  "ows_title" "gc3d_gsi_units26"
  "ows_abstract" "Auto generated data set"
  "ows_group_title" "EGDI"
  "ows_group_abstract" "EGDI"
  "gml_featureid" "ogc_fid"
  "ows_featureid" "ogc_fid"
  "ows_include_items" "all"
  "gml_include_items" "all"
  "gml_types" "auto"
  "ows_srs" "EPSG:3034"
  "gml_geometries" "msGeometry"
  "gml_msGeometry_type" "Polygon"
  "dataset_path" "/egdi/shared/datasets/geoconnect3d/gc3d_gsi_sf.gpkg"
  "ows_extent" "2658592.7609132337 2909815.2107352 3039373.5745098125 3290453.4667510046"
  "wms_style" "default"
  "wms_style_default_legendurl_href" "/egdi/get_legend.jsp?layer=10972"
  "wms_style_default_legendurl_format" "image/png"
  "wms_style_default_legendurl_height" "250"
  "wms_style_default_legendurl_width" "250"
  "ows_inspire_capabilities" "url"
  "ows_inspire_metadataurl_format" "application/xml"
  "ows_inspire_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_format" "text/xml"
  "ows_metadataurl_href" "https://egdi.geology.cz/record/basic/61603ba9-e7a8-46f9-9076-2eaf0a010855"
  "ows_metadataurl_type" "TC211"
 END
 HEADER "templates/wms_header.html" 
 TEMPLATE "templates/std_template.html"  # Otherwise not queryable
 FOOTER "templates/wms_footer.html"
 CONNECTIONTYPE POSTGIS 
 CONNECTION "host=geusmapcachedb dbname=egdi user=gis_viewer password=view2Qis port=5432"
 DATA "wkb_geometry FROM (SELECT * FROM project_geoconnect3d.gc3dgsiunits WHERE scalefrom = 2 AND scaleto = 4) AS t USING UNIQUE ogc_fid SRID 3034 FILTER"
 LABELCACHE on
 CLASS
  NAME "gc3d_gsi_units24"
  STYLE
   OUTLINECOLOR 0 0 0
   COLOR 80 0 0
  END
 PROJECTION
  "init=epsg:3034"
 END  
END

@nmtoken
Copy link

nmtoken commented Oct 20, 2021

Your layers don't have min and max scale denominators in them.

When you say doesn't work, do you mean none of the layers are showing at all?
Do you get any warning message in the mapserver-definition test window?

@renatabarros
Copy link
Author

Nothing shows at all - for the moment I just left them in different colours to see if the union works, that's why the scale rules are not set.

I get a red window running the test in this dataset, but no message
image

@nmtoken
Copy link

nmtoken commented Oct 20, 2021

can you click through the advanced button and see if there is an error reported, may have to view frame source

@renatabarros
Copy link
Author

I got this:
image

@nmtoken
Copy link

nmtoken commented Oct 20, 2021

HIKE have solved the issue of scale layering for their data, as shown in the following map:

https://data.geus.dk/egdi/?mapname=hike_faultdb&showList=false#baslay=baseEMODnet&extent=4138270,2463410,4231270,2530850&layers=hike_detail,hike_overview,hike_polygons

They have three layers (VIEWS in a single GeoPackage) hike_detail, hike_overview , hike_polygons each with a style (SLD) that includes MinScaleDenominator and MaxScaleDenominator as:

For hike_polygons

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" xmlns:se="http://www.opengis.net/se" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc">
    <NamedLayer>
        <se:Name>HIKEFaultDBv16 HIKEPolygonGeometries</se:Name>
        <UserStyle>
            <se:Name>HIKEFaultDBv16 HIKEPolygonGeometries</se:Name>
            <se:FeatureTypeStyle>
                <se:Rule>
                    <se:Name>Single symbol</se:Name>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:PolygonSymbolizer>
                        <se:Fill>
                            <se:SvgParameter name="fill">#b7484b</se:SvgParameter>
                        </se:Fill>
                        <se:Stroke>
                            <se:SvgParameter name="stroke">#232323</se:SvgParameter>
                            <se:SvgParameter name="stroke-width">1</se:SvgParameter>
                            <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
                        </se:Stroke>
                    </se:PolygonSymbolizer>
                </se:Rule>
            </se:FeatureTypeStyle>
        </UserStyle>
    </NamedLayer>
</StyledLayerDescriptor>

For hike_detail

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" version="1.1.0"
    xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd"
    xmlns:se="http://www.opengis.net/se" xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc">
    <NamedLayer>
        <se:Name>HIKEFaultDBv16 HIKE_FAULTDB_DETAIL</se:Name>
        <UserStyle>
            <se:Name>HIKEFaultDBv16 HIKE_FAULTDB_DETAIL</se:Name>
            <se:FeatureTypeStyle>
                <se:Rule>
                    <se:Name/>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:Stroke>
                            <se:SvgParameter name="stroke">#b7484b</se:SvgParameter>
                            <se:SvgParameter name="stroke-width">1</se:SvgParameter>
                            <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
                            <se:SvgParameter name="stroke-linecap">square</se:SvgParameter>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>N</se:Name>
                    <se:Description>
                        <se:Title>N</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>N</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>NNE</se:Name>
                    <se:Description>
                        <se:Title>NNE</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>NNE</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#232323</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>22.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>NE</se:Name>
                    <se:Description>
                        <se:Title>NE</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>NE</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>45</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>ENE</se:Name>
                    <se:Description>
                        <se:Title>ENE</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>ENE</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>67.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>E</se:Name>
                    <se:Description>
                        <se:Title>E</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>E</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>90</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>ESE</se:Name>
                    <se:Description>
                        <se:Title>ESE</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>ESE</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>112.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>SE</se:Name>
                    <se:Description>
                        <se:Title>SE</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>SE</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>135</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>SSE</se:Name>
                    <se:Description>
                        <se:Title>SSE</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>SSE</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>157.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>S</se:Name>
                    <se:Description>
                        <se:Title>S</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>180</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>SSW</se:Name>
                    <se:Description>
                        <se:Title>SSW</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>SSW</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>202.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>SW</se:Name>
                    <se:Description>
                        <se:Title>SW</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>SW</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>225</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>WSW</se:Name>
                    <se:Description>
                        <se:Title>WSW</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>WSW</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>247.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>W</se:Name>
                    <se:Description>
                        <se:Title>W</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>W</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>270</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>WNW</se:Name>
                    <se:Description>
                        <se:Title>WNW</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>WNW</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>292.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>NW</se:Name>
                    <se:Description>
                        <se:Title>NW</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>NW</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>325</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
                <se:Rule>
                    <se:Name>NNW</se:Name>
                    <se:Description>
                        <se:Title>NNW</se:Title>
                    </se:Description>
                    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>DIP_DIRECT</ogc:PropertyName>
                            <ogc:Literal>NNW</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <se:MinScaleDenominator>0</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>1000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:VendorOption name="rotateMarker">0</se:VendorOption>
                        <se:Stroke>
                            <se:GraphicStroke>
                                <se:Graphic>
                                    <se:Mark>
                                        <se:WellKnownName>line</se:WellKnownName>
                                        <se:Fill>
                                            <se:SvgParameter name="fill">#000000</se:SvgParameter>
                                        </se:Fill>
                                        <se:Stroke>
                                            <se:SvgParameter name="stroke">#000000</se:SvgParameter>
                                            <se:SvgParameter name="stroke-width"
                                                >0.5</se:SvgParameter>
                                        </se:Stroke>
                                    </se:Mark>
                                    <se:Size>1000</se:Size>
                                    <se:Rotation>
                                        <ogc:Literal>337.5</ogc:Literal>
                                    </se:Rotation>
                                </se:Graphic>
                                <se:Gap>
                                    <ogc:Literal>5000</ogc:Literal>
                                </se:Gap>
                            </se:GraphicStroke>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
            </se:FeatureTypeStyle>
        </UserStyle>
    </NamedLayer>
</StyledLayerDescriptor>

For hike_overview

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" xmlns:se="http://www.opengis.net/se" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc">
    <NamedLayer>
        <se:Name>HIKEFaultDBv16 HIKE_FAULTDB_OVERVIEW</se:Name>
        <UserStyle>
            <se:Name>HIKEFaultDBv16 HIKE_FAULTDB_OVERVIEW</se:Name>
            <se:FeatureTypeStyle>
                <se:Rule>
                    <se:Name>Single symbol</se:Name>
                    <se:MinScaleDenominator>1000000</se:MinScaleDenominator>
                    <se:MaxScaleDenominator>100000000</se:MaxScaleDenominator>
                    <se:LineSymbolizer>
                        <se:Stroke>
                            <se:SvgParameter name="stroke">#b7484b</se:SvgParameter>
                            <se:SvgParameter name="stroke-width">1</se:SvgParameter>
                            <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
                            <se:SvgParameter name="stroke-linecap">square</se:SvgParameter>
                        </se:Stroke>
                    </se:LineSymbolizer>
                </se:Rule>
            </se:FeatureTypeStyle>
        </UserStyle>
    </NamedLayer>
</StyledLayerDescriptor>

They use default connection details in the mapfile for example:

 DATA "wkb_geometry FROM (SELECT * FROM project_hike.hikedetail) AS t USING UNIQUE ogc_fid SRID 3034 FILTER"
 LABELCACHE on
 CLASS
  STYLE
   SYMBOL "circle"
   SIZE 2
   COLOR 255 0 0 
   OPACITY 100
  END
    LABEL
   FONT arialbold
   TYPE TRUETYPE
   SIZE 8
   OUTLINECOLOR 175 175 175
   COLOR 0 0 0
   POSITION uc # upper-center
  END
 END

@nmtoken
Copy link

nmtoken commented Oct 20, 2021

@renatabarros not sure if this is a solution for you considering your previous issue (#469 ), others may know different

@renatabarros
Copy link
Author

Thank you very much James for all the help these days! I'll have a call with Rob tomorrow to see if I can achieve a similar solution for our data, and will keep you posted.

@nmtoken
Copy link

nmtoken commented Oct 21, 2021

Hope you can solve it with SLD. As you say you have more than two combinations, I think you have 26 as below, in case you haven't already worked it out:

layer FROM = MAXSCALEDENOM TO = MINSCALEDENOM
r2r_f1t2 MAXSCALEDENOM 15000000 MINSCALEDENOM 10000000
r2r_f1t3 MAXSCALEDENOM 15000000 MINSCALEDENOM 5000000
r2r_f1t4 MAXSCALEDENOM 15000000 MINSCALEDENOM 2000000
r2r_f1t5 MAXSCALEDENOM 15000000 MINSCALEDENOM 1000000
r2r_f1t6 MAXSCALEDENOM 15000000 MINSCALEDENOM 500000
r2r_f1t9 MAXSCALEDENOM 15000000 MINSCALEDENOM 50000
r2r_f2t3 MAXSCALEDENOM 10000000 MINSCALEDENOM 5000000
r2r_f2t4 MAXSCALEDENOM 10000000 MINSCALEDENOM 2000000
r2r_f2t8 MAXSCALEDENOM 10000000 MINSCALEDENOM 100000
r2r_f3t4 MAXSCALEDENOM 5000000 MINSCALEDENOM 2000000
r2r_f3t5 MAXSCALEDENOM 5000000 MINSCALEDENOM 1000000
r2r_f3t6 MAXSCALEDENOM 5000000 MINSCALEDENOM 500000
r2r_f3t9 MAXSCALEDENOM 5000000 MINSCALEDENOM 50000
r2r_f4t10 MAXSCALEDENOM 2000000 MINSCALEDENOM 25000
r2r_f4t5 MAXSCALEDENOM 2000000 MINSCALEDENOM 1000000
r2r_f4t7 MAXSCALEDENOM 2000000 MINSCALEDENOM 250000
r2r_f4t8 MAXSCALEDENOM 2000000 MINSCALEDENOM 100000
r2r_f4t9 MAXSCALEDENOM 2000000 MINSCALEDENOM 50000
r2r_f5t6 MAXSCALEDENOM 10000000 MINSCALEDENOM 500000
r2r_f5t7 MAXSCALEDENOM 10000000 MINSCALEDENOM 250000
r2r_f5t9 MAXSCALEDENOM 10000000 MINSCALEDENOM 50000
r2r_f6t10 MAXSCALEDENOM 500000 MINSCALEDENOM 25000
r2r_f6t7 MAXSCALEDENOM 500000 MINSCALEDENOM 250000
r2r_f6t8 MAXSCALEDENOM 500000 MINSCALEDENOM 100000
r2r_f6t9 MAXSCALEDENOM 500000 MINSCALEDENOM 50000
r2r_f7t9 MAXSCALEDENOM 250000 MINSCALEDENOM 50000

@renatabarros
Copy link
Author

Hi James, an update on this issue: I have decided to split the results of each area of interest into two views "overview" and "detail" depending on the scaleFrom set by the partners (similarly to HIKE), and duplicate the layers in a way that the correct view is displayed in the right scale range. Far from ideal but I didn't manage to correctly set up the views within the geopackage.

But for this to work properly, one thing I didn't manage to do yet is to set layers as always on as HIKE did. I have STATUS DEFAULT in all of them, and changed Default YES in the couplings, but still I need to select them on the map (however selecting any layer turns all others on). Any fix to this?

@nmtoken
Copy link

nmtoken commented Oct 26, 2021

You can edit the coupling between dataset and map so the data is always on.

image

@renatabarros
Copy link
Author

Thanks for the answer, James. I did this for all layers but on the map (running from the coupling) I need to select at least one manually for all of them to appear. However I just saw that the map embedded on the project's web page updates properly, so all good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants