Bonjour,
j’ai voulu rajouter les bornes manquantes des nouveaux vélos municipaux de la ville de Marseille.
J’ai fait un mini-script pour détecter les bornes manquantes :
Script JS de diff entre OSM et données OpenData
const fs = require('fs');
const exportOsm = JSON.parse(fs.readFileSync("./export_OSM_levélo_08052023.geojson"))
const exportAmpm = JSON.parse(fs.readFileSync("./gbfs-extract-station-information.geojson"))
console.log(`OSM: ${exportOsm.features.length}`)
console.log(`AMPM: ${exportAmpm.features.length}`)
const missing = exportAmpm.features.filter((dock) => {
const exists = exportOsm.features.find((existing) => {
return existing.properties.name == dock.properties.name ||
existing.properties.ref == dock.properties.ref || (
Math.abs(existing.geometry.coordinates[0] - dock.geometry.coordinates[0]) < 0.0001 &&
Math.abs(existing.geometry.coordinates[1] - dock.geometry.coordinates[1]) < 0.0001
)
})
return !exists
})
const toImport = missing.map(dock => {
dock.properties = {
"amenity": "bicycle_rental",
"bicycle_rental": "docking_station",
"capacity": dock.properties.capacity,
"name": dock.properties.name,
"network": "levélo",
"operator": "Inurba Mobility",
"ref": dock.properties.station_id,
"website": "https://levelo.ampmetropole.fr/"
}
return dock
})
console.log(toImport.length)
// convert JSON object to a string
const data = JSON.stringify({
"type": "FeatureCollection",
"features": toImport
})
// write file to disk
fs.writeFile('./toImport_missing_dock.geojson', data, 'utf8', err => {
if (err) {
console.log(`Error writing file: ${err}`)
} else {
console.log(`File is written successfully!`)
}
})
Et uploadé les modifications via JOSM.
Cependant j’ai fait une erreur sur le premier changement (j’avais raté l’attribut ref
avec l’ID de la station des données initiales).
Est-ce possible d’annuler un changeset sur OSM ?
J’aimerai annuler le changeset Changeset: 135845333 | OpenStreetMap au profit de celui-ci qui est correct : Changeset: 135845732 | OpenStreetMap
Merci beaucoup pour votre aide !