Beschriftung von Vektordaten
Beschriftung von Punkten
Beispiel 1: Beschriftung eines Punktobjektes, ohne den Punkt zu zeichnen, in Abhängigkeit vom Maßstab, Schriftgröße kommt aus der Spalte size (Größe in Karteneinheiten), Schriftart Arial, kursiv.
point::Ortslage [mapscale6 < 50000] {
complex-graphics :
text {
text: [IsNull(txt)?"":txt];
text-color: black;
text-color-opacity: 1;
text-font-name: "Arial";
text-font-type: standard;
text-style: italic;
text-height: [MeterToPixel(size)+4];
min-text-height: 5;
max-text-height:20;
text-quality: antialiased;
};
}
Beispiel 2: Beschriftung mit Zahlenwerten, Umwandlung in Textformat ist vorher notwendig.
text: [ToString(Zahlwert)];
Beispiel 3: Das folgende Beispiel zeichnet Text auf einer nicht sichtbaren Linie, wenn die Kartenskalierung kleiner als 1:4000 ist. Im zweiten Bild wurde die Linie im Vergleich mit ausgegeben.
unordered::line::Textausrichtung [mapscale6 < 4000] {
line-offset: 1m;
text: [txt];
text-color: black;
text-font-name: "Arial";
text-height: 3m;
text-weight: 400;
text-quality: antialiased;
}
Beispiel 4: Beschriftung eines Flusses, wenn die Länge der Einzelgeometrien länger als 1000 Meter ist. Vorausetzung ist eine Spalte laenge und die Spalte Flussname.
ordered {
line {
line-color: blue;
line-width:3m;
text: [laenge >>> 1000 ? Flussname : " "];
text-color:blue;
text-font-name: "Arial";
text-height:8px;
text-start-location: center;
text-repeat-distance: 150px;
}
}
Beispiel 5: Beschriftung eines Flurstückes mit Nenner und Zähler. Wenn Nenner gleich = 0 dann wird nur der Zähler geschrieben, wenn Zähler = 0 nur der Nenner, sonst Zähler / Nenner.
unordered {
polygon {
fill-color: RGB(128, 128, 128);
fill-color-opacity: 0.33;
fill-pattern: solid;
border-line:
{
line-width: 1px;
line-color: black;
line-join: round;
line-start-cap: round;
line-end-cap: round;
};
text: [ IsNull(zaehler) ? (nenner) : IsNull(nenner) ? (zaehler) : (zaehler) // " / " // (nenner) ];
text-font-name: "Arial";
text-color: blue;
text-height: 10px;
}
}
Beispiel 6: Beschriftung eines Polygonrandes mit unterschiedlicher Textrichtung
/*Standard*/
text-direction: auto;
text-direction: with-line;
text-direction: against-line;
Beschriftung von Multigeometrien
Mittels der Eigenschaft text-each-geometry kann das Verhalten der Beschriftung von Multigeometrien beeinflusst werden. Standard ist die Beschriftung aller Flächen eines Multipolygons.
polygon {
fill-color: RGBA(128, 255, 0, 1);
fill-pattern: solid;
border-line:
{
line-width: 2px;
line-color: RGBA(255, 0, 0, 1);
line-join: round;
line-cap: round;
};
text: "cardo";
text-height: 12px;
text-font-name: "Arial";
text-each-geometry: false; //nur eine Fläche des Multipolygons wird beschriftet.
}
Formatierung von Dezimalzahlen
Dezimalzahlen können Sie wie folgt formatieren:
text: [Printf("Stadtteil: %s\n Prozent: %.2f %%", stadtteilname, prozent)];
mit %.2f wird die Dezimalzahl auf 2 Stellen nach dem Komma beschränkt.
Hinweis zu Schriftarten mit Sonderzeichen
Wird zur Textdarstellung bspw. ein " genutzt, so muss dieses maskiert werden.
text: """;
Beschriftung innerhalb eines Polygones positionieren
Aktuell gibt es zur Positionierung von Texten in Polygonen den Parameter text-placement mit den Werten interior_point (Innerhalb des Polygons), first_point (Anfangspunkt), centroid (Schwerpunkt) und bbox_center (Mittelpunkt der BoundingBox). Weitere Möglichkeiten gibt es aktuell nicht. Sie könnten aber die Position der Beschriftung über einen Punkt variieren.
polygon {
fill-color: RGB(255,86,86);
fill-pattern: solid;
border-line:
{
line-width: 1.5px;
line-color: RGB(62,71,84);
line-dash-style: solid;
};
}
polygon {
point-placement: centroid;
point: {
complex-graphics:
text {
text: [beschreibung];
text-font-name: "arial";
text-height: 15px;
text-color: green;
position-x: 20px;
position-y: 20px;
};
};
}
Diese Variante wird natürlich auf alle Objekte angewandt. Ist dies nicht gewünscht, dann können Sie hier mit einer Bedingung für den 2. Polygon Block arbeiten:
polygon [beschreibung == "Beispieltext"]{
point-placement: centroid;
point: {
complex-graphics:
text {
text: [beschreibung];
text-font-name: "arial";
text-height: 15px;
text-color: green;
position-x: 20px;
position-y: 20px;
};
};
}
Zuletzt geändert: 18.04.2024 14:56:10 (erstmals erstellt 28.08.2018)