Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Draw label as follows:

var styleMarkersLabels = new OpenLayers.Style(
                    strokeWidth: 2,
                    labelYOffset: 14,
                    label: "${label}",
                    fontColor: 'red',
                    fontSize: 16,
                    fontWeight: "bold",
                    labelOutlineColor: "black",
                    labelOutlineWidth: 1
            var vectorPoint = new OpenLayers.Layer.Vector("Узлы (надписи)",
                styleMap: new OpenLayers.StyleMap(
                { "default": styleMarkersLabels,

                "select": { pointRadius: 20}

            function addPoint(lon, lat, title, ident, layr){
                var ttt = new OpenLayers.LonLat(parseFloat(lon), parseFloat(lat));
                ttt.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
                for (var k = 0; k < layr.features.length; k++) {
                    if(layr.features[k].attributes.PointId==ident) {
                        return false;
                var point0 = new OpenLayers.Geometry.Point(parseFloat(lon), parseFloat(lat));
                point0.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
                layr.addFeatures(new OpenLayers.Feature.Vector(point0, { label: title, name: title, PointId: ident }));

            var lat2, lon2, title, ident;
            for (l = 0; l < nodesLabels_Count; l++) {
                lat2 = nodesLabels_arr[l]["points"][0]["lat"];
                lon2 = nodesLabels_arr[l]["points"][0]["lon"];
                title = nodesLabels_arr[l]["title"];
                ident = nodesLabels_arr[l]["ident"];
                addPoint(lon2, lat2, title, ident, map.layers[4]); // Here adds the label

enter image description here

But the halo is shifted slightly. Screen: How to fix it? Thanks!

share|improve this question

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.