Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Mon 02 November 2009 11:22
- Nana35
- Participant occasionnel
- Date d'inscription: 11 Oct 2007
- Messages: 18
Tronçons connectés entre eux
Bonjour,
Je travaille sur MapInfo Version 7.5.
Sur une couche géographique de type polyligne, je souhaite réaliser plusieurs requêtes spatiales. Il s'agit de sélectionner les tronçons que ne sont connectés à aucun autre tronçon. Une seconde pour sélectionner les tronçons connectés que d'un seul bout et pour finir les tronçons connectés par un autre tronçon de chaque côté.
Ce type de requête doit être possible étant donné qu'au niveau topologique, les tronçons ont été saisis en utilisant "FUSION".
Merci, pour votre aide.
Hors ligne
#2 Tue 03 November 2009 17:19
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Tronçons connectés entre eux
Bonjour
Possible...ça reste à démontrer !! Facile: sûrement pas
La topologie du format TAB n'est pas très élaborée...
Pour ceux qui ne sont pas connectés, il faut un identifiant unique de chaque tronçon puis une copie de la table
Code:
Select * From ma_table, copie_de_ma_table Where ma_table.obj Intersects copie_de_ma_table.obj And ma_table.ID <> copie_de_ma_table.ID
puis inverser la sélection ...
Ceux qui sont initialement sélectionnés intersectent ....quelque part mais je ne vois pas comment savoir si c'est à un bout, et/ou au deux...et/ou ailleurs
Hors ligne
#3 Tue 03 November 2009 19:14
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: Tronçons connectés entre eux
Bonjour
Je confirme les dire de Maurice cela ne sera pas facile.
Pour simplifier la méthode il faut que chaque tronçon soit constitué d'une seule polyligne.
créer ou plutôt retrouver les extrémités de chacun des tronçons en mettant toute ces données dans une seule table.
du type point id_polyligne, id_point , X, Y
id_point peut être réduit à la simple expression 1 pour le point début
2 pour le point de fin.
pour simplifier celà peut être fait en 2 fois.
la première pour obtenir tous les points de début la seconde tous les points de fin.
pour à la fin fusionner les 2 tables.
ensuite à partir de cette table cela deviens beaucoup plus simple...
voilà c'est un début de réflexion...
Hors ligne
#4 Wed 04 November 2009 11:54
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: Tronçons connectés entre eux
Bonjour,
C'est une autre façon de poser le problème des routes dont il est beaucoup question ces temps-ci.
Le type de difficulté rencontrée est par exemple que les tronçons T1 et T2 peuvent être connectés de plusieurs façons T1=>T2 ou -T1=>T2 ou T1=>-T2 ou -T1=>-T2, le signe '-' signifie que le tronçon est inversé.
Cordialement.
Hors ligne
#5 Wed 04 November 2009 14:46
- Patrick PALMIER
- Participant actif
- Lieu: Lille
- Date d'inscription: 18 Jan 2007
- Messages: 97
Re: Tronçons connectés entre eux
Bonjour,
ci-joint un outil qui peut entre autres construire une topologie de réseau sur une couche de polylignes
Sélectionner "Créer graphe", entrer un petit paramètre "0.001" par exemple et le nom de votre couche de polylignes
L'outil ajoutera des colonnesà votre table dont des colonnes noeudA et noeudB avec un numéro de noeud rempli
il proposera également de créer une table de noeuds
Il suffit ensuite de compter pour chaque numéro de noeud, dans combien de troncons différents il appartient ( en noeudA ou noeudB)
et de reporter ces informations dans la tables des tronçons par une jointure sur le numéro de noeud
Les troncons dont le NoeudA et NoeudB sont repris qu'une fois sont isolés
ceux pour lesquels un des deux est repris une seule fois sont connectés que d'un côté
ceux pour lesquels les deux noeuds sont repris plus d'une fois sont connectés des deux côtés
PS: L'outil permet également de parcourir un graphe sur un réseau (pour la question de calcul de distances routières) et quelques fonctions basiques pour visualiser les isochrones à partir de grilles.
[EDIT Maurice]: doc. de 24 pages mise en ligne.. en 3 morceaux zippés: les pages d'explication de 1 à 20, 3 pages d'illustration de l'accessibilité de 21 à 23, la dernière page 24 illustrant l'usage de la BDALTI (altitude-pente et courbes de niveau)
Hors ligne
#6 Thu 05 November 2009 13:45
- Nana35
- Participant occasionnel
- Date d'inscription: 11 Oct 2007
- Messages: 18
Re: Tronçons connectés entre eux
Merci pour ces réponses.
Je me suis plus intéressée à l'outil proposé par Patrick. Je pense que ça devrait pouvoir ce faire seulement j'ai besoin davantage de précisions pour réaliser le calcul du compte et la jointure.
Est- possible de développer?
Bonne journée.
Hors ligne
#7 Thu 05 November 2009 14:56
- Patrick PALMIER
- Participant actif
- Lieu: Lille
- Date d'inscription: 18 Jan 2007
- Messages: 97
Re: Tronçons connectés entre eux
Bonjour
Je pense que tu as donc réussi à générer ton graphe
tu a donc une table de noeuds (qui contient une colonne "NUMERO" avec le numéro de noeud)
et une table d'objets linéaires qui contient deux colonnes "NOEUDA" et "NOEUDB" qui contiennent les numéros de noeud extrémités des polylignes
Deux solutions sont possibles
- solution géographique
Tout d'abord ajouter un champ "NBCONNEX" dans la table des noeuds
Si les noeuds sont bien fusionnés avec les extrémités de tronçon, tu peux mettre à jour la colonne NBCONNEX de la table noeuds en faisant le count des objets de la table d'objets linaires (jointure intersects). Si les noeuds ne sont pas tout à fait jointifs il faut passer auparavant par un petit tampon autour des noeuds
Tu as ensuite pour chaque noeud le nombre de polylignes qui ont pour extrémité le dit noeud
- requête attributaire
Même chose mais à effectuer en deux temps
Compter pour chaque noeud les objets linéaires pour lequels NoeudA=NUMERO, puis NoeudB=NUMERo et faire la somme des deux indicateurs
Tu as ensuite pour chaque noeud le nombre de polylignes qui ont pour extrémité le dit noeud
Ensuite, il faut remonter ce nombre calculé pour chaque noeud au niveau des polylignes avec une jointure sur noeudA=Numero et noeudB=numero
Chaque polyligne a ensuite deux indicateurs (nombre de connections au noeudA(=na) et le nombre au noeudB (=nb))
Si na=1 et nb=1, la polyligne est isolée
si na=1 et nb>1 ou nb=1 et na>1 la polyligne est connectée que d'un côté
si na>1 et nb>1 la polyligne est connectée des deux côtés
C'est pas immédiat immédiat, mais ça doit fonctionner
Hors ligne
#8 Thu 05 November 2009 21:01
- goujonmp
- Participant occasionnel
- Date d'inscription: 8 Dec 2005
- Messages: 34
Re: Tronçons connectés entre eux
Bonjour,
J'ai essayé le fameux outil "réseau" proposé par Patrick, pour créer des carrefours à l'intersection de mon filaire de voies
Exercice similaire à ce qui est expliqué ci-dessous par Patrick,
Efficace, mais j'aimerai en savoir un peu plus, il a l'air de faire des choses plus intéressantes encore.
On ne pourrait pas voir sa doc ?
Merci à vous.
Cordialement
MP GOUJON
Hors ligne
#9 Fri 06 November 2009 10:08
- Nana35
- Participant occasionnel
- Date d'inscription: 11 Oct 2007
- Messages: 18
Re: Tronçons connectés entre eux
Merci Patrick,
L'outil est super intéressant et tu m'as donné de très bonnes explications.
C'est parfait.
Bonne continuation.
Hors ligne
#10 Fri 06 November 2009 11:40
- Patrick PALMIER
- Participant actif
- Lieu: Lille
- Date d'inscription: 18 Jan 2007
- Messages: 97
Re: Tronçons connectés entre eux
On ne pourrait pas voir sa doc ?
Il faudrait me contacter par email ... ou pouvoir déposer un fichier de 4741Ko (le document principal contient des copies d'écran)
[EDIT Maurice]: doc. de 24 pages mise en ligne.. en 3 morceaux zippés: les pages d'explication de 1 à 20, 3 pages d'illustration de l'accessibilité de 21 à 23, la dernière page 24 illustrant l'usage de la BDALTI (altitude-pente et courbes de niveau)
Hors ligne
#11 Mon 22 February 2010 22:28
- wakinfei
- Juste Inscrit !
- Date d'inscription: 18 Jan 2010
- Messages: 1
Re: Tronçons connectés entre eux
bonjour,
merci de votre partage!
je pense que cet outil est assez efficace que CHRONOmap...
Hors ligne
#12 Thu 25 February 2010 16:54
- michelbgy
- Participant actif
- Date d'inscription: 9 Feb 2010
- Messages: 77
Re: Tronçons connectés entre eux
Une méthode avec uniquement les commandes de base de Mapinfo, qui répond parfaitement au problème initial et certainement plus rapide:
Faire une sélection SQL de la table avec une copie, ne garder que les colonnes ID et ID_2
Agrégation par ID: si count =1 (autointersections)--->cas1(tronçons isolés)
si count=2 ---> cas2 (tronçons raccordés d'un coté)
Faire une sélection SQL de la table constituée des objets restants(count>=3) avec une copie (renommer les champs Idbis et Idbis_2) , critères:
Les objets ne se touchent pas entre eux mais touchent un objet commun (Id_2=Idbis_2) et sont donc en opposition
La colonne ID_2 donne les objets du cas3 (encadrés des 2 côtés) les autres rejoignent le cas 2 (avec en prime l'information qu'ils des connections multiples bien que d'un seul côté)
ps: le problème des tronçons non jointifs doit en principe être réglé préalablement, sauf que la manip peut avoir cette finalité: détecter les anomalies pour les corriger manuellement
Il reste le problème des tronçons qui se recoupent mais pas par les extrémités: là il faut générer des points et faire des SQL avec critères d'intersection sur les tronçons ET les points;Il vaudrait mieux faire cela dans une étape indépendante sinon ça va devenir compliqué, ceci dit la question initiale ne mentionnait pas les problèmes de "propreté" de la table.
Hors ligne
#13 Mon 15 March 2010 18:01
- antonio24
- Juste Inscrit !
- Date d'inscription: 17 Nov 2008
- Messages: 8
Re: Tronçons connectés entre eux
Bonjour,
A propos de l'outil Réseaux:
Lorsque je veux générer un graphe (c'est la première étape, si j'ai bien compris), un message d'erreur apparaît :
"(reseaux.mb:198) Impossible de créer une table"
Y-a t'il quelquechose que j'ai manqué ? Je pars d'une couche représentant les Rues, issu d'une base Navteq...
Merci de vos réponses
Hors ligne
#14 Tue 16 March 2010 08:54
- Patrick PALMIER
- Participant actif
- Lieu: Lille
- Date d'inscription: 18 Jan 2007
- Messages: 97
Re: Tronçons connectés entre eux
Bonjour,
l'outil reseaux créait des tables temporaires sur le disque C:
Il semble que la tendance actuelle (une triste régression à mon avis, surtout pour des utilisateurs confirmés) qui consiste à ne pas donner les privilèges administrateur sur leur poste aux agents soit la source du problème.
Es-tu administrateur de ton poste?
Si non, ci-joint une version du MBX qui tourne même si l'on est pas administrateur. Il crée les tables temporaires dans le répertoire temporaire de l'utilisateur
Il suffit de remplacer le MBX existant par celui-ci
Le problème doit venir de là.
Cordialement
Hors ligne
#15 Fri 19 March 2010 16:54
- antonio24
- Juste Inscrit !
- Date d'inscription: 17 Nov 2008
- Messages: 8
Re: Tronçons connectés entre eux
Bonjour,
Merci beaucoup, je vais voir ce que ça donne et je vous tiens au courant.
Hors ligne
#16 Fri 19 March 2010 17:36
- antonio24
- Juste Inscrit !
- Date d'inscription: 17 Nov 2008
- Messages: 8
Re: Tronçons connectés entre eux
Bonjour,
Merci pour la nouvelle version du MBX. J'ai pu aller plus loin dans les étapes.
Cependant, lors du lancement du calcul d'accessibilité, un nouveau message d'erreur apparaît : "(reseaux.mb.1523) La bibliothèque michemin.dll est introuvable. Impossible de créer un lien vers la bibliothèque externe michemin.dll."
J'ai donc essayé de lancer le calcul avec l'outil précédent (celui qui bug lorsque l'on est pas administrateur) et là c'est carrément un plantage en règle de Mapinfo qui survient, avec proposition d'envoi de rapport d'erreur etc...)
C'est dommage d'être privé d'un outil aussi intéressant pour des problèmes d'administration...
A bientôt
Hors ligne
#17 Fri 19 March 2010 20:26
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Tronçons connectés entre eux
Bonjour
Cette bibliothèque michemin.dll est fait partie de l'outil joint au post #5 ici même et doit être installée au même endroit que le mbx
Hors ligne