[OpenLayers-Users] Add labels above the lines.
adidas
xkadidas at gmail.com
Fri Jul 27 03:54:06 PDT 2012
Hello! How to add labels above the lines?
Labels are added as follows:
var styleMarkersLabels = new OpenLayers.Style( // стили для
надписей узлов
{
strokeWidth: 2,
labelYOffset: 10,
label: "${label}",
fontColor: 'red',
fontSize: 9,
fontWeight: "bold",
labelOutlineColor: "black",
labelOutlineWidth: 1
});
var vectorPoint = new OpenLayers.Layer.Vector("Узлы (надписи)",
{
styleMap: new OpenLayers.StyleMap(
{ "default": styleMarkersLabels,
"select": { pointRadius: 20}
})
});
map.addLayer(vectorPoint);
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) {
layr.features[k].move(ttt);
layr.features[k].attributes.label=title;
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]);
}
But i got it: http://softez.pp.ua/labels.PNG
Map here: http://softez.pp.ua/fiberms/fiberms/map.php
Thanks!
More information about the Users
mailing list