Игра с загруженными производителями геоджсона на мапбоксе с javascript

Моя проблема больше связана с JS, чем с мапбоксом.

Я загрузил несколько маркеров geojson с разными датами. Формат Geojson:

«Пт, 17 октября, 01:00:00 по Гринвичу + 02:00 2008 г.»

Я хотел бы отфильтровать маркеры по годам. На данный момент мне удалось отфильтровать только указанное значение, например return f.properties['LabelName'] === 'Rennes';

  • Я думал об игре с регулярным выражением следующим образом:
douze.onclick = function(e) {
    all.className = '';
    this.className = 'active';
    // The setFilter function takes a GeoJSON feature object
    // and returns true to show it or false to hide it.
    markerLayer.setFilter(function(f) {
        // First try wtih reGex on DateTime
          var stryear = f.properties['DateTime']; 
          var reg20 = /20\d*/g;
          console.log(stryear.match(reg20));
          return f.stryear.match(reg20) === '2012';
    });
    return false;
};

Но это не работает. Регулярное выражение возвращает хорошее значение? Консоль Mozilla мне не помогает.

Заранее спасибо за помощь


person Mio    schedule 04.09.2013    source источник


Ответы (1)


Я думаю, вы хотите этого:

...
var reg20 = /20\d*/g;
console.log(stryear.match(reg20));
return f.stryear.match(reg20)[0] == '2012';

match() возвращает массив совпадений, поэтому для доступа к первому совпадению добавьте [0].
Также используйте == для сравнения значений, а не === для сравнения объектов.

person Bohemian♦    schedule 06.09.2013