将 geojson 多点功能加载并解析到 openlayers 3

load and parse geojson multipoint feature into openlayers 3

我正在尝试将仅包含一个多点特征的 geoJSON 文件的部分加载到不同的数组中,以便在我的 OpenLayers 应用程序中使用,但我无法正确加载和解析代码。这是语法问题。我的 geoJSON 文件具有以下结构:

{
    "type": "Feature",
    "geometry": {
        "type": "MultiPoint",
        "coordinates": [
        [
            243.19,
            31.81
        ],
        [
            243.05,
            31.84
        ], 
             ...

        [
            141.3,
            38.51
        ]
    ]
},
"properties": {
    "active": "12 Nov 2005 22:00 - 14 Jul 2006 22:00",
    "species": "Bluefin Tuna",
    "id": "100508400",
    "sex": "unknown" 
    "time": [
        1124432402,
        1124434321,
        ...
        1144737900
    ]
  }
}

我正在尝试通过 Ajax/JQuery 加载 geoJSON,并将多点坐标解析为一个数组,将时间坐标解析为一个数组,并提取一些 属性 值。

        var BT100508400Coords = [],
            BT100508400Time = [],
            id, species;

    $.getJSON('data/BT100508400.geojson').done(function (data) {
        $(data).each(function () {
            BT100508400Coords.push(data.geometry.coordinates);
            BT100508400Time.push(data.properties.time);
            id = data.properties.id;
            species = data.properties.species;
        }).done(function () {
            makeLineString(id, species, BT100508400Coords, BT100508400Time);
        }).fail(function () {
            console.log("BT100508400 multipointCoords not populated");
        });
    });

这个尝试与我在这里尝试的那个很接近:

但我稍微改变了我的目标,具体来说,我的 GeoJSON 文件需要包含一个多点特征。我似乎无法为单个多点特征编写语法,而不是该答案中建议的特征集合。

非常感谢。

each 没有 return 具有 done 方法的值。所以,基本上,只需像下面这样更改代码:

    var BT100508400Coords = [],
        BT100508400Time = [],
        id, species;

$.getJSON('data/BT100508400.geojson').done(function (data) {
    $(data).each(function () {
        BT100508400Coords.push(data.geometry.coordinates);
        BT100508400Time.push(data.properties.time);
        id = data.properties.id;
        species = data.properties.species;
    })
    makeLineString(id, species, BT100508400Coords, BT100508400Time);
});