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

GEODATA DAYS 2024

#1 Mon 05 March 2012 15:02

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

points les plus distants d'une série de polygones

Bonjour,

J'aimerais connaître une méthode simple (je rêve), pour renseigner un champ qui indiquerait la distance entre les points les plus éloignés de chaque polygone contenus dans une table.

j'utilise mapinfo 7.0, version pas tout à fait actuelle...

Merci d'avance de votre aide...

peut-être que QGis permet ce genre de chose ?

Hors ligne

 

#2 Mon 05 March 2012 15:39

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: points les plus distants d'une série de polygones

Salut et Bienvenue,

pour renseigner un champ qui indiquerait la distance entre les points les plus éloignés de chaque polygone contenus dans une table.


Peux tu nous donner un peu plus de précisions, afin que l'on puisse répondre avec un maximum de pertinence wink
A+
Joël

Hors ligne

 

#3 Mon 05 March 2012 15:56

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

Re: points les plus distants d'une série de polygones

Merci pour l'accueil,

en fait, je cherche à distinguer des polygones en fonction de leur plus grande dimension, afin de les ranger dans des tables différentes. l'idée finale est d'afficher, à un niveau de zoom donné, uniquement les centroïdes des polygones qui peuvent être considérés comme ponctuels à ce niveau de zoom : par exemple, un polygone dont la plus grande dimension est de 30 m, sera considéré comme ponctuel et donc affiché aux échelles inférieures à 1/10 000è.

j'aurais pu me contenter de la surface des polygones ou de leur périmètres, mais çà ne fonctionne pas car il y a pas mal de polygones très allongés (rapport longueur/surface élevé) ou biscornus..

je ne sais pas si c'est clair...

Merci

Hors ligne

 

#4 Mon 05 March 2012 16:22

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: points les plus distants d'une série de polygones

Si j'ai bien compris ton problême.
Il te faut faire (pour chaque polygone) des oursins avec le centroïde et chaque noeud composant le polygone, prendre la longueur la plus grande de l'oursin et puis de classifier ton polygone en fonction de cette distance.
Jusque là j'ai tout bon ou je me plante complètement?

Dernière modification par Spacejo (Mon 05 March 2012 16:23)

Hors ligne

 

#5 Mon 05 March 2012 16:36

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

Re: points les plus distants d'une série de polygones

Bonjour,

Pas tout à fait, puisque le segment formé par les deux points les plus éloignés d'un polygone ne passe pas forcément par son centroïde...

Fabien

Hors ligne

 

#6 Mon 05 March 2012 16:41

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: points les plus distants d'une série de polygones

Aïe !!!

Alors là celà devient plus dur sad mais pas impossible

Hors ligne

 

#7 Mon 05 March 2012 16:49

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

Re: points les plus distants d'une série de polygones

Je m'en doutais un peu en fait... et comme je ne suis pas un cador du Mapbasic...

Hors ligne

 

#8 Mon 05 March 2012 16:52

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

Re: points les plus distants d'une série de polygones

S'il faut comparer deux à deux les distances de tous les noeuds de chaque polygones, çà risque de prendre un sacré temps de calcul !

Fabien

Hors ligne

 

#9 Mon 05 March 2012 16:53

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: points les plus distants d'une série de polygones

Pas besoin d'être un expert en MapBasic pour faire des trucs sympas.
Le tout c'est d'utiliser la FMB (Fenêtre MapBasic) Outils ou Options (je ne me rapelle plus)  --> Voir Fenêtre MapBasic
Voilà un exemple (pour que tu puisses voir que les opérations répêtitives sont faisables et pas forcément dures pour un novice)
--> http://georezo.net/forum/viewtopic.php? … hl=caserne

çà risque de prendre un sacré temps de calcul


--> La machine bosse de nuit wink

Dernière modification par Spacejo (Mon 05 March 2012 17:01)

Hors ligne

 

#10 Mon 05 March 2012 17:03

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

Re: points les plus distants d'une série de polygones

Merci, je vais explorer çà !
Fabien

Hors ligne

 

#11 Mon 05 March 2012 17:36

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

Re: points les plus distants d'une série de polygones

Bonjour
Piste: la diagonale du rectangle englobant (MBR=minimum bounding rectangle) ne constituerait-elle pas une bonne approximation ??

Hors ligne

 

#12 Tue 06 March 2012 16:03

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

Re: points les plus distants d'une série de polygones

Bonjour,

j'ai un peu regardé les posts... j'ai très peu avancé.

