#1 Tue 18 December 2007 12:41
création de lignes à partir de points
j'ai une couche de points qui se suivent en format une ligne . Je souhaite tracer des tronçons linéaires par exemple si je prends les 3 premiers points: tracer un segment dont le premier point est situé entre les 2 premiers points et le deuxième point entre le 2eme et le 3eme point. Je joins un petit dessin pour m'expliquer.
Je recherche un code mapbasic s'il existe, sinon un début de méthode par quelqu'un qui connait la geométrie...
La finalité est la suivante: je voudrait faire une analyse thématique sur une valeur, non pas sur une couche de points (qui est ma donnée de départ) mais sur du linéaire (en épaisseur par ex)
Précision: je sais qu'il existe un programme pour relier des points donc ce n'est pas lui que je recherche
merci
Hors ligne
#2 Tue 18 December 2007 13:45
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: création de lignes à partir de points
Bonjour
Il faut passer par un programme en MapBasic (mbx à créer ) utilisant la commande Create Pline....si on a MapBasic
A défaut il faudra se contenter de MapInfo, si les points se suivent bien, dans le bon ordre...
- créer 6 colonnes x1,y1,x2,y2,xmid,ymid en flottant et une colonnes 'rang' en entier
- mettre à jour x1,y1 par centroidX(obj) et centroidY(obj), et la colonne 'rang' par rowid
- exporter la table de données en dbf sous un nouveau nom
- sous Excel, mettre à jour x2,y2 par les valeurs x1,y1 de la ligne du dessus, puis mettre à jour xmid,ymid par la moyenne, sur la ligne, de x1,x2 et y1,y2. Supprimer la première ligne: n-1 intervalles pour n arbres
- ouvrir le dbf dans MapInfo et faire menu Table->Créer points... en choisissant xmid et ymid
- enfin utiliser le programme pour relier les points que vous connaissez (ConnectTheDots ??) et qui suppose je crois un numéro d'ordre (d'où la colonne 'rang')
Hors ligne
#4 Tue 18 December 2007 15:15
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: création de lignes à partir de points
Je n'avais pas compris que vous aviez MapBasic...désolé
Dans ce cas on pourrait utiliser deux variables liste (array), ListeX() et ListeY(), pour stocker respectivement centroidX(obj) et centroidY(obj), puis les utiliser dans Create Pline avec des points définis par ((ListeX(i)+ListeX(i+1))/2, (ListeY(i)+ListeY(i+1))/2)
Voir l'exemple fourni dans Create Region
Hors ligne