Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Openlayer 2将标签设置为矢量线的中间_Javascript_Google Maps_Openlayers - Fatal编程技术网

Javascript 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++)

伙计们,我用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 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",