打开图层3标签将不会显示

时间:2015-03-14 04:22:03

标签: javascript labels openlayers-3

我试图制作地图显示标签。但我的地图上没有显示任何文字。没有错误。以下是我创建风格的方法:

labelItem = {name: "name1", font: "arial", fontSize: 20}
computeFeatureStyle = function(labelItem) {
    return new ol.style.Style(
        {   
            stroke: new ol.style.Stroke({
                color: 'black'
            }),
            text: new ol.style.Text(
                {
                    font: labelItem.fontSize + "px helvetica," + labelItem.font,
                    text: labelItem.name,
                    fill: new ol.style.Fill(
                        {
                            color: "#000" //labelItem.fill_color
                        }),
                    stroke: new ol.style.Stroke(
                        {
                            color: "#fff", //labelItem.stroke_color,
                            width: 2
                        }),
                })
        });
};

这里我创建了图层对象:

labelData = [{name: "name1", font: "arial", fontSize: 20}]
createLabelLayer = function() {
    // Geometries
    // Source and vector layer
    var vectorSource = new ol.source.Vector({ projection: 'EPSG:4326' });
    var layer = new ol.layer.Vector({ source: vectorSource });
    var labelFeatures = [];
    for(var i = 0; i < labelData.length; ++i ) {
        var labelItem = labelData[i];
        var point = new ol.geom.Point(convertCoordinateToWeb( Ext.getCmp("map").map.getView().getCenter()) );
        var feature = new ol.Feature({
                                         geometry: point,
                                         name: labelItem.name
                                     });
        feature.setStyle([this.computeFeatureStyle(labelItem)]);
        vectorSource.addFeature( feature );
    }
    vectorSource.addFeatures(labelFeatures);

    return layer
};

这是我的矢量图层。我做了map.addLayer(图层) 但标签不会在地图上显示。我做错了什么?

我还尝试将样式对象直接添加到向量中: layer.setStyle(computeFeatureStyle(labelItem)),它仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

调试代码的最佳方法是将其爆炸一点。例如,不是直接在样式函数中返回样式,而是先将其放在变量中。然后,在您最喜欢的浏览器开发者工具中,在返回样式的行中添加一个断点。它将允许你窥探风格的内容,看看那里是否有什么问题。

另外,检查“静态”值是否有效。硬编码您希望得到的值,只是为了测试。

您可以查看以下示例,该示例也可以提供帮助:http://openlayers.org/en/v3.3.0/examples/vector-labels.html