-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTODOLIST
83 lines (59 loc) · 3.35 KB
/
TODOLIST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
* Regrouper les requêtes OverPass en une seule
Actuellement, on procède comme suit:
1. Une requête pour récupérer les bouches les plus proches
2. Pour chaque bouche, une requête distincte pour trouver à quelle station elle appartient
Il semble qu'il soit possible de récupérer toutes ces informations
en une seule requête en utilisant une requête OverPass telle que:
node[railway=subway_entrance](around:100,48.87614,2.32656);
out;
rel(bn._)[type=public_transport][public_transport=stop_area];
out;
* Vérification de l'intégrité des données sur OpenStreetMap
Vérifier régulièrement les donées sur les bouches / stations pour être
sûr qu'il n'y a pas de régressions (peut-être via OverPass?)
* Parallélisaiton des requêtes
** Voir Python async, en particulier coroutines, tasks et asyncio
** Voir aussi https://docs.python.org/3.8/library/concurrent.futures.html
La bibliothèque ci-dessus permet d'exécuter des requêtes soit dans des
threads, soit via des processus.
Bibliothèque aiohttp, semble être la bonne solution (utilise asyncio,
fait tout dans le même thread)
* Améliorations possibles du calcul de distance entre l'adresse et les bouches
** Utiliser une bibliothèque externe qui tient mieux compte des positions GPS
Mot-clef: geospatial library python
Par exemple: python3-geojson
** Utiliser la distance à pieds plutôt qu'à vol d'oiseau
https://wiki.openstreetmap.org/wiki/GraphHopper
https://wiki.openstreetmap.org/wiki/Osrm
Articles sur les algorithmes de parcours de graphes utilisés en routage:
https://www.sigterritoires.fr/index.php/developper-une-application-avec-pgrouting-sous-windows-2lalgorithme-a-star/
https://www.sigterritoires.fr/index.php/developper-une-application-avec-pgrouting-sous-windows-3lalgorithme-dijkstra/
* Filtrage des adresses
** Lister les codes postaux des villes de France où il y a des stations de métro
** Ne garder que les adresses dont les codes postaux sont dans la liste précédente
* Affichage des résultats
** Si une station n'a qu'une seule sortie, afficher "sortie unique"
** Affichage du nom des stations
si la bouche fait partie d'un stop_area qui contient un public_transport=station ou un railway=station, alors prend le nom de cet objet
sinon, si la bouche fait partie d'une stop_area qui a un nom, prend ce nom
Note: une station est objet avec railway=station et/ou public_transport=station
Peut-être de façon optionnelle:
** N'afficher qu'une bouche par station
** Afficher uniquement des stations situées sur des lignes différentes
** Inclure arrêts de bus?
** Faire un affichage par colonnes pour les voyants
* Technique
** Voir si on peut diminuer le nombre de requêtes OverPass
** Améliorer affichage chaînes de caractères
*** Avec la méthode format, ou
*** Avec les fstrings f"Hello {name}"
** Utiliser un framework Python pour l'affichage et le ASGI/WSGI
(cf. https://asgi.readthedocs.io)
** Utilisation bibliothèque python3-geojson (format retourné par la BAN et proposé par OverPass)
* Documentation
** Dans le code, ajouter en commentaries des liens vers les explications des clefs et des valeurs OSM que l'on utilise
Exemple: https://wiki.openstreetmap.org/wiki/Key:name
** Dans le README, une section further readings
* Conceptions alternatives
** Que peut-on faire en local, que peut-on précalculer?
** Existe-t-il des conteneurs dockers avec OSM ou des services dedans?