banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 08 July 2010 15:50

benjamin.norrito
Participant occasionnel
Date d'inscription: 27 Jan 2010
Messages: 24

création d'un réseau

Bonjour,

voila mon problème:
- j'ai un point d'arrivée et un point de départ. Entre ces deux points il existe un multitude de points.
Le but du "jeu" c'est de relier le point de départ au point d'arrivée en passant par les points intermediaires en suivant ce principe "je vais à l'étoile intermédiaire la plus proche".  En suivant ce principe, on obtient donc une seule ligne qui rejoint le point d'arrivée au point de départ en passant par des points intermédiaires. J'ai compliqué la tâche en disant que: soit on passe par le point le plus proche, soit par le deuxième point le plus proche. En suivant ce principe, on obtient une espèce d'arborescence qui relie le point de départ et le point d'arrivée, par plusieurs chemins possibles.

- ce fonctionnement, j'arrive à le faire manuellement en utilisant la fonction "distance. mbx" et en créant une arborescence sous Excel, que je retraduit ensuite par Mapinfo. Malheureusement, j'ai enormément de chemin comme cela à produire, je souhaiterais pouvoir l'automatiser, avec au final une table avec pour objet des lignes reliant point de départ et d'arrivée.

Si quelqu'un pourrait m'aider à faire ça, ce serait déjà beaucoup! car après ça se complique avec des histoires d'obstacles...mais nous verrons ça dans un deuxième temps wink

Meric d'avance!

PS: j'ai laissé un pdf avec l'image qui correspond au "jeu" pour illustrer le problème


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Tue 13 July 2010 09:21

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: création d'un réseau

Bonjour
Une seule solution: l'écriture d'un outil MapBasic (*.mbx dédié)...qui risque d'être assez "trapue" !!
Défrichez d'abord, on verra ensuite à vous aidez où ça bloque (si on le peut ...)

Hors ligne

 

#3 Tue 13 July 2010 10:48

bavrial
Participant occasionnel
Lieu: Arquian
Date d'inscription: 8 Dec 2009
Messages: 11

Re: création d'un réseau

Bonjour,

Si je comprends bien votre sujet, vous partez d'une étoile rouge vers l'autre en passant systématiquement par l'une des deux étoiles les plus proches. J'imagine que pour chaque trajet possible, vous ne voulez pas faire repasser par une étoile déjà "utilisée".
Avec E0 , l'étoile de départ et E1.1 et E1.2 les étoiles les plus proches de E0, il me semble que pour trouver E2.1, E2.2, E2.3, et E2.4 (les 2x2 étoiles les plus proches de E1.1 et E1.2), il vous faut sélectionner toutes les étoiles sauf les étoiles E0, E1.1 et E1.2. Plus généralement, au rang i+1, supprimer les étoiles du rang i.
Je n'ai pas de ligne de code à vous proposer, mais en le faisant manuellement sur 2 ou 3 rangs (calcul de distance avec la table Etoiles_i puis création de la table Etoiles_i+1 en supprimant les étoiles déterminées au rang i, et ainsi de suite) avec la fenêtre Mapbasic ouverte, vous aurez tout pour faire un .wor ou .mbx.
Tenez au courant,

Bertrand

PS: je me rend compte que cette "solution" vous empêche néanmoins, au rang i+1, de passer par une étoile du rang i qui serait proche d'une étoile du rang i+1. A moins d'une remise sous condition...

Dernière modification par bavrial (Tue 13 July 2010 11:06)

Hors ligne

 

#4 Thu 15 July 2010 08:52

benjamin.norrito
Participant occasionnel
Date d'inscription: 27 Jan 2010
Messages: 24

Re: création d'un réseau

Merci pour votre aide! Comme vous pouvez le constater la chose n'est pas si facile mais je vais quand même essayer de faire quelque chose sous Mapbasic. Enfin bon, si quelqu'un trouve quelque chose avant, n'hesitez pas!

Hors ligne

 

Pied de page des forums

Powered by FluxBB