openlayers 6,geojson 如何标记一个特征,如果它是 number/float/integer?

openlayer 6, geojson how to label a feature if it is a number/float/integer?

我有一个包含所有多边形设置的地理文件json。 用这行显示多边形中间区域的名称(字符串)是没有问题的:

geojsonStyle.getText().setText(feature.get('Area_name'));

但现在我想在多边形中显示包含浮点数或整数的要素作为标签。我只是想用包含数字的特征更改 "Area_name",例如:'Shops in area'

所以它看起来像这样:

geojsonStyle.getText().setText(feature.get('Shops in area'));

但这行不通。

我认为它与数据类型有关(string vs integers vs float),我需要制作 javascript 来处理数字作为一个字符串。但是我在示例中找不到任何相关信息。我想我忽略了它?我希望有人能给我一个正确方向的提示?

这个功能只包含整数,所以如果不显示.0就更好了。但是此 json 文件中的另一个功能包含百分比,因此 2 位小数与在标签中显示相关。

这就是部分数据在 geojson 文件中的样子:

"features": [
{ "type": "Feature", "properties": { "Area_name": "Haarlem", "Shops in area": 1727.0]},

一种选择是将该数字强制转换为字符串:geojsonStyle.getText().setText(""+feature.get('Shops in area'));

如果您不想要零,请对数字调用 parseInttoFixed(0)toFixed 将产生一个字符串)。

代码片段:

var json = {"features": [
{ "type": "Feature", "properties": { "Area_name": "Haarlem", "Shops in area": 1727.0 } }]}

console.log(json.features[0]["properties"]["Shops in area"]);
document.getElementById('output').innerHTML=parseInt(json.features[0]["properties"]["Shops in area"]);
<div id="output"></div>

感谢 Geocodezip。这可以解决问题,并且正是我要找的: 一种选择是将该数字强制转换为字符串:

geojsonStyle.getText().setText(""+feature.get('Shops in area'));

原来.0也被截断了。 百分比是 1 位或 2 位小数。 22.30 显示为 22.316.67 显示为 16.67