Question

J'ai une liste de points, et un itinéraire qu'un fournisseur externe a généré par ces points.

Je voudrais générer un itinéraire en utilisant ces mêmes points avec mon propre réseau routier.

Ensuite, je veux être en mesure de détecter s'il y a une différence significative entre les deux voies.

Une suggestion est que pour les 2 routes, nous découvrons quels segments ils voyagent à travers la route, et comparer la liste des segments de route?

Est-ce une approche valable? Comment pouvons-nous faire pour obtenir la liste des segments de route donné un itinéraire?

J'utilise serveur ArcGis 9.3 avec Java 5 et Oracle 10g. J'utilise les fonctions ST et NetworkAnalyst via l'API java.

Merci.

Était-ce utile?

La solution

Calculer l'itinéraire en utilisant vos points et le réseau routier. tampon puis l'itinéraire résultant en un polygone (le rayon tampon devrait être votre « tolérance »). Ensuite, couper la route externe à l'aide de votre polygone. Si la polyligne résultante est non vide, alors il y a un écart à l'extérieur de votre tolérance.

Cette méthode n'Acount pas pour tout écart « significatif », comme retours en arrière, U-Turns, ou de prendre une route parallèle à proximité.

Vous pouvez comparer les résultants « directions » et vérifier les écarts là-bas - en utilisant les noms des rues particuarly. Cela vous évite de vérifier chaque segment de route. Si vous avez des écarts dans les noms de route, puis vérifiez les segments de route individuels de chaque section.

Autres conseils

Je viens de quelque chose de similaire dans implémenté ma demande. J'ai une liste de coordonnées lat / long d'un appareil GPS et nécessaire pour créer un itinéraire en fonction de ces données.

J'ai commencé en faisant correspondre chaque position GPS avec un noeud dans mon réseau de rue. Je ensuite éliminé nœuds « consécutivement en double » pour filtrer les positions consécutives qui sont au même noeud. Ensuite, j'ai commencé à « marcher » à travers mon réseau de la rue, à partir du premier noeud. Je suis arrivé le premier noeud et le second noeud et vérifié pour un segment de rue commun. Si je trouvais un, grand. Sinon, je crée un plus court chemin entre les 2 nœuds et d'utiliser ces routes à la place. Je continue à le faire jusqu'à ce que je l'ai examiné tous les nœuds. A la fin de ce processus, j'ai une liste de segments de route que le véhicule et l'ordre voyagea dans lequel ils ont été parcourus, aussi.

Malheureusement, j'utilise une autre carte, langage de programmation différente, et base de données. En tant que tel, partage le code ne sera pas utile pour vous du tout. Si tout va bien le processus que je décrit ci-dessus sera assez pour vous aider à accomplir votre tâche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top