You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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 hmm


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

!i! wrote:

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 hmm

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

Board footer

Powered by FluxBB