Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多个GeoJSON对象与javascript组合_Javascript_Geojson - Fatal编程技术网

将多个GeoJSON对象与javascript组合

将多个GeoJSON对象与javascript组合,javascript,geojson,Javascript,Geojson,是否可以使用javascript内置函数合并多个GeoJSON对象?如果没有,我如何在飞行中做到这一点 我根据JSON的建议尝试了geoJSON1=geoJSON1.concat(geoJSON2),它返回geoJSON1.concat不是一个函数。GeoJSON是点要素,是有效的GeoJSON对象 这可能是一个简单的问题,答案是“不”,但我还没有找到结论性的答案 GeoJSONs示例: GeoJSON1 = { "type" : "FeatureCollection", "featur

是否可以使用javascript内置函数合并多个GeoJSON对象?如果没有,我如何在飞行中做到这一点

我根据JSON的建议尝试了
geoJSON1=geoJSON1.concat(geoJSON2)
,它返回
geoJSON1.concat不是一个函数
。GeoJSON是点要素,是有效的GeoJSON对象

这可能是一个简单的问题,答案是“不”,但我还没有找到结论性的答案

GeoJSONs示例:

GeoJSON1 = { "type" : "FeatureCollection",
    "features" : [
         { "type" : "Feature",
        "id" : 1,
            "geometry" : {
                "type" : "Point",
                "coordinates" : ["-119.6165333","34.35935"]},
        "properties" : { "video" : "S105SC_Tape13o.noaudio.mpg", "video_second" : "0", "time" : "19:26:58", "date" : "2005-08-26"}
        },
         { "type" : "Feature",
        "id" : 2,
            "geometry" : {
                "type" : "Point",
                "coordinates" : ["-119.6165167","34.35935"]},
        "properties" : { "video" : "S105SC_Tape13o.noaudio.mpg", "video_second" : "2", "time" : "19:27:00", "date" : "2005-08-26"}
        }
    ]
}

GeoJSON2 = { "type" : "FeatureCollection",
    "features" : [
         { "type" : "Feature",
        "id" : 27,
            "geometry" : {
                "type" : "Point",
                "coordinates" : ["-119.61635","34.3593833"]},
        "properties" : { "video" : "S105SC_Tape13o.noaudio.mpg", "video_second" : "55", "time" : "19:27:53", "date" : "2005-08-26"}
        },
         { "type" : "Feature",
        "id" : 28,
            "geometry" : {
                "type" : "Point",
                "coordinates" : ["-119.6163333","34.3594"]},
        "properties" : { "video" : "S105SC_Tape13o.noaudio.mpg", "video_second" : "56", "time" : "19:27:54", "date" : "2005-08-26"}
        }
    ]
}
所需结果(具有原始文件所有功能的单一GeoJSON):


我想你要找的是函数。在你的情况下,你会这么做

var GeoJSON1 = { 'bat': 'baz'}

var GeoJSON2 = { 'foo':'bar'}

var both = {};

Object.assign(both, GeoJSON1, GeoJSON2);
console.log(both);
// Object {bat: 'baz', foo:'bar'}

您可以使用数组扩展语法(

这可以概括为一个函数:

function concatGeoJSON(g1, g2){
    return { 
        "type" : "FeatureCollection",
        "features": [... g1.features, ... g2.features]
    }
}
或者,您可以使用array
concat
方法,因为GeoJSON features字段是一个数组:

function concatGeoJSON(g1, g2){
    return { 
        "type" : "FeatureCollection",
        "features": g1.features.concat(g2.features)
    }
}

浏览表明您有对象而不是数组。您能添加一些输入和所需输出的示例吗?@Quentin这就是
concat
方法不起作用的原因吗@kristaps我添加了一些简单的输入和结果示例。这与您的示例是一样的,但不幸的是它似乎没有组合GeoJSON对象,它只返回最后一个对象(在本例中为GeoJSON2)。一定是因为GeoJSONs的结构?谢谢你给我展示了一个新功能。
function concatGeoJSON(g1, g2){
    return { 
        "type" : "FeatureCollection",
        "features": [... g1.features, ... g2.features]
    }
}
function concatGeoJSON(g1, g2){
    return { 
        "type" : "FeatureCollection",
        "features": g1.features.concat(g2.features)
    }
}