Suite

Trouver des itinéraires à partir d'un ensemble de points à l'aide de PostGIS ?

Trouver des itinéraires à partir d'un ensemble de points à l'aide de PostGIS ?


J'ai une table de lignes (base de données activée par postgis) représentant les rues.

J'ai collecté quelques points GPS le long d'un itinéraire et j'aimerais le faire correspondre avec les rues dans l'ordre.

Scénario - Je fais du jogging le long de la rue A suivie de la rue B, de la rue C. Disons que j'ai 3 points GPS collectés lorsque je cours dans chacune de ces rues - total 9 points.
Ma sortie souhaitée est une liste - [rue A, rue B, rue C]
Ce que j'ai fait jusqu'à présent

Obtenez le nom de la rue en fonction d'un point GPS. Ceci est basé sur la distance la plus proche du point à n'importe quelle rue à proximité. Comme prévu, lorsqu'il y a des rues qui se chevauchent, les résultats sont faussés.


Ce que je pense peut fonctionner

Prenez une paire de points et trouvez la rue (ligne) faisant le plus petit angle avec la ligne reliant la paire de points. Si c'est une bonne approche, à quoi dois-je m'attendre lorsque je fais la transition d'une rue à une autre (comme les points (3,4) ou (6,7) dans le scénario) ? Ils pourraient faire un angle plus petit avec une autre rue à proximité.

Existe-t-il un meilleur moyen d'y parvenir ou pouvez-vous rendre mon approche plus robuste ?


Je pense que la résolution pourrait être :

  1. Tracez la ligne entre tous les points de la piste GPS
  2. Simplifiez la ligne pour empêcher le GPS de flotter lorsque vous êtes debout
  3. Ligne éclatée en un ensemble de lignes (coupe la ligne sur chaque point)
  4. Pour chaque ligne de l'ensemble de lignes, sélectionnez la ligne des routes dans la distance maximale spécifiée et l'angle maximal spécifié, triez par angle entre elles et limite 1
  5. Sélectionnez distinct des routes sélectionnées.

Voir la vidéo: Web Mapping Open Source: PostGIS, GeoServer et OpenLayers - learn IT Certification