Openlayers标签:防止将.123显示为0.123

Openlayers Labels: Prevent displaying of .123 as 0.123

本文关键字:显示 标签 Openlayers      更新时间:2023-09-26

所以我从数据库中获取一些文本,并将它们作为矢量层上的点,然后将文本放入标签中。问题是有些文本以"开头跟在一些数字后面的like被视为数字,并在开头收到一个"0"。

例如:".341"显示为"0.341"。在内部,来自数据库的文本显示为".341",在插入功能之前为".3341",而在插入功能之后仍然为".331"。此外,如果类型为i,则总是得到"string"。

在以下代码中,您可以看到标签的设置位置:

var style = new OpenLayers.Style({
        fillColor: "#ffcc66",
        strokeColor: "#ff9933",
        strokeWidth: 2,
        label: "${text}",
        fontColor: "#333333",
        fontFamily: "sans-serif",
        fontWeight: "bold"
    }

如果有人知道如何防止它被写成"0",我们将不胜感激。

由于我还没有找到任何选项的方法,所以我继续找到了负责的代码。复制粘贴到我的.js中以覆盖它,并注释负责的行:

OpenLayers.Style.createLiteral = function(value, context, feature, property) {
    if (typeof value == "string" && value.indexOf("${") != -1) {
    value = OpenLayers.String.format(value, context, [feature, property]);
    //value = (isNaN(value) || !value) ? value : parseFloat(value);
    }
    return value;
};