ich versuche mich gerade an einer Möglichkeit, Attribute aus einer KML als Label / Tooltip darzustellen.
Der Unterschied soll jedoch sein, dass Label / Tooltip permanent sichtbar sein sollen.
Dazu habe ich mir diverse Samples angeschaut, aber die dortigen Lösungen sehen immer nur ein Mouseover Event vor.
Wie bekomme ich aber nun die Daten aus einer KML als “Permanentes Label” auf die Karte, so dass ich mir das Tooltip / Label auch noch per CSS stylen kann und das Label immer in der Nähe des jeweiligen Features steht?
Kennt da jemand ein Beispiel, welches man sich hierzu anschauen kann?
Das Problem ist, dass man entweder im KML-Layer den Stil holt (extractStyles:true), oder sich seinen Stil selbst zusammenbastelt. Und Labels gibts nur für Selberbastler.
kmllayer=new OpenLayers.Layer.Vector("Punkte", {
styleMap: new OpenLayers.StyleMap({ <----- mein selbstgebaselter Stil
"default": new OpenLayers.Style({
......
label: "${name}", <--- Label ist das, was im KML "name" heisst
labelAlign:"lm",
fontSize: "30px",
labelYOffset:0,
labelXOffset:10
}),
"select": new OpenLayers.Style({fillColor:"#ff0000",fillOpacity:1})
}),
.......
protocol: new OpenLayers.Protocol.HTTP({
url: "wegpunkteb.kml",
format:new
OpenLayers.Format.KML({extractStyles:false,extractAttributes:true}) <--- kein Stil aus der KML-Datei
})
});
Ausserdem muss man mindestens 2 Stile machen, den “default” und den “select”. Falls man letzteren weglässt, rutscht das Label zentriert auf den Punkt.
Grüße, Max
Nachtrag:
Wird schwer werden. Was man da sieht ist ein Schriftzug, der mit svg gerendert wird.