[OpenLayers-Users] Linestring Label in the middle of the linestring
Mikhaél Santos
mikhael.santos at xlm.pt
Thu Aug 1 03:03:39 PDT 2013
Hi guys,
I wanted to know if its possible to dynamically set a linestrings label to
the center of the linestring.
Currently I have something like this:
labelDeltaPixels: function (feature) {
var vert = feature.geometry.getVertices();
var startPoint = vert[0],
middlePoint;
//If more than 1 point get a middle point
//else calculate the middle coordenate
if(vert.length > 2){
middlePoint = vert[Math.floor(vert.length / 2)];
}else {
middlePoint = new OpenLayers.Geometry.Point((vert[0].x +
vert[1].x)/2, (vert[0].y + vert[1].y)/2)
}
//This is where I am having problems the values obtain from
pixelStart and PixelMiddle dont coincide with the middle of the linestring,
its not close at all, the label continues at the start point.
var pixelStart = feature.layer.map.getPixelFromLonLat(new
OpenLayers.LonLat(startPoint.x.toFixed(5) , startPoint.y.toFixed(5) ));
var pixelMiddle = feature.layer.map.getPixelFromLonLat(new
OpenLayers.LonLat(middlePoint.x.toFixed(5) , middlePoint.y.toFixed(5) ));
var deltaX = pixelMiddle.x- pixelStart.x;
var deltaY = pixelStart.y - pixelMiddle.y;
return {
x: deltaX,
y: deltaY
};
}
Any help is appreciated.
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20130801/68950a9e/attachment.html>
More information about the Users
mailing list