x

Maperative: Flächendarstellung


  1. Maperative: Flächendarstellung · Lübeck (Gast) · 12.11.2012 13:15 · [flux]

    Moin !

    nach der tollen Unterstützung zum Wochenende bin ich noch einmal auf einer anderen Baustelle angekommen die ich bis jetzt nicht in Griff bekommen habe. Es geht diesmal nochmal um die Darstellung von Flächen.

    In meinem Beispiel versuche ich auf dem Sportplatz in Albersdorf das leisure=sport_centre darzustellen was nach dem find-Befehl vorhanden ist.


    Das Problem liegt in dem Fall vor, wenn die übergreifende Darstellung von landuse=residental (http://www.openstreetmap.org/browse/way/189325812) mit angezeigt werden soll. Dieses überdeckt das sport_centre.

    Kann mir einer weiterhelfen ?

    Nachfolgend der Rules-Code. Die vollständige Datei ist zu finden unter http://www.tappenbeck.net/forum/maperat … _jt.mrules

    Gruß Jan :-)

    areas
    //␣--␣Definition␣für␣die␣Darstellung␣in␣der␣Legendenkonfiguration
    all␣areas␣:
    //
    //␣--␣allgemeine␣Gebäude
    building␣all␣:␣building␣AND␣@isFalse(amenity)␣AND␣@isFalse(religion)␣AND␣@isFalse(tourism)␣AND␣@isFalse(shop)␣AND␣NOT␣building=church␣␣AND␣NOT␣building=capel␣␣AND␣NOT␣building=cathedral␣AND␣NOT␣building=hotel␣AND␣NOT␣building=supermarket␣AND␣NOT␣amenity=university␣AND␣NOT␣amenity=school
    //␣townhall␣-␣public␣building
    //␣--␣Shop
    //␣--␣Religion
    building␣church␣:␣((building=yes␣AND␣amenity=place_of_worship)␣OR␣((building=church␣OR␣building=cathedral␣OR␣building=capel)␣AND␣@isFalse(religion)))
    building␣church␣christian:␣(building=yes␣AND␣amenity=place_of_worship␣AND␣religion=christian)␣OR␣((building=church␣OR␣building=cathedral␣OR␣building=capel)␣AND␣religion=christian)
    building␣church␣jewish:␣(building=yes␣AND␣amenity=place_of_worship␣AND␣religion=jewish)␣OR␣((building=church␣OR␣building=cathedral␣OR␣building=capel)␣AND␣religion=jewish)
    building␣church␣muslim:␣(building=yes␣AND␣amenity=place_of_worship␣AND␣religion=muslim)␣OR␣((building=church␣OR␣building=cathedral␣OR␣building=capel)␣AND␣religion=muslim)
    building␣hotel␣:␣(building=yes␣AND␣tourism=hotel)␣OR␣building=hotel
    //␣--␣Bildung
    building␣school␣:␣(building=yes␣AND␣amenity=school)␣OR␣building=school
    building␣uni␣:␣(building=yes␣AND␣amenity=university)␣OR␣building=university
    //␣--␣Gesundheit
    
    beach␣:␣natural=beach
    missing␣:␣note=missing
    water␣:␣natural=water␣OR␣waterway=riverbank␣OR␣landuse=reservoir␣OR␣landuse=basin
    village␣green␣:␣landuse=village_green
    forest␣:␣landuse=forest␣OR␣natural=wood
    farm␣:␣landuse=farm
    farmyard:landuse=farmyard
    grass␣:␣landuse=grass
    fell␣:␣natural=fell
    glacier␣:␣natural=glacier
    national␣park␣:␣boundary=national_park
    allotments␣:␣landuse=allotments
    academic␣:␣node[@isOneOf(amenity,␣university,␣college,␣school)]␣area[@isOneOf(amenity,␣university,␣college,␣school)]
    meadow␣:␣natural=meadow␣OR␣landuse=meadow
    scrub␣:␣natural=scrub
    energie_bio␣:␣generator:source␣=␣biofuel
    nature␣reserve␣:␣leisure=nature_reserve
    playground␣:␣leisure=playground
    car␣park:␣amenity=parking
    track␣:␣leisure=track
    graveyard␣:␣amenity=grave_yard␣OR␣landuse=cemetery
    military␣:␣landuse=military␣OR␣military=barracks
    park␣:␣leisure=park
    leisure␣garden␣:␣leisure=garden
    leisure␣pitch␣:␣leisure=pitch
    leisure␣stadium␣:␣leisure=stadium
    landuse␣retail␣:␣landuse=retail
    landuse␣industrial␣:␣landuse=industrial
    commercial␣area␣:␣landuse=commercial
    residential␣area␣:␣landuse=residential
    aeroway␣apron␣:␣aeroway=apron
    aeroway␣terminal␣:␣aeroway=terminal
    highway␣pedestrian␣:␣highway=pedestrian
    orchard␣:␣landuse=orchard
    farmland␣:␣landuse=farmland
    quarry␣:␣landuse=quarry
    leisure␣sports_centre␣:␣leisure=sports_centre
    
    target␣:␣$featuretype(area)
    define
    line-style␣:␣none
    line-width␣:␣1
    if␣:␣forest
    define
    min-zoom␣:␣10
    text-halo-width␣:␣0
    font-size␣:␣10
    placement-value␣:␣0.01
    text-halo-width␣:␣35%
    text-halo-opacity␣:␣1
    text-halo-color␣:␣#F1EEE8
    draw␣:␣text
    define
    min-zoom␣:␣9
    fill-texture␣:␣Textures/W-Mischwald.PNG
    //fill-color␣:␣#8DC56C
    elseif␣:␣leisure␣sports_centre
    define
    min-zoom␣:␣10
    fill-color␣:␣#CCFEF0
    elseif␣:␣wetland
    define
    min-zoom␣:␣10
    fill-texture␣:␣Textures/W-Moor-trans.PNG
    elseif␣:␣reedbed
    define
    min-zoom␣:␣10
    fill-texture␣:␣Textures/jt_wetland_reedbed.PNG
    elseif␣:␣beach
    define
    min-zoom␣:␣10
    fill-color␣:␣#FEFEC0
    elseif␣:␣footway␣area
    define
    min-zoom␣:␣10
    fill-color␣:␣#FEFEC0
    elseif␣:␣farm
    define
    min-zoom␣:␣9
    fill-color␣:␣#E9D8BD
    elseif␣:␣farmyard
    define
    min-zoom␣:␣9
    fill-color␣:␣#DCBE91
    elseif␣:␣landuse␣railway
    define
    min-zoom␣:␣9
    fill-color␣:␣#DCBE91
    elseif␣:␣fell
    define
    fill-color␣:␣#C5FF5B␣black␣10%
    elseif␣:␣swimming
    define
    fill-color␣:␣#B5D0D0
    elseif␣:␣water
    define
    fill-color␣:␣#B5D0D0
    elseif:academic
    define
    fill-color␣:␣#F0F0D8
    line-color␣:␣#E5D2CC
    line-style␣:␣solid
    elseif␣:␣leisure␣sports_centre
    define
    min-zoom␣:␣10
    fill-color␣:␣#CCFEF0
    elseif␣:␣residential␣area
    define
    fill-color␣:␣#DCDCDC
    elseif␣:␣grass
    define
    fill-color␣:␣#CFECA8
    elseif␣:␣allotments
    define
    fill-color␣:␣#C8B084
    elseif␣:␣meadow
    
    ....
    

    • Re: Maperative: Flächendarstellung · tunnelbauer (Gast) · 12.11.2012 13:46 · [flux]

      Work around:

      "fill-opacity" für residential auf "0.25" setzen (und dann bei den Umhüllenden der anderen Flächen eventuell die Lininestärke rausnehmen oder reduzieren)


    • Re: Maperative: Flächendarstellung · quasilotte (Gast) · 12.11.2012 14:13 · [flux]

      Ich hab zwar deine Rules nicht getestet aber ich würd mal sagen:

      elseif : leisure sports_centre
      define
      min-zoom : 10
      fill-color : #CCFEF0
      elseif : residential area
      define
      fill-color : #DCDCDC

      1. In deinen elseif ist das [ leisure sports_centre ] 2. mal vorhanden - sollte nur einmal.

      2. die Reihenfolge ist beim Rendern auch zu beachten! - Da gilt das Target

      Hier malst du erst leisure sports_centre und darüber dann residential area ...
      was nrtürlich in einem Wohngebiet nicht gut zu sehen ist.

      Massnahmen:
      Reihenfolge umkehren
      Transparent füllen entweder wie tunnelbauer empfiehlt mit fill-opacity oder transparenten Texturenen (NSG, Miltitägebiete)
      oder als ultimo ins target des entsprechenden Objekts noch: map.rendering.topmost-layer : True einfügen
      (verwende ich bei Wasserflächen - da doch recht oft ohne MP Seen in Waldgebieten erfasst werden)


    • Re: Maperative: Flächendarstellung · Lübeck (Gast) · 12.11.2012 14:21 · [flux]

      hi !

      danke erst einmal Euch beiden. Das mit dem Workaround würde ich als Notlösung sehen.

      Das ich das doppelt hatte war wohl schon betriebsblind. Entfernt!

      Die aktuelle Variante steht jetzt unten - aber egel ob residental - sport oder sport - residental, es wird nichts anderes angezeigt!

      gruß Jan :-)

      target␣:␣$featuretype(area)
      define
      line-style␣:␣none
      line-width␣:␣1
      if␣:␣forest
      define
      min-zoom␣:␣10
      text-halo-width␣:␣0
      font-size␣:␣10
      placement-value␣:␣0.01
      text-halo-width␣:␣35%
      text-halo-opacity␣:␣1
      text-halo-color␣:␣#F1EEE8
      draw␣:␣text
      define
      min-zoom␣:␣9
      fill-texture␣:␣Textures/W-Mischwald.PNG
      //fill-color␣:␣#8DC56C
      elseif␣:␣wetland
      define
      min-zoom␣:␣10
      fill-texture␣:␣Textures/W-Moor-trans.PNG
      elseif␣:␣reedbed
      define
      min-zoom␣:␣10
      fill-texture␣:␣Textures/jt_wetland_reedbed.PNG
      elseif␣:␣beach
      define
      min-zoom␣:␣10
      fill-color␣:␣#FEFEC0
      elseif␣:␣footway␣area
      define
      min-zoom␣:␣10
      fill-color␣:␣#FEFEC0
      elseif␣:␣farm
      define
      min-zoom␣:␣9
      fill-color␣:␣#E9D8BD
      elseif␣:␣farmyard
      define
      min-zoom␣:␣9
      fill-color␣:␣#DCBE91
      elseif␣:␣landuse␣railway
      define
      min-zoom␣:␣9
      fill-color␣:␣#DCBE91
      elseif␣:␣fell
      define
      fill-color␣:␣#C5FF5B␣black␣10%
      elseif␣:␣swimming
      define
      fill-color␣:␣#B5D0D0
      elseif␣:␣water
      define
      fill-color␣:␣#B5D0D0
      elseif:academic
      define
      fill-color␣:␣#F0F0D8
      line-color␣:␣#E5D2CC
      line-style␣:␣solid
      elseif␣:␣residential␣area
      define
      fill-color␣:␣#DCDCDC
      elseif␣:␣leisure␣sports_centre
      define
      min-zoom␣:␣10
      fill-color␣:␣#CCFEF0
      elseif␣:␣grass
      define
      

    • Re: Maperative: Flächendarstellung · tunnelbauer (Gast) · 12.11.2012 14:30 · [flux]

      Also aus meiner Sicht ist die Definition sports_centre nur einmal enhalten (Zeile 119+461). Zeile 62 ist nämlich auskommentiert.

      map.rendering.topmost-layer geht auch nicht, da er sonst das sports_centre über den Platz auch noch legt - das will Jan glaub ich auch nicht...

      Wird somit beim Semitransparent bleiben.


    • Re: Maperative: Flächendarstellung · quasilotte (Gast) · 12.11.2012 15:17 · [flux]

      Die Reihenfolge unter area spielt auch eine Rolle

      mit:

      leisure sports_centre : leisure=sports_centre
      residential area : landuse=residential

      wird es gezeichnet und mit

      residential area : landuse=residential
      leisure sports_centre : leisure=sports_centre

      überdeckt.

      MHH irgendwie sind da zwei Hirachiegebende Ebenen ist mir da irgendwie noch garnicht aufgefallen. Muß ich selbe mal nachhaken ob das unter elseif andest ist wie in den normalen target's


    • Re: Maperative: Flächendarstellung · Lübeck (Gast) · 12.11.2012 20:48 · [flux]

      hi !

      +1, vielen Dank.

      Jetzt nur noch eine Frage zum Schluss - habt Ihr noch einen Trick wie man die Rules am besten bearbeitet (Editor).

      So ganz effektiv ist das ja nicht mit dem ständigen hoch und runter scrollen und wieder suchen.

      Gruß Jan :-)


    • Re: Maperative: Flächendarstellung · EvanE (Gast) · 12.11.2012 22:09 · [flux]

      Lübeck wrote:

      Jetzt nur noch eine Frage zum Schluss - habt Ihr noch einen Trick wie man die Rules am besten bearbeitet (Editor).
      So ganz effektiv ist das ja nicht mit dem ständigen hoch und runter scrollen und wieder suchen.

      Hallo Jan

      Nimm einfach einen Editor, der eine Datei in zwei verschiedenen Fenstern öffnen kann.
      Für Windows oder Linux habe ich leider keinen Tipp.
      Auf dem Mac verwende ich Textwrangler von BareBonesSoftware.

      Edbert (EvanE)


    • Re: Maperative: Flächendarstellung · mueschel (Gast) · 12.11.2012 23:02 · [flux]

      Da kann ich aushelfen:
      Notepad++ (Windows)
      Kate (Linux, Windows)

      Beide haben viele nützliche Funktionen: mehrere parallele Ansichten, Bookmarks (Zeilen markieren und zwischen markierten Zeilen springen), Syntax-Highlighting (ok, (noch) nicht für Maperitive), automatische Ergänzung schon einmal benutzter Wörter, automatische Einrückung (gut, das sollte jeder Editor mit Ausnahme des Windows Notepad können).


    • Re: Maperative: Flächendarstellung · Lübeck (Gast) · 13.11.2012 09:20 · [flux]

      zurückgezogen !


    • Re: Maperative: Flächendarstellung · Lübeck (Gast) · 13.11.2012 13:07 · [flux]

      Mahlzeit - jetzt ist kurz Zeit für eine Frage.

      Kann man eigentlich in Maperitive Variablen definieren die man "oben" zuweißt und im laufe der Rules dann wieder verwendet?

      gruß Jan :-)