Tagged: 

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #28140
    ThomasMeister
    Participant

    Hallo zusammen,

    ich habe (wieder) eine Verständnisfrage zur Renderreihenfolge. Ich habe gelesen: “was zuerst in der Theme-Datei kommt, wird zuerst gerendert”. Aber was heißt das genau: es kann sein, dass später etwas “darübergelegt” wird, nicht mehr sichtbar ist. Oder: Es kann nichts darübergelegt werden, weil kein Platz mehr ist.

    Konkretes Beispiel, aus einem Theme:
    <rule e=”any” k=”amenity” v=”fountain” zoom-min=”17″>
    <rule e=”any” k=”drinking_water” v=”yes”>
    <symbol src=”file:/svg/drinking_water.svg” symbol-scaling=”size” symbol-height=”16″ symbol-width=”16″ />
    </rule>
    <rule e=”any” k=”*” v=”*”>
    <symbol src=”file:/svg/fountain.svg” symbol-scaling=”size” symbol-height=”16″ symbol-width=”16″ />
    </rule>
    </rule>

    Die zweite Bedingung trifft ja auf jeden Fall zu, wenn auch die erste Bedingung zutrifft.
    Ist also die Logik “wenn Trinkwasser, dann Trinkwassersymbol und für das andere Symbol ist kein Platz mehr”?

    #28148
    Avatar photoTobias
    Keymaster

    Der Satz bezieht sich auf Linien und Flächen. Für Symbole und Beschriftungen gilt das mit Einschränkung, da diese nach dem Prinzip “wenn Platz” dargestellt werden. Zum Glück lässt sich das mittels display= und/oder priority= sehr gut beeinflussen (mapsforge 0.5 oder höher notwendig), ich würde bei dem Beispiel von Dir einfach dem wichtigeren (das, was Du sehen willst), eine höhere Priorität geben und fertig.

    Developer of Elevate mapstyle

    #28152
    ThomasMeister
    Participant

    OK. Danke 😉 Das Beispiel habe ich aus einem bestehenden Theme kopiert (ist nicht von mir) und ich war mir nicht sicher, ob das SO funktioniert. Anscheinend schon, da bei der zweiten Regel “kein Platz mehr ist” (oder)?

    #28154
    Avatar photoTobias
    Keymaster

    Funktionieren tut es, wenn es darum geht, etwas bevorzugt darzustellen. Um 100% sicher zu gehen, arbeite ich dann bei wirklich wichtigen Sachen mit priority oder display=always. “Mit Einschränkung” bezieht sich darauf, dass bei Linien und Flächen halt alles dargestellt wird, nur übereinander in der Reihenfolge wie es in der XML-Datei vorkommt, während von mehreren caption oder symbol nur eines dargestellt wird (außer display=always).

    Developer of Elevate mapstyle

    1 user thanked author for this post.
    #28160
    ThomasMeister
    Participant

    Noch eine kurze Frage (Ich komm mir langsam schon doof vor) :
    Ist es möglich, einen frei wählbaren Text als Caption zu nehmen. Also nichts aus den Daten sondern in dem Beispiel oben das Wort “Trinkwasser” oder eben nichts oder “kein Trinkwasser”?

    #28162
    Avatar photoTobias
    Keymaster

    Nein, geht nicht. Was möglich ist, erschließt sich am besten aus dem xsd:
    https://github.com/mapsforge/mapsforge/blob/master/resources/renderTheme.xsd

        <xs:complexType name="caption">
            <xs:attribute name="cat" type="xs:string" use="optional" />
            <xs:attribute name="priority" default="0" type="xs:integer" use="optional" />
    <xs:attribute name="k" type="tns:textKey" use="required" />

    Das bedeutet, für “k” muss der Wert ein “textKey” sein. Diese sind auch definiert:

        <xs:simpleType name="textKey">
            <xs:restriction base="xs:string">
                <xs:enumeration value="ele" />
                <xs:enumeration value="addr:housenumber" />
                <xs:enumeration value="name" />
                <xs:enumeration value="ref" />
            </xs:restriction>
    </xs:simpleType>

    Andere sind leider nicht zugelassen (außer bei Karten V5, die gibt’s nur bei mapsforge direkt, und da sind auch nur in den Karten vorhandene Werte möglich).

    Developer of Elevate mapstyle

    1 user thanked author for this post.
    #28166
    ThomasMeister
    Participant

    Schade und VIELEN DANK für die Aufklärung!

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.