2021-10-03 18:10:19 +02:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
|
|
|
|
class requete:
|
|
|
|
nom: str
|
|
|
|
critere: str
|
|
|
|
champs: dict
|
|
|
|
|
|
|
|
def __init__(self, nom, critere, champs):
|
|
|
|
self.nom = nom
|
|
|
|
self.critere = critere
|
|
|
|
self.champs = champs
|
|
|
|
|
|
|
|
|
|
|
|
reqs = []
|
|
|
|
champs_stationnement = {
|
|
|
|
"amenity": {"export_json": "Non", "FR": "aménagement"},
|
|
|
|
"capacity": {"export_json": "Oui", "FR": "nombre d'emplacements"},
|
|
|
|
"access": {"export_json": "Oui", "FR": "accès"},
|
|
|
|
"bicycle_parking": {"export_json": "Oui", "FR": "type"},
|
|
|
|
"covered": {"export_json": "Oui", "FR": "couvert"},
|
|
|
|
"operator": {"export_json": "Oui", "FR": "opérateur"},
|
|
|
|
"operator:type": {"export_json": "Oui", "FR": "type d'opérateur"},
|
|
|
|
"fee": {"export_json": "Oui", "FR": "frais"},
|
|
|
|
"check_date:capacity": {"export_json": "Non", "FR": "date_vérification"},
|
|
|
|
"source": {"export_json": "Non", "FR": "source"},
|
|
|
|
}
|
|
|
|
champs_poi = {
|
|
|
|
"name": {"export_json": "Oui", "FR": ""},
|
|
|
|
"description": {"export_json": "Oui", "FR": ""},
|
|
|
|
"website": {"export_json": "Oui", "FR": ""},
|
|
|
|
"addr:housenumber": {"export_json": "Oui", "FR": ""},
|
|
|
|
"addr:street": {"export_json": "Oui", "FR": ""},
|
|
|
|
"addr:postcode": {"export_json": "Oui", "FR": ""},
|
|
|
|
"addr:city": {"export_json": "Oui", "FR": ""},
|
|
|
|
"contact:email": {"export_json": "Oui", "FR": "email"},
|
|
|
|
"contact:twitter": {"export_json": "Oui", "FR": "Twitter"},
|
|
|
|
"contact:facebook": {"export_json": "Oui", "FR": "Facebook"},
|
|
|
|
"contact:phone": {"export_json": "Oui", "FR": "Téléphone"},
|
|
|
|
"network": {"export_json": "Oui", "FR": "Réseau"},
|
|
|
|
"office": {"export_json": "Oui", "FR": "Bureau"},
|
|
|
|
"opening_hours": {"export_json": "Oui", "FR": "Horaires"},
|
|
|
|
}
|
|
|
|
# fields api_adresse (issus du géocodage inversé)
|
|
|
|
champs_adresse = {
|
|
|
|
"api_adresse:geometry:coordinates:lon": {
|
|
|
|
"export_json": "Non",
|
|
|
|
"FR": "lon_adresse_etalab",
|
|
|
|
},
|
|
|
|
"api_adresse:geometry:coordinates:lat": {
|
|
|
|
"export_json": "Non",
|
|
|
|
"FR": "lat_adresse_etalab",
|
|
|
|
},
|
|
|
|
"api_adresse:properties:label": {"export_json": "Non", "FR": "adresse_etalab"},
|
|
|
|
"api_adresse:properties:score": {"export_json": "Non", "FR": "score_etalab"},
|
|
|
|
"api_adresse:properties:housenumber": {"export_json": "Non", "FR": "numero_etalab"},
|
|
|
|
"api_adresse:properties:type": {"export_json": "Non", "FR": "type_etalab"},
|
|
|
|
"api_adresse:properties:name": {
|
|
|
|
"export_json": "Non",
|
|
|
|
"FR": "numero_et_voie_etalab",
|
|
|
|
},
|
|
|
|
"api_adresse:properties:postcode": {
|
|
|
|
"export_json": "Non",
|
|
|
|
"FR": "code_postal_etalab",
|
|
|
|
},
|
|
|
|
"api_adresse:properties:citycode": {
|
|
|
|
"export_json": "Non",
|
|
|
|
"FR": "code_INSEE_etalab",
|
|
|
|
},
|
|
|
|
"api_adresse:properties:city": {"export_json": "Non", "FR": "ville_etalab"},
|
|
|
|
"api_adresse:properties:street": {"export_json": "Non", "FR": "rue_etalab"},
|
|
|
|
}
|
|
|
|
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"stationnements_velos_publics",
|
|
|
|
r'nwr["amenity"="bicycle_parking"](area:aire_de_recherche); - nwr["amenity"="bicycle_parking"]["access"~"(no|permit|private|customers)"](area:aire_de_recherche);',
|
|
|
|
dict(champs_stationnement, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"stationnements_velos_non_publics",
|
|
|
|
r'nwr["amenity"="bicycle_parking"]["access"~"(no|permit|private|customers)"](area:aire_de_recherche);',
|
|
|
|
dict(champs_stationnement, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
champ_local = {"service:bicycle:diy": {"export_json": "Non", "FR": ""}}
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"ateliers_autoreparation",
|
|
|
|
r'nwr["service:bicycle:diy"="yes"](area:aire_de_recherche);',
|
|
|
|
dict(champ_local, **champs_poi, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
champ_local = {"association": {"export_json": "Non", "FR": ""}}
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"associations_velo",
|
|
|
|
r'nwr["association"="bicycle"](area:aire_de_recherche);',
|
|
|
|
dict(champ_local, **champs_poi, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
champ_local = {"craft": {"export_json": "Non", "FR": ""}}
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"fabriquants_velo",
|
|
|
|
r'nwr["craft"="bicycle"](area:aire_de_recherche);',
|
|
|
|
dict(champ_local, **champs_poi, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
champ_local = {"shop": {"export_json": "Non", "FR": ""}}
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"vendeurs_velo",
|
2021-10-09 10:57:23 +02:00
|
|
|
r'nwr["shop"="bicycle"](area:aire_de_recherche); + nwr["service:bicycle:retail"="yes"](area:aire_de_recherche)',
|
2021-10-03 18:10:19 +02:00
|
|
|
dict(champ_local, **champs_poi, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
champ_local = {"amenity": {"export_json": "Non", "FR": ""}}
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"velos_libre_service",
|
|
|
|
r'nwr["amenity"="bicycle_rental"](area:aire_de_recherche);',
|
|
|
|
dict(champ_local, **champs_poi, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
champ_local = {"service:bicycle:rental": {"export_json": "Non", "FR": ""}}
|
|
|
|
reqs.append(
|
|
|
|
requete(
|
|
|
|
"location_velo",
|
|
|
|
r'nwr["service:bicycle:rental"="yes"](area:aire_de_recherche);',
|
|
|
|
dict(champ_local, **champs_poi, **champs_adresse),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|