Closed Jean-Romain closed 2 years ago
Bien vu. Tout ce qu'il faut c'est un identifiant unique dans la couche d'origine. Je vois les quelques étapes:
road_ori
= couche d'origine
road_cor
= couche corrigée avec measure_road()
mais pas snappée
road_cor
on prend le premier segment à traiter et regarde son identifiantroad_ori
et avec sf::st_is_within_distance
(ou sf::st_touches
) on récupère les identifiants des entités qui se touchentroad_cor
, on sélectionne les entités correspondant et on calcul le point milieu de leurs extrémités. On peut même récupérer à l'étape précédente quelle extrémité est utilisée (début ou fin) pour éviter d'avoir à chercher.tolerance
, si le point milieu est plus éloigné que l'une des extrémité, on ne fusionne pas sinon oui.Idéalement il faudrait un suivit des entités (et leurs extrémités) qui ont déjà été traité pour ne pas repasser inutilement.
C'est à reflechir. Autant j'ai fait st_snap_line()
un matin à 5h pour Lithy à UBC et c'était prêt avant ses heures de travail. Autant là faut que je me pose 5 minutes avec un papier et un crayon.
Aussi je te dirais que c'est le genre de truc qui est à mon niveau, à tout le moins en faire un prototype. Je pourrais y mettre du temps ce mois-ci, donc si tu veux mettre le tiens ailleurs pour l'instant, il n'y a pas de problème du tout.
Ok
On a la carte d'origine. Pas besoin de st_snap_line pour snapper plus ou moins bien alors qu'on sait exactement quelles routes doivent être connectés, Je pose ca la, je ne sais pas exactement comment gérer ca mais ca me semble plus pertinant de reconstruire en utilisant le réseau d'origine