diff options
Diffstat (limited to 'download.js')
| -rw-r--r-- | download.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/download.js b/download.js new file mode 100644 index 0000000..d5c4f62 --- /dev/null +++ b/download.js @@ -0,0 +1,57 @@ +const fs = require('fs'); +const path = require('path'); + +// Base URL for the WFS service +const baseUrl = 'https://kartta.hel.fi/ws/geoserver/avoindata/wfs'; + +// List of layers to download (extendable by adding more items to this array) +const layers = [ + 'Aluesarjat_avainluvut_2024', + 'Seutukartta_liikenne_paatiet', + 'Seutukartta_liikenne_metroasemat', + 'Seutukartta_liikenne_metro_rata', + 'Seutukartta_liikenne_juna_rata', + 'Seutukartta_liikenne_juna_asema', + 'Seutukartta_aluejako_pienalue', + 'Seutukartta_aluejako_kuntarajat', + 'Seutukartta_maankaytto_jarvet', + 'Seutukartta_maankaytto_joet', + 'Seutukartta_meren_rantaviiva', + 'Toimipisterekisteri_palvelut' +]; + +// Output directory +const outputDir = path.join(__dirname, 'app', 'data'); + +// Create output directory if it doesn't exist +if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); +} + +// Function to download and save layer data +async function downloadLayer(layer) { + const url = `${baseUrl}?service=WFS&version=2.0.0&request=GetFeature&typeName=avoindata:${layer}&outputFormat=application/json&srsname=EPSG:4326`; + + try { + const response = await fetch(url); + if (!response.ok) { + throw new Error(`Failed to fetch ${layer}: ${response.statusText}`); + } + const data = await response.json(); + + const filePath = path.join(outputDir, `${layer}.json`); + fs.writeFileSync(filePath, JSON.stringify(data, null, '\t')); + console.log(`Downloaded and saved: ${layer}.json`); + } catch (error) { + console.error(`Error downloading ${layer}: ${error.message}`); + } +} + +// Download all layers sequentially +async function main() { + for (const layer of layers) { + await downloadLayer(layer); + } +} + +main(); |
