Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Wed 09 October 2002 08:23

Gerard Guillaume
Invité

Polylines vers points

Bonjour a tous,

Je cherche a creer des points a chaque nœud d'une polyligne.
Il y a bien sous MapBasic update TABLE set obj= createpoint(centroidx(obj),centroidy(obj)) , mais je n'obtiens qu'un point a l'emplacement de chaque centroid.

N'y a-t-il pas une commande voisine qui s'acquitterait plus volontiers de ce travail ?

D'avance merci.

 

#2 Wed 09 October 2002 21:00

Coubes, Sophie
Invité

Re: Polylines vers points

Bonjour!

Pour trouver les coordonnees des noeuds d'une polyligne il faut utiliser les fonctions :
ObjectNodeX( object , polygon_num , node_num ) et ObjectNodeY( object , polygon_num , node_num )
object is an Object expression
polygon_num is a positive Integer value indicating which polygon or section to query It is ignored for Multipoint objects (it used for regions and polylines).
node_num is a positive Integer value indicating which node to read

pour trouver le nombre de noeuds : ObjectInfo( object ,OBJ_INFO_NPNTS)
object is an Object expression

J'espere que cela peut t'aider.

 

#3 Wed 09 October 2002 21:00

Sebastien Roddier
Invité

Re: Polylines vers points

Ou comment automatiser mapinfi quand on a pas mapbasic.....

Voici une astuce pour faire ce que vous desirez meme sans avoir mapbasic. Il vous suffit d'avoir excel, word ou autre logiciel office dote de VBA.

Ouvrez Mapinfo (obligatoire dans ce cas, sinon plantage assure)
Ouvrez l'un de ces logiciels (moi j'ai pris excel)
Appuyez sur atl + F11
L'editeur visual basic s'ouvre
Dans la fenetre de gauche (vbaproject(classeur1.xls)) :Click Droit > Insertion > Module
Dans la fenetre module tapez le code source suivant en changeant le nom de la table ELEC400 par le nom de votre table:

Sub pline2points()

Dim mi As Object

Dim newx, newy As Double
Dim j As Integer

Set mi = GetObject(, mapinfo.Application )
mi.do open table  C:tempelec400.tab  map from elec400
mi.do set map layer 0 editable on
mi.do set coordsys table elec400

For j = 1 To mi.eval( tableinfo(elec400,8) )

mi.do Fetch rec  & j &  from elec400
For i = 1 To mi.eval( ObjectInfo( elec400.obj , 20) )
newx = mi.eval( ObjectNodeX( elec400.obj , 1 ,  & i & ) )
newy = mi.eval( ObjectNodey( elec400.obj , 1 ,  & i &  ) )
mi.do Create Point Into Window frontwindow() (  & newx & , & newy & )
Next
Next
End Sub

Une fois copiez, vous pouvez enregister votre macro sous forme d'un classeur excel banal
Pour executer votre programme, dans Visual basic appuyez sur la touche F5.

ATTENTION : ce programme ne marche que si votre table contient uniquement des polylignes

Vous pouvez basculer dans MI pendant l'ececution et voir ce qui se passe, le spoints sont crees dans une couche dessin qu'il vous suffira de sauvegarder.

 

#4 Wed 09 October 2002 21:02

Djouin
Invité

Re: Polylines vers points

De: Denis Jouin
L'outil ALL2PTS-85.MBX que vous trouverez sur le site http://www.directionsmag.com/tools/ dans la categorie utilities devrait resoudre votre probleme.

Cordialement

Denis Jouin

 

#5 Mon 14 October 2002 15:51

Jacky Guyot
Invité

Re: Polylines vers points

Bonjour,

J'ai un fichier d'arpentage constitue d'une serie de points.
Existe t il une astuce ou une fonction qui me permettrait de relier
automatiquement ces points pour creer une polyligne ou mieux un polygone?

Merci

 

#6 Mon 14 October 2002 15:51

Sebastien Roddier
Invité

Re: Polylines vers points

Bonjour

Si vous connaissez l'ordre des points sur la ligne je vous suggere d'ecrire dans un fichier texte un fichier d'import export mapinfo MIF qui a la structure suivante

Version 300
Charset WindowsLatin1
Delimiter ,

CoordSys Earth Projection 3, 9999, 6, -168, -60, 320, 0, 0, 0, 0, 0, m ,
2.337229104484, 46.8, 45.90287723937, 47.69712276063, 600000, 2200000 Bounds
(-113976741.175, -106377291.405) (115176741.175, 122776190.945)
Columns 2
ID
ID_#
Data

Pline 3
x1 y1
x2 y2
x3 y3

Pline 2
x5 y 5
x6 y6

et un fichier MID (qui porte le m^me nom mais qui contient les donnees attributaires)

1,2
9,7

Puis une fois ces 2 fichiers creees importez les dans MapInfo (table / importer)

Pour creer ces fichiers aidez vous des fonctions d'excel pour concatener des chaines de caracteres.

A bientot

 

Pied de page des forums

Powered by FluxBB