Javascript Openlayer 2将标签设置为矢量线的中间
伙计们,我用Openlayer 2在谷歌地图上创建了一个图层 我用Openlayer 2画了一条矢量线,我想在这条线的中间设置标签 下面是我的代码Javascript Openlayer 2将标签设置为矢量线的中间,javascript,google-maps,openlayers,Javascript,Google Maps,Openlayers,伙计们,我用Openlayer 2在谷歌地图上创建了一个图层 我用Openlayer 2画了一条矢量线,我想在这条线的中间设置标签 下面是我的代码 var ol = new OpenLayers.Layer.OSM(); var vector = new OpenLayers.Layer.Vector( "Lines" ); for (var i = 0; i < fromtoLatlngObject.data.length; i++)
var ol = new OpenLayers.Layer.OSM();
var vector = new OpenLayers.Layer.Vector( "Lines" );
for (var i = 0; i < fromtoLatlngObject.data.length; i++) {
var start_point = new OpenLayers.Geometry.Point(fromtoLatlngObject.data[i].from.lng,fromtoLatlngObject.data[i].from.lat);
var end_point = new OpenLayers.Geometry.Point(fromtoLatlngObject.data[i].to.lng,fromtoLatlngObject.data[i].to.lat);
var firstLine = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([start_point, end_point]).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")));
vector.addFeatures([
firstLine
]);
}
var selected_polygon_style = {
strokeWidth: 2,
strokeColor: 'blue',
fontColor: "red",
fontSize: "16px",
fontFamily: "arial, monospace",
fontWeight: "bold",
fontColor: "green",
label: "To: test",
labelAlign: "cm"
};
vector.style = selected_polygon_style;
map.addLayers([ol,vector]);
var markers = new OpenLayers.Layer.Markers( "Marker" );
map.addLayer(markers);
for (var i = 0; i < latlngObj.data.length; i++) {
addMarker(latlngObj,map,markers,i);
}
}
我设置了labelAlign,但不工作,您也可以签入文档
或者您也可以在Openlayer 2提供的演示中看到
谢谢其他样式属性是否正常工作?@FrancescoD'Alesio“是”样式属性正常工作,但标签显示在矢量线的末尾。我想在向量线的中心垂直显示它。在我的选择中,标签将每次居中到直线的最后一点,这当然是错误的。解决方法可以是在线的中间构建一个多特征、一条线和一个点,并仅标记该点。您是否尝试过此解决方案:[GIS.StAcExchange?有一个计算标签在一行中的位置的方法。其他样式属性是否工作?@ FrraseCord'AlaliS.Yes样式属性正在工作,但是在向量行的末尾显示标签。我想将它垂直地显示在向量行的中心。。在我的选项中,标签每次都将居中于直线的最后一点,这当然是错误的。解决方法可能是在直线的中间构建一个多特征、一条直线和一个点,并仅标记该点。您是否尝试过此解决方案:[GIS.StasExchange?有一个解决方案,计算标签的位置在中间的一行。
labelAlign: "cm",