je suis parvenu à mettre une colonne résultat sur ma table "Stations" qui contient mes polygones, indiquant la distance entre le premier noeud et le second (ou le troisième...). j'ai fait la requête pour une seule station (champ "CODERELEVE") la requête donne çà :

Code:

Select CODERELEVE, SphericalDistance( ObjectNodeX(obj,1,1),ObjectNodeY(obj,1,1), ObjectNodeX(obj,1,2),ObjectNodeY(obj,1,2) , "m" ) from stations where CODERELEVE = "10100003" into selection

il faut maintenant que je parvienne à calculer en automatique la distance maximale entre les n*n-1 distances à mesurer dans chaque polygone (distances entre chaque noeuds 2 à 2), puis que je parvienne à automatiser ce calcul sur l'ensemble de mes polygones. et là je bloque sur l'écriture des scripts... je sais que les coordonnées du dernier noeud sont obtenues par cette syntaxe :

Code:

ObjectNodX(obj, 1, objectinfo(obj,20)),  ObjectNodY(obj, 1, objectinfo(obj,20))

ou encore

Code:

ObjectNodeX   (obj,objectinfo(obj,21),objectinfo(obj,21+objectinfo(obj,21))), ObjectNodeY   (obj,objectinfo(obj,21),objectinfo(obj,21+objectinfo(obj,21)))

car j'ai quelques polygones collection...
                                         

je retiens aussi l'option du rectangle englobant qui pourrait être une solution de repli, même si je ne sais pas comment le générer et en mesurer la diagonale...

Merci,
Fabien

Hors ligne

 

#13 Tue 06 March 2012 16:29

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: points les plus distants d'une série de polygones

Une solution possible pour faire du batch (travail par lots) vu que tu as pas mal de polygones.
Faire une recherche sur le forum et sur celui des voisins (Forum sig) avec comme mot clef "Scriptgen" ou "Générateur de scripts"
A+
Joël

Hors ligne

 

#14 Tue 06 March 2012 18:14

lifinbox
Juste Inscrit !
Date d'inscription: 5 Mar 2012
Messages: 8

Re: points les plus distants d'une série de polygones

J'ai l'impression que je ne peux pas faire ce que je souhaite avec ScriptGen. je ne sais pas comment faire une boucle d'itération qui, pour un polygone, permettrait de mesurer les distances entre les noeuds, 2 à 2 (tout en prenant en compte le fait que la distance entre le noeud 1 et le noeud 5 est évidemment la même qu'entre le noeud 5 et le noeud 1, çà fait 2 fois moins de calculs)... avec uniquement la fenêtre Mapbasic et les requêtes SQL et sans Mapbasic en lui-même, je pense que c'est mort... qu'en pensez-vous ?

c'est sûrement pas hyper clair...

Hors ligne

 

#15 Fri 09 March 2012 16:22

michelbgy
Participant actif
Date d'inscription: 9 Feb 2010
Messages: 77

Re: points les plus distants d'une série de polygones

bonjour,

après avoir créé des points aux sommets des polygones (outil extracteur de coordonnées puis créer points, ou bien poly-to-point avec VerticalMapper)
l'outil Spider Graph dessine des lignes entre tous les points de même identifiant (celui des polygones) et calcule leurs longueurs
Une petite Sélection SQL permet de récupérer la valeur maxi

encore plus simple (quoique un peu moins rigoureux mais pour gérer des niveaux de zoom ça me parait suffisant):
faire un tampon de 15m autour des centroïdes des polygones -->requête géographiques: polygones contenus entièrement dans les tampons ou pas -->classement en 2 catégories


! erreur sur première méthode: l'extraction de coordonnées fourni le centroïde du polygone et pas les coordonnées des noeuds
voir peut être RouteWare Toolbox: Add nodes to line

Dernière modification par michelbgy (Fri 09 March 2012 17:15)

Hors ligne

 

#16 Mon 09 April 2012 09:58

Denis Jouin
Participant occasionnel
Lieu: Rouen
Date d'inscription: 10 Aug 2007
Messages: 20

Re: points les plus distants d'une série de polygones

Bonjour,

Voici un petit outil MBX (version 7 et supérieures de mapinfo) qui calcule la distance maximum, en mètres, entre deux points de chaque région et l'inscrit dans une colonne de la table.

C'est une méthode simple qui pourrait combler le rêve de Fabien....

Cordialement
Denis

PS : je fournis le source sur demande


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

Hors ligne

 

#17 Mon 09 April 2012 16:43

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: points les plus distants d'une série de polygones

Bonjour

Merci Denis pour ta participation.  C'est toujours très apprécié.

Daniel


De retour à la géomatique

Hors ligne

 

Pied de page des forums

Powered by FluxBB