openlayer 6, geo json как пометить объект, если это число / число с плавающей запятой / целое число? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть файл geo json с настройками полигонов. Нет проблем, чтобы отобразить имя (строку) области в середине многоугольника с этой линией:

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

, но теперь я хочу отобразить объект, содержащий число с плавающей точкой или целое число в многоугольнике как ярлык. Я просто подумал изменить "Area_name" с помощью функции, содержащей число, например: 'Shops in area'.

так это будет выглядеть так:

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

но это не работает.

Я думаю, что это как-то связано с типом данных (string против integers против float) и мне нужно сделать javascript, чтобы рассматривать число как строку. Но я не могу найти ничего об этом в примерах. Я думаю, что я не замечаю этого? Я надеюсь, что кто-то может дать мне подсказку в правильном направлении?

Эта функция содержит только целые числа, поэтому было бы лучше, если .0 не отображается. Но другая функция в этом файле json содержит проценты, поэтому 2 знака после запятой имеют отношение к отображению в метке.

так выглядит часть данных в файле geo json:

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

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

спасибо Geocodezip. Это делает трюк и это именно то, что я искал: Один из вариантов - привести это число к строке:

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

Оказывается, что .0 также обрезается. В процентах это с 1 или 2 десятичными знаками. 22.30 отображается как 22.3, а 16.67 отображается как 16.67

0 голосов
/ 10 марта 2020

Один из вариантов заключается в приведении этого числа к строке: geojsonStyle.getText().setText(""+feature.get('Shops in area'));

Если вам не нужен ноль, позвоните по номеру parseInt или toFixed(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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...