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.

Beispiel Text Beispiel Text

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.

Beispiel Text

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.

Beispiel Text

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;

Beispiel Text

text-direction: with-line;

Beispiel Text

text-direction: against-line;

Beispiel Text

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.
}

Beispiel Text

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)