diff --git a/config.ts b/config.ts
index 01839c2..0d5010f 100644
--- a/config.ts
+++ b/config.ts
@@ -38,7 +38,15 @@ let listOfBooleanKeys = [
"gratuit",
"paiement_acte",
"paiement_cb",
- "cable_t2_attache"
+ "cable_t2_attache",
+ "paiement_acte",
+ "paiement_cb",
+ "cable_t2_attache",
+ "socket:typee",
+ "socket:type2_combo",
+ "socket:chademo",
+ "socket:type2",
+ "socket:type2_cable",
]
let irve_max_output = 401 // limite de kW de puissance pour une borne de recharge publique
diff --git a/convert_to_osm_tags.ts b/convert_to_osm_tags.ts
index 336d34b..d914955 100644
--- a/convert_to_osm_tags.ts
+++ b/convert_to_osm_tags.ts
@@ -12,8 +12,13 @@
* --outname=nom_fichier : Alias pour --output-file
* --testingConfig : Active le mode test avec la configuration mappingTest
*/
-import fetch from 'node-fetch';
+import * as fs from 'fs'
+
+import mapping_engine from './mappings/engine'
+import MappingConfigType, { BoundingBoxCoordinatesType, FeatureCollection } from "./mappings/mapping-config.type";
+import utils from './mappings/utils'
+import config from './config'
/**
* Mesure de l'utilisation de la RAM
*/
@@ -42,12 +47,6 @@ process.on('exit', () => {
});
-import * as fs from 'fs'
-
-import mapping_engine from './mappings/engine'
-import MappingConfigType, { BoundingBoxCoordinatesType, FeatureCollection } from "./mappings/mapping-config.type";
-import utils from './mappings/utils'
-import config from './config'
@@ -125,29 +124,6 @@ if (mini_arguments['wget']) {
-async function replaceFile(sourceFilePathGeoJson: string, url: string) {
- const response = await fetch(url)
- if (!response.ok) {
- throw new Error(`Erreur lors du téléchargement: ${response.status} ${response.statusText}`)
- }
- // afficher la taille du fichier téléchargé
- const contentLength = response.headers.get('content-length')
-
- const data = await response.text()
- if (contentLength) {
- const sizeInMB = (parseInt(contentLength) / (1024 * 1024)).toFixed(2)
- console.log(`Taille du fichier téléchargé: ${sizeInMB} Mo`)
- } else {
-
- // mesurer la taille des données
- const sizeInMB = (data.length / (1024 * 1024)).toFixed(2)
- console.log(`Taille des données: ${sizeInMB} Mo`)
- }
-
- fs.writeFileSync(sourceFilePathGeoJson, data)
- console.log('fichier téléchargé avec succès:', sourceFilePathGeoJson)
-
-}
let filterZipCode = new RegExp(`^${filterDepartment}`)
let filterZipCodeAdresse = new RegExp(` ${filterDepartment}`)
@@ -281,7 +257,6 @@ function convertDataFromSource(sourceFilePath: string, mapping: MappingConfigTyp
let remove_original_key = false;
// fix des jeux de données qui ne sont pas des geojson
-
let properties_list: any = []
if (feature_point.geo_point_2d) {
@@ -362,8 +337,6 @@ function convertDataFromSource(sourceFilePath: string, mapping: MappingConfigTyp
debugLog('pas de filtre sur les coordonnées bounding box')
}
-
- // TODO add filter offset max
// filter points depending on zipcode
if (regex_filter_test_result) {
feature_points_after_filter.push(feature_point)
@@ -385,13 +358,9 @@ function convertDataFromSource(sourceFilePath: string, mapping: MappingConfigTyp
debugLog('convert : work on 1 point')
let mapped_point: any = {}
- if (use_mapping_engine) {
- mapped_point = Mapping_engine.mapElementFromConf(feature_point)
- debugLog('mapped_point', mapped_point)
- } else {
- debugLog('convert :using simple converter on feature point', feature_point)
- mapped_point = mapElementFromConfSimple(feature_point, mapping)
- }
+ // if (use_mapping_engine) {
+ mapped_point = Mapping_engine.mapElementFromConf(feature_point)
+ debugLog('mapped_point', mapped_point)
if (mapped_point) {
converted_geo_json.features.push(mapped_point)
debugLog('convert : added one point to converted_geo_json')
@@ -435,104 +404,50 @@ function convertDataFromSource(sourceFilePath: string, mapping: MappingConfigTyp
})
}
-/**
- * retuns the converted element from mapping config if present, null otherwise
- */
-function mapElementFromConfSimple(featurePoint: any, mappingConfig: any) {
- let mappingKeys = Object.keys(mappingConfig)
- let featurePointPropertiesKeys = Object.keys(featurePoint.properties)
-
- debugLog('keys', mappingKeys, featurePointPropertiesKeys)
-
- let newProperties: any = defaultPropertiesOfPoint
-
- // reinit properties of current point
- let basePoint = Object.create(featurePoint)
- basePoint.type = featurePoint.type
- basePoint.geometry = featurePoint.geometry
- basePoint.properties = newProperties
-
- // apply new properties if found in mapping config
- featurePointPropertiesKeys.forEach((pointKeyName: string) => {
-
- if (mappingKeys.indexOf(pointKeyName) !== -1) {
- // debugLog('found element', pointKeyName, '=>', mappingConfig[pointKeyName], 'value : ', featurePoint.properties[pointKeyName])
- let convertedValue: any = ''
- if (utils.isBooleanKey(pointKeyName)) {
-
- let copyOfValue: any = '' + featurePoint.properties[pointKeyName]
- if (typeof copyOfValue === typeof Object && copyOfValue.key_converted) {
- copyOfValue = copyOfValue.key_converted
- }
- convertedValue = copyOfValue.toLowerCase() == 'true' ? 'yes' : 'no'
- } else {
- convertedValue = featurePoint.properties[pointKeyName]
- }
-
- if (convertedValue) {
- let convertedKey: any = mappingConfig[pointKeyName]
- newProperties[convertedKey] = convertedValue
- }
- }
- })
-
- debugLog('basePoint', basePoint)
- return basePoint
-}
-
function setMappingConfigFromName(engine_conf_choice: string) {
console.log('------- geojson source', sourceFilePathGeoJson)
console.log('------- conversion engine', engine_conf_choice)
- if (use_mapping_engine) {
- debugLog(' - using mapping engine')
- debugLog(' - pointCounterMax', pointCounterMax)
- if (osmoseFormat) {
- Mapping_engine.setConfig(config.allowed_configs.mappingConfigIRVEFromOsmose)
+ debugLog(' - pointCounterMax', pointCounterMax)
- } else {
-
- if (engine_conf_choice !== default_engine_conf_choice && Object.keys(config.allowed_configs).indexOf("mappingIssy2Roues") !== -1) {
- Mapping_engine.setConfig(config.allowed_configs[engine_conf_choice])
- } else {
- console.error('mauvais paramètre de Mapping_engine: ' + engine_conf_choice, '.\n Veuillez en sélectionner un parmi ceux autorisés avec l option --engine-config=MaConfigQuiVaBien parmi ceux ci :', Object.keys(config.allowed_configs))
- return
- }
- }
- let currentMappingConfig = Mapping_engine.getConfig() as MappingConfigType;
-
- // si on a wget et que le mapping config a une source, on récupère la source définie dans le mapping config
- if (wget) {
- // console.log('wget enabled', currentMappingConfig.source)
- // let geojson_path = currentMappingConfig.source.geojson_path
- // let filename = sourceFilePathGeoJson.split('/').pop()
- // télécharger le fichier source depuis l'url du mapping config
- if (currentMappingConfig.source.geojson_path) {
- console.log('téléchargement du fichier source depuis', currentMappingConfig.source.geojson_path)
- console.log('la documentation de la ressource est disponible sur ', currentMappingConfig.source.url)
- try {
-
- replaceFile(sourceFilePathGeoJson, currentMappingConfig.source.geojson_path)
- convertDataFromSource(sourceFilePathGeoJson, currentMappingConfig, pointCounterMax, boundingBoxCoordinates)
- } catch (error) {
- console.error('Erreur lors du téléchargement du fichier source:', error)
- process.exit(1)
- }
- } else {
- console.log('wget enabled, but no geojson_path found in mapping config', currentMappingConfig.source)
- }
- } else {
-
-
- convertDataFromSource(sourceFilePathGeoJson, currentMappingConfig, pointCounterMax, boundingBoxCoordinates)
- }
+ if (osmoseFormat) {
+ Mapping_engine.setConfig(config.allowed_configs.mappingConfigIRVEFromOsmose)
} else {
- console.log(' ------ on utilise mappingConfigIRVE_simple')
- let mappingConfigIRVE = config.allowed_configs.mappingConfigIRVE_simple
- convertDataFromSource(sourceFilePathGeoJson, mappingConfigIRVE, pointCounterMax, boundingBoxCoordinates)
+ if (engine_conf_choice !== default_engine_conf_choice && Object.keys(config.allowed_configs).indexOf("mappingIssy2Roues") !== -1) {
+ Mapping_engine.setConfig(config.allowed_configs[engine_conf_choice])
+ } else {
+ console.error('mauvais paramètre de Mapping_engine: ' + engine_conf_choice, '.\n Veuillez en sélectionner un parmi ceux autorisés avec l option --engine-config=MaConfigQuiVaBien parmi ceux ci :', Object.keys(config.allowed_configs))
+ return
+ }
+ }
+ let currentMappingConfig = Mapping_engine.getConfig() as MappingConfigType;
+
+ // si on a wget et que le mapping config a une source, on récupère la source définie dans le mapping config
+ if (wget) {
+ console.log('wget enabled')
+ // télécharger le fichier source depuis l'url du mapping config
+ if (currentMappingConfig.source.geojson_path) {
+ console.log('téléchargement du fichier source depuis', currentMappingConfig.source.geojson_path)
+ console.log('la documentation de la ressource est disponible sur ', currentMappingConfig.source.url)
+ try {
+
+ utils.replaceFile(sourceFilePathGeoJson, currentMappingConfig.source.geojson_path)
+ convertDataFromSource(sourceFilePathGeoJson, currentMappingConfig, pointCounterMax, boundingBoxCoordinates)
+ } catch (error) {
+ console.error('Erreur lors du téléchargement du fichier source:', error)
+ process.exit(1)
+ }
+ } else {
+ console.log('wget enabled, but no geojson_path found in mapping config', currentMappingConfig.source)
+ }
+ }
+ else {
+
+
+ convertDataFromSource(sourceFilePathGeoJson, currentMappingConfig, pointCounterMax, boundingBoxCoordinates)
}
}
diff --git a/docs/website/index.html b/docs/website/index.html
new file mode 100644
index 0000000..0155550
--- /dev/null
+++ b/docs/website/index.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ Wololo - Convertisseur de données vers OSM
+
+
+
+
+
+
+
🌍 Wololo - Convertisseur de données vers OpenStreetMap
+
+
Wololo est un outil de conversion de données qui permet de transformer différents formats de données en tags
+ OpenStreetMap. Il facilite l'import de données provenant de diverses sources vers la base de données OSM.
+
+
Configurations de mapping disponibles
+
+
+
⚡ IRVE (Bornes de recharge)
+
Configuration pour la conversion des données de bornes de recharge électrique.
+
+
+
+
🚲 Stationnements vélos
+
Configuration pour la conversion des données de stationnements vélos.
+
+
+
+
🗄️ Osmose
+
Configuration pour la conversion des données issues d'Osmose.
+
+
+
+
🏛️ Musées
+
Configuration pour la conversion des données de musées et lieux culturels.
+
+
+
+
🪧 Plaques commémoratives
+
Configuration pour la conversion des données de plaques commémoratives et historiques.
+
+
+
+
🌳 Arbres
+
Configuration pour la conversion des données d'arbres et d'espaces verts.
+
+
+
+
🚦 Panneaux de signalisation routière
+
Configuration pour la conversion des données de panneaux de signalisation et de sécurité routière.
+
+
+
+
♻️ Points d'apport volontaire
+
Configuration pour la conversion des données de points de collecte et de recyclage.
+
+
+
+
🦸 Demandez Angela
+
Configuration pour la conversion des lieux partenaires du dispositif "Demandez Angela" contre le harcèlement.
+
+
+
+
+
🎥 Appareils de surveillance
+
Configuration pour la conversion des données de caméras et dispositifs de surveillance.
+
+
+
+
🏥 Lieux de soin
+
Configuration pour la conversion des données de centres de santé, hôpitaux et lieux de soin.
+
+
+
+
Sources du projet
+
Le code source de Wololo est disponible sur GitHub : osmose-to-osm
+
+
+
+
Contact
+
Pour toute question ou suggestion, n'hésitez pas à me contacter :