多个GeoJson合并为一个,用js代码实现
时间: 2024-02-26 16:58:59 浏览: 106
好的,可以使用以下代码实现多个GeoJSON合并为一个:
```javascript
// 定义一个空的GeoJSON对象
var mergedGeoJSON = {
type: "FeatureCollection",
features: []
};
// 定义一个数组存储GeoJSON文件的URL
var geoJSONFiles = ["file1.geojson", "file2.geojson", "file3.geojson"];
// 使用fetch API异步加载每个GeoJSON文件
Promise.all(geoJSONFiles.map(url => fetch(url)))
.then(responses => Promise.all(responses.map(res => res.json())))
.then(data => {
// 将每个GeoJSON文件的features合并到mergedGeoJSON中
data.forEach(geoJSON => {
geoJSON.features.forEach(feature => {
mergedGeoJSON.features.push(feature);
});
});
// 将mergedGeoJSON对象转换为字符串
var mergedGeoJSONString = JSON.stringify(mergedGeoJSON);
// 将mergedGeoJSON对象写入文件
var blob = new Blob([mergedGeoJSONString], {type: "application/json"});
var url = URL.createObjectURL(blob);
var a = document.createElement("a");
a.href = url;
a.download = "merged.geojson";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
});
```
这段代码使用了fetch API异步加载每个GeoJSON文件,并将它们的features合并到一个新的GeoJSON对象中。最后,将新的GeoJSON对象转换为字符串并写入一个名为“merged.geojson”的新文件中。
阅读全文