[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 it’s 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 don’t coincide with the middle of the linestring,
it’s 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