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 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
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 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
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
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