Changes between Version 71 and Version 72 of Nl:Help/Styles/MapCSSImplementation


Ignore:
Timestamp:
2021-11-07T12:11:27+01:00 (4 years ago)
Author:
DiGro
Comment:

partially adjusted to revision 167

Legend:

Unmodified
Added
Removed
Modified
  • Nl:Help/Styles/MapCSSImplementation

    v71 v72  
    1 [[TranslatedPages(revision=196)]]
     1[[TranslatedPages(revision=197)]]
    22[[PageOutline(2-10,Inhoud)]]
    33= MapCSS Implementation=
     
    4141
    4242== Selectoren ==
    43 ''Selectoren'' omvatten de filterexpressies van een MapCSS-regel. De regel wordt alleen toegepast op een object op de kaart, als de selector ervan overeenkomt
    44 met het object.
    45 
    46 Selectoren in MapCSS zijn anders dan voor standaard CSS voor het web. MapCSS ondersteunt alleen een subset van de standaard CSS-selectoren, maar
    47 breidt ze uit met aanvullende selectoren die zijn vereist voor gegevens van OSM.
     43''Selectoren'' omvatten de filterexpressies van een MapCSS-regel. De regel wordt alleen toegepast op een object op de kaart, als de selector ervan overeenkomt met het object.
     44
     45Selectoren in MapCSS zijn anders dan voor standaard CSS voor het web. MapCSS ondersteunt alleen een subset van de standaard CSS-selectoren, maar breidt ze uit met aanvullende selectoren die zijn vereist voor gegevens van OSM.
    4846
    4947Enkele basisvoorbeelden:
     
    8482|-------------------------------------------------------------------------------
    8583{{{#!td align=center  valign=top
    86 {{{node}}}, {{{way}}}, {{{relation}}}
     84`node`, `way`, `relation`
    8785}}}
    8886{{{#!td align=center  valign=top   
     
    9189|-------------------------------------------------------------------------------
    9290{{{#!td align=center  valign=top
    93 {{{area}}}
     91`area`
    9492}}}
    9593{{{#!td align=left  valign=top   
     
    10199way[natural=beach], relation[type=multipolygon][natural=beach] {...}
    102100}}}
    103 Onthoud dat {{{area}}} oook niet gesloten wegen selecteert, dus kan het nuttig zijn de pseudoklasse {{{:closed}}} toe te voegen. De Validatie van JOSM zal een waarschuwing geven voor niet gesloten wegen die een stijl voor een gebied hebben.
     101Onthoud dat `area` ook niet gesloten wegen selecteert, dus kan het nuttig zijn de pseudoklasse `:closed` toe te voegen. De Validatie van JOSM zal een waarschuwing geven voor niet gesloten wegen die een stijl voor een gebied hebben.
    104102}}}
    105103|-------------------------------------------------------------------------------
     
    108106}}}
    109107{{{#!td align=left  valign=top   
    110 De selector {{{meta}}} start een speciale regel die aan het begin van het bestand zou moeten staan. Het geeft soms algemene informatie over het stijlblad. Alle software die MapCSS ondersteunt zou in staat moeten zijn om deze gedeelten zonder fouten te parsen, gebruik dus geen exotische syntaxis extensies in dit gedeelte.
     108De selector `meta` start een speciale regel die aan het begin van het bestand zou moeten staan. Het geeft soms algemene informatie over het stijlblad. Alle software die MapCSS ondersteunt zou in staat moeten zijn om deze gedeelten zonder fouten te parsen, gebruik dus geen exotische syntaxis extensies in dit gedeelte.
    111109{{{
    112110#!css
     
    124122|-------------------------------------------------------------------------------
    125123{{{#!td align=center  valign=top
    126 {{{canvas}}}
     124`canvas`
    127125}}}
    128126{{{#!td align=left  valign=top   
     
    150148|-
    151149{{{#!td align=center
    152 {{{fill-color}}}
     150`fill-color`
    153151}}}
    154152{{{#!td
     
    159157}}}
    160158{{{#!td align=center
    161 {{{black}}}
     159`black`
    162160}}}
    163161|-
    164162{{{#!td align=center
    165 {{{default-points}}}
     163`default-points`
    166164}}}
    167165{{{#!td
     
    172170}}}
    173171{{{#!td align=center
    174 {{{true}}}
     172`true`
    175173}}}
    176174|-
    177175{{{#!td align=center
    178 {{{default-lines}}}
     176`default-lines`
    179177}}}
    180178{{{#!td
     
    185183}}}
    186184{{{#!td align=center
    187 {{{true}}}
     185`true`
    188186}}}
    189187}}}
     
    210208* Voor compatibiliteit met de standaard MapCSS 0.2 wordt `relation[type=route][route=foot] way {/*...*/}`, zonder het teken groter dan `>` ook ondersteund. Er kan echter in dit geval geen [[#Linkselector]] worden gespecificeerd.
    211209
    212 
    213210=== Ouder-selector ===
    214211In aanvulling op kind-selector ondersteunt JOSM ook de notie van een '''ouder-selector'''. Onthoud dat ouder-selectoren een JOSM-specifieke uitbreiding zijn van MapCSS en niet aanwezig zijn in andere implementaties van MapCSS.
     
    228225
    229226=== Voorwaarde-selector ===
    230 Selectoren kunnen een set voorwaarden bevatten. Als één van deze voorwaarden evalueert naar 'false', komt de selector niet overeen en wordt de
    231 stijlregel niet toegepast.
     227Selectoren kunnen een set voorwaarden bevatten. Als één van deze voorwaarden evalueert naar 'false', komt de selector niet overeen en wordt de stijlregel niet toegepast.
    232228
    233229Een '''attribuut voorwaarde''' specificeert een voorwaarde op een tag van een object van OSM.
     
    290286|-------------------------------------------------------------------------------
    291287{{{#!td align=left  valign=top
    292 {{{^=}}}
     288`^=`
    293289}}}
    294290{{{#!td align=left  valign=top   
     
    571567}}}
    572568
    573 === Link-selector ===
    574 In een kind-selector kunt u voorwaarden formuleren in de koppeling tussen een ouder- en kind-object.
    575 
    576 Als de ouder een relatie is, kunt u voorwaarden formuleren voor de ''role'' dat een lid-object in deze relatie heeft.
    577 {{{
    578 #!css
    579 relation[type=route] >[role="link"] way {  /* komt overeen met elke weg die lid is van een relatie voor een route met de rol 'link' */
    580    color: blue;
    581 }
    582 }}}
    583 
    584 {{{#!th valign=top
    585 '''Operator'''
    586 }}}
    587 {{{#!th valign=top
    588 '''Beschrijving'''
    589 }}}
    590 {{{#!th valign=top
    591 '''Voorbeeld'''
    592 }}}
    593 |-------------------------------------------------------------------------------
    594 {{{#!td align=left  valign=top
    595 `=`
    596 }}}
    597 {{{#!td align=center  valign=top   
    598 Exacte overeenkomst van de naam van de rol. De naam van de {{{role}}} is verplicht in deze context.
    599 }}}
    600 {{{#!td align=left  valign=top   
    601 {{{
    602 #!css
    603 relation >[role=residential] way           
    604 relation >[role="Mijn naam"]   way           /* aanhalingstekens gebruiken als de waarde van de rol spaties of andere speciale tekens bevat */
    605 }}}
    606 }}}
    607 
    608 De operatoren {{{!=, ^=, $=, *=, en ~=}}} worden ook ondersteund. Bekijk [#condition_selector_operators voorwaarden operatoren selector].
    609 
    610 Knopen in wegen en leden in relaties zijn gesorteerd. U kunt voorwaarden formuleren voor de position van een knoop in een weg of een lid-
    611 object in een relatie. Positieve getallen tellen vanaf het eerste tot en met het laatste element, negatieve getallen (sinds r8236) tellen van het laatste tot en met het eerste element.
    612 
    613 {{{
    614 #!css
    615 relation[type=route] >[index=1] way {  /* komt overeen met de eerste weg die een lid is van de relatie van de route  */
    616    color: blue;
    617 }
    618 
    619 way >[index=-1] node {  /* komt overeen met de laatste knoop van een weg  */
    620    symbol-stroke-color: green;
    621 }
    622 
    623 way!:closed >[index=1] node!:connection,
    624 way!:closed >[index=-1] node!:connection {  /* komt overeen met alle eindknopen van enkele wegen */
    625    symbol-stroke-color: green;
    626 }
    627 }}}
    628569
    629570=== Gebied-selector ===
    630 
    631571U kunt testen of een ovject ligt binnen of buiten een specifiek gebied. JOSM heeft daar een interne database voor. Het [source:/trunk/resources/data/boundaries.osm bestand voor de gebieden] kan worden gedownload en worden geopend in JOSM om het te bekijken [attachment:boundaries.png (voorbeeld schermafdruk)]. Het bevat de grenzen van alle landen in de wereld. Vanwege de uitvoering zijn de grenzen vereenvoudigd. Zij kunnen op verzoek in speciale gevallen worden verfijnd. De gebieden zijn "getagd" met hun [https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO_3166-1_alpha-2 codes]. USA, Canada, China, India en Australië hebben aanvullende grenzen voor hun onderverdelingen. Bekijk de volgende voorbeelden over hoe de selectors voor gebieden te gebruiken. Gebieds-selectoren zijn minder nuttig in kaarttekenstijlen en kunnen erg veel bronnen in beslag nemen. Zij zijn echter veel nuttiger voor [wikitr:/Help/Validator/MapCSSTagChecker op MapCSS gebaseerde regels voor validatie]. Er is een eenvoudiger manier om gebieden met links en rechts rijdend verkeer te selecteren, bekijk [#Pseudoklassen]. Bekijk #10387 voor de belangrijkste implementatie van deze mogelijkheid.
    632572
     
    646586}}}
    647587
     588=== Link-selector === #Linkselector
     589In een kind-selector kunt u voorwaarden formuleren in de koppeling tussen een ouder- en kind-object.
     590
     591Als de ouder een relatie is, kunt u voorwaarden formuleren voor de ''role'' dat een lid-object in deze relatie heeft.
     592{{{
     593#!css
     594relation[type=route] >[role="link"] way {  /* komt overeen met elke weg die lid is van een relatie voor een route met de rol 'link' */
     595   color: blue;
     596}
     597}}}
     598
     599{{{#!th valign=top
     600'''Operator'''
     601}}}
     602{{{#!th valign=top
     603'''Beschrijving'''
     604}}}
     605{{{#!th valign=top
     606'''Voorbeeld'''
     607}}}
     608|-------------------------------------------------------------------------------
     609{{{#!td align=left  valign=top
     610`=`
     611}}}
     612{{{#!td align=center  valign=top   
     613Exacte overeenkomst van de naam van de rol. De naam van de `role` is verplicht in deze context.
     614}}}
     615{{{#!td align=left  valign=top   
     616{{{
     617#!css
     618relation >[role=residential] way           
     619relation >[role="Mijn naam"]   way           /* aanhalingstekens gebruiken als de waarde van de rol spaties of andere speciale tekens bevat */
     620}}}
     621}}}
     622
     623De operatoren `!=`, `^=`, `$=`, `*=`  en `~=` worden ook ondersteund. Bekijk #condition_selector_operators voorwaarden operatoren selector].
     624
     625Knopen in wegen en leden in relaties zijn gesorteerd. U kunt voorwaarden formuleren voor de position van een knoop in een weg of een lid-object in een relatie. Positieve getallen tellen vanaf het eerste tot en met het laatste element, negatieve getallen (sinds r8236) tellen van het laatste tot en met het eerste element.
     626
     627{{{
     628#!css
     629relation[type=route] >[index=1] way {  /* komt overeen met de eerste weg die een lid is van de relatie van de route  */
     630   color: blue;
     631}
     632
     633way >[index=-1] node {  /* komt overeen met de laatste knoop van een weg  */
     634   symbol-stroke-color: green;
     635}
     636
     637way!:closed >[index=1] node!:connection,
     638way!:closed >[index=-1] node!:connection {  /* komt overeen met alle eindknopen van enkele wegen */
     639   symbol-stroke-color: green;
     640}
     641}}}
     642
    648643=== Zoom-selector ===
    649644U kunt een type selector decoreren met een '''zoom-selector'''. De zoom-selector beperkt het bereik aan zoomniveaus waarop de respectievelijke regel voor MapCSS wordt toegepast.
     
    656651}}}
    657652|-------------------------------------------------------------------------------
    658 || {{{way|z12 {...} }}} || Op zoomniveau 12 ||
    659 || {{{way|z13-15 {...} }}} || Van 13 tot en met 15 ||
    660 || {{{way|z16- {...} }}} || 16 en hoger ||
    661 || {{{way|z-12 {...} }}} || 12 en lager ||
    662 || {{{way {...} }}} || elk zoomniveau ||
     653|| `way|z12 {...} ` || Op zoomniveau 12 ||
     654|| `way|z13-15 {...} ` || Van 13 tot en met 15 ||
     655|| `way|z16- {...} ` || 16 en hoger ||
     656|| `way|z-12 {...} ` || 12 en lager ||
     657|| `way {...} ` || elk zoomniveau ||
    663658
    664659De precieze definitie van schaalbereiken voor elk zoomniveau kan in de toekomst wijzigen. Als vuistregel kunt u verwachten dat u ongeveer op zoomniveau ''n'' bent als afbeeldingen tegels van slippymap weergeven van het niveau ''n''.
    665660
    666 === Pseudoklassen ===
     661=== Pseudoklassen === #PseudoClasses
    667662Zie [/doc/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.PseudoClasses.html Javadoc] voor de up-to-date lijst van pseudoklassen die worden ondersteund door JOSM's MapCSS-implementatie.
    668663||= Klasse =||= Beschrijving =||
    669 || {{{:closed}}} || waar voor wegen waar de eerste knoop hetzelfde is als de laatste en voor elke relatie van een (volledig gedownloade) multipolygoon ||
    670 || {{{:closed2}}} || hetzelfde als hierboven, maar deze negeert of een multipolygoon volledig is gedownload (sinds r9099) ||
    671 || {{{:completely_downloaded}}} || waar voor een relatie waarvan alle leden zijn gedownload (sinds r9099) ||
    672 || {{{:new}}} || alle nieuw objecten ||
    673 || {{{:connection}}} || waar voor knopen die worden gebruikt voor meer dan één weg ||
    674 || {{{:unconnected}}} || waar voor knopen die niet worden gebruikt door een weg (sinds r6687) ||
    675 || {{{:tagged}}} || Wat JOSM beschouwd als zijnde getagd, d.i. een object met een tag sleutel, anders dan de volgende: {{{source*, source_ref, note, comment, converted_by, created_by, watch*, fixme, FIXME, description, attribution}}} (versie r4008; in deze lijst is {{{*}}} een glob)
    676 || {{{:righthandtraffic}}} || waar als er verkeer aan de rechterkant is op de huidige locatie (sinds r7193); zie [wikitr:/left-right-hand-traffic left-right-hand-traffic] voor schermafdruk  van gebieden ||
    677 || {{{:clockwise}}} || Of de weg is gesloten en met de klok mee georiënteerd, of niet gesloten en de 1e, 2e en laatste knoop zijn in volgorde met de klok mee. ||
    678 || {{{:anticlockwise}}} || Of de weg is gesloten en tegen de klok in georiënteerd, of niet gesloten en de 1e, 2e en laatste knoop zijn in volgorde tegen de klok in. ||
    679 || {{{:unclosed_multipolygon}}} || waar voor volledig geladen niet gesloten ralties van multipolygonen (sinds r8252) ||
    680 || {{{:open_end}}} || selecteren van eindknopen van niet gesloten relaties van multipolygonen met `relation:unclosed_multipolygon >:open_end node` (sinds r8252) ||
    681 || {{{:in-downloaded-area}}} || waar als een object binnen het brongebied ligt en onwaar als het in het gearceerde gebied ligt (sinds 8495). ||
    682 || {{{:selected}}} || waar als een object is geselecteerd in de bewerker (sinds r9341). ||
    683 || {{{:modified}}} || gewijzigde en nieuwe objecten (sinds r7193) ||
     664|| `:closed` || waar voor wegen waar de eerste knoop hetzelfde is als de laatste en voor elke relatie van een (volledig gedownloade) multipolygoon ||
     665|| `:closed2` || hetzelfde als hierboven, maar deze negeert of een multipolygoon volledig is gedownload (sinds r9099) ||
     666|| `:completely_downloaded` || waar voor een relatie waarvan alle leden zijn gedownload (sinds r9099) ||
     667|| `:new` || alle nieuw objecten ||
     668|| `:connection` || waar voor knopen die worden gebruikt voor meer dan één weg ||
     669|| `:unconnected` || waar voor knopen die niet worden gebruikt door een weg (sinds r6687) ||
     670|| `:tagged` || Wat JOSM beschouwd als zijnde getagd, d.i. een object met een tag sleutel, anders dan de volgende: `source*`, `source_ref`, `note`, `comment`, `converted_by`, `created_by`, `watch*`, `fixme`, `FIXME`, `description`, `attribution` (versie r4008; in deze lijst is `*` een glob)
     671|| `:righthandtraffic` || waar als er verkeer aan de rechterkant is op de huidige locatie (sinds r7193); zie [wikitr:/left-right-hand-traffic left-right-hand-traffic] voor schermafdruk  van gebieden ||
     672|| `:clockwise` || Of de weg is gesloten en met de klok mee georiënteerd, of niet gesloten en de 1e, 2e en laatste knoop zijn in volgorde met de klok mee. ||
     673|| `:anticlockwise` || Of de weg is gesloten en tegen de klok in georiënteerd, of niet gesloten en de 1e, 2e en laatste knoop zijn in volgorde tegen de klok in. ||
     674|| `:unclosed_multipolygon` || waar voor volledig geladen niet gesloten ralties van multipolygonen (sinds r8252) ||
     675|| `:open_end` || selecteren van eindknopen van niet gesloten relaties van multipolygonen met `relation:unclosed_multipolygon >:open_end node` (sinds r8252) ||
     676|| `:in-downloaded-area` || waar als een object binnen het brongebied ligt en onwaar als het in het gearceerde gebied ligt (sinds 8495). ||
     677|| `:selected` || waar als een object is geselecteerd in de bewerker (sinds r9341). ||
     678|| `:modified` || gewijzigde en nieuwe objecten (sinds r7193) ||
    684679U kunt pseudoklassen ook ontkennend gebruiken. Bijv. {{{!:new}}} voor alle oude objecten.
    685680