Измените целое число на строковое значение, используя всплывающее окно в Leaflet - PullRequest
0 голосов
/ 25 мая 2019

Файл geojson с точками имеет целочисленные значения, которые необходимо преобразовать во строковые значения во всплывающем окне, чтобы они были читаемыми для пользователей.Пробовал использовать функцию, но не может заставить ее работать должным образом.Любое предложение исправить этот код или другой способ решить эту проблему?

   function weekday(feature, layer){
    switch (feature.properties.ID){
        case 1: return 'Monday';
        case 2: return 'Tuesday';
        case 3: return 'Wednesday';
        case 4: return 'Thursday';
        case 5: return 'Friday';
    }
   }

   $.getJSON("../data/abc123/data.geojson", function(json) {

   geoLayer = L.geoJson(json, {

    onEachFeature: function(feature, layer) {
      var popupText =
        "Data: <b>GPS log</b>" +
        "<br><b>Startingpoint</b>: " + feature.properties.X + 
        "<br><b>Endpoint</b>: " + feature.properties.Y +
        "<br><b>Weekday</b>: " + (feature.properties.ID, weekday)

      layer.bindPopup(popupText, {
        closeButton: true,
        offset: L.point(0, -20)
      });
      layer.on('click', function() {
        layer.openPopup();
      });
    },

Часть файла geojson

{"type": "FeatureCollection", "name": "data","crs": {"type": "name", "properties": {"name": "urn: ogc: def: crs: OGC: 1.3: CRS84"}}, "features": [{"type":"Особенность", "свойства": { "Х": "Norrköping", "В": 60208, "Y": "Norrköping", "КОД": "60208A", "ID": 2 "NAME":»OSCAR "," LOAD_1 ": 0," LOAD_2 ": 4}," geometry ": {" type ":" Point "," координаты ": [16.150801,58.608192]}},

При нажатии наcirlceMarker - всплывающее окно должно отображать день недели в строковом значении, а не день недели в цифрах.Но в этом примере во всплывающем окне отображается полный код функции дня недели.

1 Ответ

2 голосов
/ 25 мая 2019

Вы неправильно вызываете свою функцию:

weekday(feature.properties.ID)

И поскольку вы уже передаете идентификатор в качестве параметра, вам не нужен ни весь объект, ни слой в параметрах, и вы можете определить свою функцию следующим образом:

function weekday(ID){
    switch (ID){
        case 1: return 'Monday';
        case 2: return 'Tuesday';
        case 3: return 'Wednesday';
        case 4: return 'Thursday';
        case 5: return 'Friday';
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...