Optimiser requête overpass -> Calcul d'un tronçon de route

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
KYou
Messages : 3
Inscription : mar. nov. 27, 2018 11:37 am

Optimiser requête overpass -> Calcul d'un tronçon de route

Message par KYou » mer. déc. 05, 2018 3:56 pm

Bonjour bonjour !

Je débute en overpass et je cherche à optimiser une requête :?

Actuellement j'essaye de calculer un tronçon de route de Xkm autour d'un point GPS.
En partant d'un couple [lat;lon], j'utilise l'api nearest d'OSRM pour récupérer le couple de nodes de la way la plus proche et avoir un point de départ pour ce tronçon.

Ensuite j'aimerai, tant que ce tronçon ne fait pas Xkm, récursivement incorporer les ways précédentes dans ce tronçon.
Pour l'instant la partie logique je la process côté serveur, et pas avec overpass, mais du coup je fais plein de "petits" appels overpass du style :

Code : Tout sélectionner

  [out:json][timeout:10];
  node(id:8138543);
  way[highway](bn);
  out geom;

 // Process côté serveur, on voit qu'on est sur une motorway
 // Calcul de la taille de la way, si c'est <X : on refait la requête en ajoutant le premier node de la way pour inclure la way précédente

 [out:json][timeout:10];
  node(id:1626625479, 8138543);
  way[highway=motorway](bn);
  out geom;
 
  ... 

  [out:json][timeout:10];
  node(id:630601, 345393194, 4908901240, 338450990, 338450989, 630600, 1381678952, 1626640970, 1626625479, 8138543);
  way[highway=motorway](bn);
  out geom;
Bref vous avez l'idée. :roll:
Techniquement ça marche, mais je trouve personnellement ça pas ouf de faire autant d'appel à overpass.
Du coup si vous avez des pistes pour améliorer ça je suis preneur :mrgreen:

Avatar de l’utilisateur
cquest
Messages : 1845
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: Optimiser requête overpass -> Calcul d'un tronçon de route

Message par cquest » mer. déc. 05, 2018 10:57 pm

L'API overpass n'est pas du tout conçue pour cela.

Le plus simple est de récupérer les données sur une zone un peu plus étendu que Xkm autour du point, puis de faire un traitement géographique local.

Faire plusieurs appels à une API (et là c'est même deux API si j'ai bien compris) pour avoir un résultat est de mon point de vue une forme d'abus d'usage de l'API.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 7 invités