Laagnaam conventies

technische beperking: max 59 karakters (63 limiet van Postgres -4 gereserveerde)


De naamgevingsconventie is bedoeld om de databronnen systematische namen te geven waarmee ze bekend zijn in de MercatorNet infrastructuur. 

Er moeten een aantal regels in acht genomen worden en daarnaast worden er een aantal suggesties gegeven.


Een goede naam voor de databron voldoet aan de volgende eisen:

  • De naam moet uniek zijn binnen een bepaalde omgeving (name space) (GDI MercatorNet, GDI Vlaanderen, INSPIRE geoportal, …)
  • De naam moet voor zichzelf spreken (duidelijke indicatie geven wat de bron bevat).
  • De naam moet bruikbaar zijn in software omgevingen, en onafhankelijk zijn van gebruikte softwareomgeving of platform.
  • Lengte van de naam is beperkt - sommige software pakketten hebben een beperking in naamlengte (bv. lengte van een attribuutnaam, lengte van een dataset naam, …)
  • Tekens in de naam beperkt - sommige software pakketten hebben een beperking op tekens die in de naam mogen voorkomen (bv. geen ?, *, /, -, …)
  • Voor menselijke gebruikers wordt een menselijk verstaanbare “titel” voorzien (bv. gebruik in grafische gebruikersinterfaces).


Binnen MercatorNet betekent dit het volgende:

<thema>_<subthema>_<schaal>_<jaar>_<versie>

Element

Syntax

Thema

(afkorting INSPIRE thema)

2-3 karakters

voorbeeld: hh, lu, ps..

Subthema(s)


3-6 karakters *

voorbeeld: bpa, dsi_bpa, gemt

Versie

(weergave datum in laagnaam)

Jaartal - yyyy
Datum - yyyy-mm-dd
Tijdstip - YYYY-MM-DDThh:mm:ss

Nominale schaal

2-4 karakters

voorbeeld: 1000, 1K, 10K, 1M

Weergave schaal

2-4 karakters

voorbeeld: 1000, 1K, 10K, 1M

Type

  • std = standaard stijl
  • sch = stijl met schaal
  • kl = kleurenversie
  • zw = zwart/wit versie
  • trp = transparante versie
  • flt =  versie met filter 

Attribuutnaam conventies

  • attribuutnamen moeten in kleine letters en bestaan alleen uit [a-z,0-9,_]: de motivatie hierbij is dat dit een Postgres conventie is. Bijkomend is het zo dat ArcGIS moeite heeft met het inlezen van data met hoofdletters uit Postgres.
  • attribuutnamen bij voorkeur korter dan 10 karakters: de motivatie hierbij is dat bij een export naar Shapefile de attribuutnamen bepert zijn tot 10 karakters. Aangezien elke laag een objectencatalogus meekrijgt, kan de oorspronkelijke techninsche veldnaam
  • geom: de geometrie-kolom MOET de naam 'geom' krijgen. Afwijkingen zijn alleen toegestaan om redenen van vergelijkbaarheid met reeds gepubliceerde lagen.
  • behouden blijven.
  • datatype datum: gebruik het Postgres datatype DATE voor datums. Idealiter wordt ook een tijdzone meegegeven met het datatype. In Postgres is dat helaas niet mogelijk; er wordt verondersteld dat datum de lokale tijdszone (CET Brussel) heeft.
  • datatype voor tijdsaanduidingen: gebruik steeds een Postgres datatype met tijdszone indicatie (TIMESTAMP WITH TIMEZONE).

Motivatie: Door een timestamp (en geen string) te gebruiken kunnen we méér doen met de data; zoals bijvoorbeeld sorteren op timestamp, of tijdsafhankelijke weergave via WMS-Time. Door een tijdszone expliciet toe te voegen; zullen er minder conflicten zijn bij conversie naar andere tijdszones.


