#1 Thu 21 April 2005 14:51
- Hakim CHERIGUI
- Invité
[Mapbasic] Extraction des coordonnees de polylignes
Bonjour a tous,
J’ai une table contenant des polylignes et j’aimerai extraire leurs
coordonnees X1, Y1 et X2, Y2.
Existe-t-il une fonction dans mapinfo ou mabasic qui permet de le faire s’il
vous plait ?
D’avance merci.
Hakim CHERIGUI.
#2 Thu 21 April 2005 15:48
- Jacques Paris
- Invité
Re: [Mapbasic] Extraction des coordonnees de polylignes
Une polyligne est definie par un ensemble de points >2 sinon c’est une
ligne. De quels points 1, 2 s‘agit-il ? Est-ce que les polylignes n’ont qu’
une seule section dans tous les cas ?
Objectgeography() permet d’obtenir les coordonnees des extremites d’une
ligne avec OBJ_GEO_LINEBEGX, OBJ_GEO_LINEBEGY, OBJ_GEO_LINEENDX,
OBJ_GEO_LINEENDY. Pour des polylignes, il faut avoir recours aux fonctions
ObjectNodeX et ObjectNodeY en connaissant le nombre de sections
(ObjectInfo() avec OBJ_INFO_NPOLYGONS) et le nombre de nœuds dans chaque
section (id. avec OBJ_INFO_NPOLYGONS+N).
S’il n’y a qu’une seule section, on peut alors se servir de OBJ_INFO_NPNTS
et dans ce cas la si votre point 1 est le debut de la polyligne
ObjectNode?(objet,1,1) et 2 la fin
ObjectNode?(objet,1,objectinfo(objet,OBJ_INFO_NPNTS))
Jacques Paris
e-mail jacques@ paris-pc-gis.com
MapBasic-MapInfo support http://www.paris-pc-gis.com
#3 Thu 21 April 2005 17:07
- Hakim CHERIGUI
- Invité
Re: [Mapbasic] Extraction des coordonnees de polylignes
Bonjour,
Tout d’abord merci pour vos reponses.
Pour repondre a vos question les point 1 et 2 sont les extremite de la
polyligne (depart et arrive).
Apres avoir effectue la requete a partir du tutorial de B. Dorner (voir ci
apres), il y a des enregistrements qui restent blanc au niveau des points
finaux.
Est-ce que le 20 de « ObjectInfo(Obj,20 » est un standart ou est une
variable ?
Select Id, ObjectNodeX(Obj,1,1), ObjectNodeY(Obj,1,1),
ObjectInfo(Obj,20),ObjectNodeX(Obj,1,ObjectInfo(Obj,20)),
ObjectNodeY(Obj,1,ObjectInfo(Obj,20)) from ligne into selection
Merci d’avance.
H cherigui.
#4 Thu 21 April 2005 17:07
- Bertrand Dorner
- Invité
Re: [Mapbasic] Extraction des coordonnees de polylignes
Rebonjour,
Apres avoir effectue la requete a partir du tutorial de B. Dorner (voir ci
apres), il y a des enregistrements qui restent blanc au niveau des points
finaux.
J'ai moi-meme ete confronte a ces enregistrements blancs, et voici
comment :
une base access a ete creee pour la gestion de digues interessant la
securite publique.
la table graphique des digues a ete enregistree directement au format
access 97 (probleme du nombre limite d'installations possibles d'access
2000)
A un moment, un enregistrement a du etre present dans la partie
attributaire, sans avoir ete saisi sous MapInfo (l'ideal, dans cette
architecture, etant de creer et supprimer depuis MapInfo).
Mes essais portent sur des donnees reenregistrees au format MapInfo
natif, histoire de s'affranchir des difficultes de communication avec
access, et parce que ces donnees extraites du fichier graphique
n'avaient pas vocation a etre recuperees sous access.
Du coup, la table MapInfo comprend un enregistrement non graphique.
En esperant vous avoir eclairci...
--
Bertrand DORNER
administrateur SIG
DDAF du Haut-Rhin
Service Informatique
Cite Administrative Batiment K
68026 COLMAR cedex
Tel : 03.89.24.86.37
Fax : 03.89.24.82.80
#5 Mon 25 April 2005 13:50
- Hakim CHERIGUI
- Invité
Re: [Mapbasic] Extraction des coordonnees de polylignes
Bonjour a tous et merci pour les reponses.
Je n’ai pas trouve dans l’aide de MI les caracteristiques de la fonction
ObjectInfo, est-il possible de trouver ces dernieres.
Si 20 correspond a OBJ_INFO_NPTS. A quoi correspond OBJ_INFO_NPOLYGONS ?
Merci d’avance.
Hakim CHERIGUI
Charge d'etudes
#6 Mon 25 April 2005 17:54
- Hakim CHERIGUI
- Invité
Re: [Mapbasic] Extraction des coordonnees de polylignes
Re bonjour,
Voici le texte que j’ai utilise (comme me l’a conseille J. PARIS) afin
d’extraire les coordonnees de debut et de fin de polylignes composees de
plusieurs sections.
Ce mbx fonctionne bien mais renvoi des coordonnees en longitude/latitude
alors que ma table est en Lambert II. J’ai donc demander a MI et a MB de
mettre a jour une colonne avec objectnodeX(obj,1,1). MI renvoi des
coordonnees en lambert II et MB en longitude/latitude.
Est-ce normal ? Y a-t-il une ligne a ajouter dans le programme mb pour
choisir le systeme de coordonnee ?
Merci d’avance pour vos reponses
Hakim.
_____
De : Jacques Paris [jacques@] paris-pc-gis.com
Envoye : lundi 25 avril 2005 15:00
À : Hakim Cherigui - Atmo NPdC -
Objet : RE: [mapinfo_fr] Extraction des coordonnees de polylignesCode:
Dim o as object Dim ns as smallint Dim i as smallint Dim np as integer Dim j as integer O=selection.obj “ou toute autre facon de saisir l’objet Ns=objectinfo(o,21) ‘nombre de sections dans l’objet For i=1 to ns Np=objectinfo(o,21+i) ‘nombre de nœuds dans la section i For j=1 to np X=objectnodeX(o,ns,j) Y=objectnodeY(o,ns,j) ‘faire ce que l’on doit avec X et Y, coordonnees du nœud j dans la section i Next nextJacques Paris
e-mail jacques@ paris-pc-gis.com
MapBasic-MapInfo support http://www.paris-pc-gis.com
#7 Mon 25 April 2005 17:55
- Hakim Cherigui - Atmo NPdC -
- Invité
Re: [Mapbasic] Extraction des coordonnees de polylignes
Bonjour a tous,
Est-il possible d’extraire les coordonnees d’une polylignes lorsque celle-ci
est composees de plusieurs sections ?
Merci d’avance pour vos reponses.
Cordialement,
Hakim Cherigui.
De : Jacques Paris [jacques@] paris-pc-gis.com
Envoye : jeudi 21 avril 2005 18:08
À : Hakim CHERIGUI
Objet : RE: [mapinfo_fr] Extraction des coordonnees de polylignes
ObjectInfo(Obj,20) est une fonction avec deux arguments obj represente
l’objet analyse, 20 la caracteristique de l’objet. 20 = OBJ_INFO_NPNTS c’est
a dire le nombre total de nœuds dans l’objet.
Une telle selection ne choisira que les objets qui peuvent etre questionnes
avec l’argument 20, c’est a dire les polylignes et les regions seulement.
Tout autre enregistrement sera ignore. Verifiez si les objets correspondant
a ces enregistrements existent bien et quelle en est la nature
Jacques Paris
#8 Tue 26 April 2005 12:19
- Francois Biju-Duval
- Invité
Re: [Mapbasic] Extraction des coordonnees de polylignes
Y a-t-il une ligne a ajouter dans le programme mb pour
choisir le systeme de coordonnee ?
Pour avoir les coordonnees en Lambert II etendu (Cf. MapInfo.prj dans le
repertoire d'install. de MapInfo), rajouter en debut de projet MapBasic :
Code:
Set CoordSys Earth Projection 3, 1002, m , 0, 46.8, 45.898918964419, 47.696014502038, 600000, 2200000
P.S : OBJ_INFO_NPOLYGONS correspond au chiffre 21
#9 Mon 29 August 2011 14:41
Re: [Mapbasic] Extraction des coordonnees de polylignes
Petite amélioration de la formule citée plus haut :
Code:
Select NOM_SECT_MG,ObjectNodeX(Obj,1,1) "X1", ObjectNodeY(Obj,1,1) "Y1",ObjectNodeX(Obj,1,ObjectInfo( Obj,20)) "X2",ObjectNodeY(Obj,1,ObjectInfo(Obj,20)) "Y2" from BIEF_L93 into Extremites
J'ai rajouté des noms de colonnes plus explicites.
Hors ligne