#1 Fri 08 November 2013 11:18
- Frago
- Participant actif
- Date d'inscription: 5 Oct 2011
- Messages: 53
[FMB] création de points
Bonjour,
Je souhaiterais automatiser la création de points sur une quarantaine de tables (X;Y;Z).
Pour cela avec la fenêtre MapBasic :
- j'importe mon fichier .TXT
- j'enregistre le .TAB (attirbutaire uniquement)
Ensuite, je souhaite créer mes points.
Pour cela, j'ai testé deux solutions :
Code:
Set CoordSys Table ma_table Update ma_table Set obj = CreatePoint(CentroidX(obj), CentroidY(obj)) Update ma_table Set obj = createpoint(_COL1, _COL2)
Ne semble pas fonctionner car les objets ponctuels n'existent pas encore...
Code:
Create Map For _ma_table CoordSys Earth Projection 3, 1002, "m", 0, 46.8, 45.8989188889, 47.69601444, 600000, 200000 Bounds (-42173, -517074) (1266604, 785681)
Avec ce code, après enregistrement du .TAB, j'ai un fichier .MAP qui semble remplit mais pas de point sur ma carte. A l'export e, MIF/MID, le MIF est remplit de "none".
Auriez-vous une solution pour créer ces points au format TAB automatiquement ?
Merci,
Hors ligne
#2 Fri 08 November 2013 11:43
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [FMB] création de points
Salut,
Code:
Set CoordSys Table ma_table Update ma_table Set obj = createpoint(_COL1, _COL2)
Pourquoi ceci --> "Update ma_table Set obj = CreatePoint(CentroidX(obj), CentroidY(obj))"
Cette ligne te permets de créer des points sur les centroïdes de polygones (par exemple).
_COL1, _COL2 représentent bien tes champs X, Y de ta table (Latitude, Longitude par exemple)?
Pour automatiser sur tes quarante tables fait une recherche sur le forum avec "scriptgen" ou "générateur de scripts" comme mots clef.
Voilà un sujet --> http://georezo.net/forum/viewtopic.php? … l=casernes
Un autre sujet (récent) avec des images c'est mieux --> http://www.forumsig.org/showthread.php/ … couleur%29
En espérant orienter tes recherches
A+
Joël
Dernière modification par Spacejo (Fri 08 November 2013 13:39)
Hors ligne
#3 Fri 08 November 2013 16:01
- Frago
- Participant actif
- Date d'inscription: 5 Oct 2011
- Messages: 53
Re: [FMB] création de points
Oui, _COL1 et _COL2 correspondent à mes X;Y
Code:
Set CoordSys Table ma_table
j'ai le message : impossible de réaliser cette opération sur la table
Code:
Update ma_table Set obj = createpoint(_COL1, _COL2)
le champ obj n'existe pas dans la table
Hors ligne
#4 Fri 08 November 2013 16:14
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [FMB] création de points
As tu affecté une projection à ta table?
Car la ligne -> Set CoordSys Table ma_table
force la FMB à prendre en compte la projection de ta table si elle n'a pas de projection -> erreur
le champ obj n'existe pas dans la table
Oui ce champ est invisible si tu ouvres le .tab
Hors ligne
#5 Tue 12 November 2013 09:00
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: [FMB] création de points
Bonjour,
Avant de créer les points, il faut transformer la table créée à l'ouverture du fichier txt en table "géographique" (car le tab créé ainsi n'est qu'une table attributaire et non modifiable).
Donc faire d'abord le code
Code:
Create Map For ma_table CoordSys ...
puis le code pour la créations de points :
Code:
Update ma_table Set obj = createpoint(_COL1, _COL2)
Nicolas.
PS: attention, dans vos codes, vous intitulez votre table "_ma_table" et "ma_table" : pour Mapinfo, ce sera 2 tables différentes.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#6 Tue 12 November 2013 17:08
- Frago
- Participant actif
- Date d'inscription: 5 Oct 2011
- Messages: 53
Re: [FMB] création de points
Merci ! j'y vois plus clair dans ces codes, ça focntionne...
Hors ligne