forked from MapComplete/MapComplete
Text in translation file + refactor
This commit is contained in:
parent
e7ef2fb6d8
commit
62925a89ba
3 changed files with 6 additions and 5 deletions
|
@ -8,7 +8,7 @@ import LayerConfig from "../../Customizations/JSON/LayerConfig";
|
|||
import BaseUIElement from "../BaseUIElement";
|
||||
import {Translation} from "../i18n/Translation";
|
||||
import {SubtleButton} from "../Base/SubtleButton";
|
||||
import {exportAsGeoJson} from "../GeoJsonExport";
|
||||
import {exportAsGeoJson} from "../../Logic/FeatureSource/GeoJsonExport";
|
||||
|
||||
/**
|
||||
* Shows the panel with all layers and a toggle for each of them
|
||||
|
@ -76,7 +76,7 @@ export default class LayerSelection extends Combine {
|
|||
);
|
||||
}
|
||||
|
||||
const downloadButton = new SubtleButton("./assets/svg/floppy.svg", "Download visible data as geojson")
|
||||
const downloadButton = new SubtleButton("./assets/svg/floppy.svg", Translations.t.general.layerSelection.downloadGeojson.Clone())
|
||||
downloadButton.onClick(() => exportAsGeoJson(State.state.featurePipeline))
|
||||
checkboxes.push(downloadButton)
|
||||
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
import FeaturePipeline from "../Logic/FeatureSource/FeaturePipeline";
|
||||
import {Utils} from "../Utils";
|
||||
|
||||
/**
|
||||
* Exports given featurePipeline as a geojson FeatureLists (downloads as a json)
|
||||
* @param featurePipeline The FeaturePipeline you want to export
|
||||
* @param options The options object
|
||||
* @param options.metadata True if you want to include the MapComplete metadata, false otherwise
|
||||
*/
|
||||
export function exportAsGeoJson(featurePipeline: FeaturePipeline, options: { metadata?: boolean} = {}) {
|
||||
let defaults = {
|
||||
metadata: false,
|
||||
}
|
||||
options = Utils.setDefaults(options, defaults);
|
||||
|
||||
// Select all features, ignore the freshness and other data
|
||||
let featureList: JSON[] = featurePipeline ? featurePipeline.features.data.map((feature) => feature.feature) : ["I'm empty"];
|
||||
|
||||
/**
|
||||
* Removes the metadata of MapComplete (all properties starting with an underscore)
|
||||
* @param featureList JsonList containing features, output object
|
||||
*/
|
||||
function removeMetaData(featureList: JSON[]) {
|
||||
for (let i=0; i < featureList.length; i++) {
|
||||
let feature = featureList[i];
|
||||
for (let property in feature.properties) {
|
||||
if (property[0] == "_") {
|
||||
delete featureList[i]["properties"][property];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!options.metadata) removeMetaData(featureList);
|
||||
|
||||
let geojson = {type: "FeatureCollection", features: featureList}
|
||||
|
||||
Utils.offerContentsAsDownloadableFile(JSON.stringify(geojson), "Geodata.json");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue