Mam plik Geojson z wielokątówami. Nie ma problemu, aby wyświetlić nazwę (ciąg) obszaru w środku wielokąta z tą linią:

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

Ale teraz chcę wyświetlić funkcję zawierającą pływak lub liczbę całkowitą w wielokąźmie jako etykietę. Właśnie pomyślałem, że zmienisz "Area_name" z funkcją zawierającą numer, na przykład: 'Shops in area'.

Więc wyglądałoby to tak:

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

Ale to nie działa.

Myślę, że ma coś wspólnego z typem danych (string vs integers vs float) i muszę zrobić JavaScript, aby traktować numer jako ciąg. Ale nie mogę znaleźć nic o tym w przykładach. Myślę, że to przeoczyłem? Mam nadzieję, że ktoś może dać mi wskazówkę we właściwym kierunku?

Ta funkcja zawiera tylko liczby całkowite, więc byłoby ładniejsze, jeśli .0 nie jest wyświetlane. Ale inna funkcja w tym pliku JSON zawiera procenty, więc 2 dziesiętne są istotne dla wyświetlania na etykiecie.

W ten sposób część danych wygląda w pliku Geojson:

"features": [
{ "type": "Feature", "properties": { "Area_name": "Haarlem", "Shops in area": 1727.0]},
0
ThomasHaarlem 10 marzec 2020, 22:46

2 odpowiedzi

Najlepsza odpowiedź

Jedną opcją jest zmuszenie tego numeru do łańcucha: geojsonStyle.getText().setText(""+feature.get('Shops in area'));

Jeśli nie chcesz zero, zadzwoń {x0}} lub toFixed(0) na numerze ({X2}} spowoduje ciąg).

fragment kodu:

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>
0
geocodezip 10 marzec 2020, 20:07

Dzięki Geocodezipowi. Wykonuje to sztuczka i była dokładnie tym, czego szukałem: Jedną z opcji jest zmuszanie tego numeru do ciągów:

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

Okazuje się, że 0,0 jest również odcięcia. W procentach jest z 1 lub 2 dziesiętnymi. 22.30 jest pokazany jako 22.3 podczas 16.67 jest pokazany jako 16.67

0
ThomasHaarlem 10 marzec 2020, 20:41