1

JSFIDDLE リンクで更新

LeafletJS を使用して、タイムライン スライダー付きの Web マップを作成しています。LeafletSlider プラグインを使用して、 という名前の GEOJSON プロパティに基づいてマーカーのグループを表示していますDATE_START。これは私のデータオブジェクトがどのように見えるかの例です:

var camps = {
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "properties": {
            "STATUS": "UNOCCUPIED",
            "DATE_START": "2015-06-23",
            "DATE_CLOSED": "2016-01-23"
        },
        "geometry": {
            "type": "Point",
            "coordinates": [64.6875, 34.97600151317591]
        }
    }, {
        "type": "Feature",
        "properties": {
            "STATUS": "OCCUPIED",
            "DATE_START": "2014-01-21",
            "DATE_CLOSED": "2015-05-25"
        },
        "geometry": {
            "type": "Point",
            "coordinates": [65.335693359375, 36.26199220445664]
        }
    }, {
        "type": "Feature",
        "properties": {
            "STATUS": "UNOCCUPIED",
            "DATE_START": "2015-09-13",
            "DATE_CLOSED": ""
        },
        "geometry": {
            "type": "Point",
            "coordinates": [67.587890625, 35.969115075774845]
        }
    }]
};

私のコードの例:

//Create a marker layer (in the example done via a GeoJSON FeatureCollection)
var testlayer = L.geoJson(camps, {
    onEachFeature: function(feature, layer) {
        layer.bindPopup(feature.properties.DATE_START);
    }
});

var sliderControl = L.control.sliderControl({
    position: "topright",
    layer: testlayer,
    timeAttribute: 'DATE_START'
});

//Make sure to add the slider to the map ;-)
map.addControl(sliderControl);

//And initialize the slider
sliderControl.startSlider();

タイムスライダー プラグインをマップに追加しました。機能しているものの、スライダーでマーカーを時間順に表示することができないようです。たとえば、DATE_START値がのマーカーは2014-01-21、実際には最初に表示されるはずのマーカーが 2 番目に表示されます。これは、最も古い日付のマーカーであるためです。

タイムスライダー/マーカーを最初から最後まで正しい順序で表示するにはどうすればよいですか? ありがとう。

4

1 に答える 1