You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#1 2013-05-19 15:08:57
- Lamce
- Member
- Registered: 2013-04-04
- Posts: 8
Label mittig einer LineString positionieren
Guten Tag,
Ich möchte gerne eine Linie mit einem Label beschriften und muss dazu den richtigen Offset berechnen, dazu nutze ich ein Stylemap.
Das Problem ist beim Zoomen werden die Offsets nicht neu errechnet. Wenn man einen Reload des kompletten Layer erzwingt werden die Offsets natürlich neu berechnet, jedoch verliere ich damit die Highlights wenn ein Feature selektiert ist.
styleMap = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
label: "${label}",
fill: true,
fillColor: '#FF0000',
fillOpacity: 0.5,
strokeWidth: 4,
strokeColor: 'white',
pointRadius: 15,
labelXOffset: '${getLableOffsetX}',
labelYOffset: '${getLableOffsetY}',
labelAlign: 'cm'
}, {
context: {
getLableOffsetX: function (f){
xy=labelDeltaPixels(f);
return xy.x/2;
},
getLableOffsetY: function (f){
xy=labelDeltaPixels(f);
return xy.y/2;
},
label: function (feature) {
var arr = feature.attributes.ExtendedData.split(',');
var type = arr[0];
if(type=="REL"){
return feature.attributes.name;
}else{
return "";
}
}
}
}),
"select": {
pointRadius: 20,
fillColor: "#57FFD8",
fillOpacity: 0.8,
strokeColor: "#0000a1",
strokeWidth: 4,
strokeOpacity: 0.8
}
});Freue mich auf jede Antwort!
mfg
Lamce
Offline
#2 2013-05-19 19:31:29
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Label mittig einer LineString positionieren
Hi, ich hatte auch mal Probleme mit der Positionierung der Labels und löste es dann server-seitig, in dem ich einen eigenen Vektorlayer nur für die Beschriftungen habe generieren lassen ![]()
privater Account von KVLA-HRO-Mei
Offline
#3 2013-05-20 14:13:01
- Lamce
- Member
- Registered: 2013-04-04
- Posts: 8
Re: Label mittig einer LineString positionieren
Hi, ich hatte auch mal Probleme mit der Positionierung der Labels und löste es dann server-seitig, in dem ich einen eigenen Vektorlayer nur für die Beschriftungen habe generieren lassen
Server-seitig wäre keine Lösung für mich. Eigentlich gibt es keinen direkten Server. Das JS läuft in einer Java Applikation.Aber ein Layer für die Labels erstellen wäre eine möglichkeit, jedoch ist sie mit mehr Arbeit verbunden.
Die Position wird bei mir richtig errechnet. zeigt den Label auch mittig an. Halt nur bei einem Zoom wird der Style nicht mehr neu geladen.
Offline