Datalaag titel conventies

  • Hou de titel kort: vermijd "In Vlaanderen" of "Omgevingsloket"
  • Gebruik geen vakjargon of afkortingen in publiek toegankelijke datasets
  • Vermeld eventueel een jaar of versie
  • Als een laag een beveiligde laag is, moet de titel van de laag dit vermelden "(beveiligd)"


Geometrie conventies

  • in Lambert 72 (31370) coördinaten
  • geen generiek datatype geometry, maar specifiek: point, linestring, polygon, etc.
  • geometrie-naam MOET de naam 'geom' hebben.
  • nauwkeurigheid beperken tot 3 decimalen (millimeter).
  • OGC valid
  • Geometrieën bevatten geen Z-waarden of measures; indien die geen betekenis hebben (bijvoorbeeld omdat die altijd waarde 0 hebben). De motivatie hierbij is om de geometrie niet onnodig te verzwaren. Bovendien is het zo dat Z-waarden problemen geeft met ArcGIS bij import van WFS-data.


Stijl en legende conventies

  • Gebruik een MaxScaleDenominator / MinScaleDenominator zodat een laag alleen wordt afgebeeld op het relevante schaalniveau. Dit zorgt ervoor dat kaarten niet overspoeld worden met teveel details. Daarnaast maakt het de MercatorNet dienstverlening ook performanter: een WMS GetMap requests kan soms vereisen dat GeoServer de volledige tabel inleest.
  • De legende van een kaartlaag moet een label bevatten voor alle legende-symbolen, ook indien maar één symbool gebruikt wordt voor de laag. In dat laatste geval moet aan de SLD een "dummy styling rule" worden toegevoegd, want GeoServer zal standaard geen label toevoegen.


voorbeeld_style_.sld
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
<sld:NamedLayer>
  <sld:Name>pf_cv</sld:Name>
  <sld:UserStyle>
    <sld:Name>pf_cv</sld:Name>
    <sld:Title>pf_cv</sld:Title>
    <sld:Abstract>pf_cv</sld:Abstract>
    <sld:FeatureTypeStyle>
      <sld:Name>pf_cv</sld:Name>
      <sld:Rule>
        <sld:Name>pf_cv</sld:Name>
        <sld:Title>controleverslagen inspectie</sld:Title>
        <sld:PointSymbolizer>
          <sld:Graphic>
            <sld:Mark>
              <WellKnownName>square</WellKnownName>
              <sld:Fill>
                <sld:CssParameter name="fill">#cd16b1</sld:CssParameter>
              </sld:Fill>
              <sld:Stroke>
                <sld:CssParameter name="stroke">#0000FF</sld:CssParameter>
                <sld:CssParameter name="stroke-width">1</sld:CssParameter>
              </sld:Stroke>              
            </sld:Mark>
            <sld:Size>12</sld:Size>
          </sld:Graphic>
        </sld:PointSymbolizer>
      </sld:Rule>
<!-- dummy styling rule -->
      <sld:Rule>
        <sld:MaxScaleDenominator>0.0</sld:MaxScaleDenominator>
        <sld:TextSymbolizer>
          <sld:Label>
            <ogc:PropertyName>uri</ogc:PropertyName>
          </sld:Label>
          <sld:LabelPlacement>
            <sld:PointPlacement>
              <sld:AnchorPoint>
                <sld:AnchorPointX>0.0</sld:AnchorPointX>
                <sld:AnchorPointY>0.5</sld:AnchorPointY>
              </sld:AnchorPoint>
            </sld:PointPlacement>
          </sld:LabelPlacement>
        </sld:TextSymbolizer>
      </sld:Rule>      
    </sld:FeatureTypeStyle>
  </sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>



Stabiliteit conventies

Gebruikers van MercatorNet web services moeten kunnen werken met een stabiele interface. Dit betekent dat laagnaam, attribuutnaam, en attribuuttypes best NIET meer wijzigen na publicatie. Indien een wijzging noodzakelijk is kan de impact van een wijziging kan best op voorhand gecommuniceerd en geëvalueerd worden met belangrijke afnemers.



Performantie conventies





  • Geen labels