mapping-geojson-osm/wip/chargemap.ts

83 lines
2.2 KiB
TypeScript

import fs from "fs";
let sourceFilePath: string = './chargemap_data/hurepoix.json'
/**
makes a geojson from chargemap layer data
*/
function convertChargemapFile(sourceFilePath: string) {
fs.readFile(sourceFilePath, 'utf8', function (err, data) {
let data_transformed: any = JSON.parse(data)
let base_dataset: any = {type: 'FeatureCollection', features: []}
let base_point: any = {
type: 'Feature',
geometry: {
type: 'Point',
coordinates: []
},
properties: {
amenity: "charging_station"
}
}
console.log('data_transformed.items.length', data_transformed.items.length)
data_transformed.items.forEach((item: any) => {
let new_point: any = {...base_point}
if (item.type == 'point') {
new_point.geometry.coordinates = [
item.properties?.lat,
item.properties?.lng,
]
} else if (item.type == 'pool') {
new_point.geometry.coordinates = [
item.pool.gps_coordinates.lon,
item.pool.gps_coordinates.lat,
]
console.log('new_point.geometry.coordinates', new_point.geometry.coordinates)
}
base_dataset.features.push(new_point)
})
console.log('base_dataset.features.length', base_dataset.features.length)
if (base_dataset) {
writeFile('hurepoix_geojson.json', JSON.stringify(base_dataset, null, 2))
}
})
}
/**
* crée un fichier dans le dossier par défaut, output
* @param fileName
* @param fileContent
*/
function writeFile(fileName: string, fileContent: any) {
let output_folder = 'output';
return fs.writeFile(
`./${output_folder}/${fileName}`,
fileContent,
'utf8',
(err) => {
if (err) {
console.log(`Error writing file: ${err}`)
} else {
console.log(`File ${fileName} is written successfully!`)
}
}
)
}
convertChargemapFile(sourceFilePath)