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

_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to