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

State Of The Map 2024

#1 Wed 29 April 2009 20:21

marie-aude
Participant occasionnel
Date d'inscription: 21 Apr 2009
Messages: 23

relier points geoconcept

Bonjour à tous,

Comment on fait pour relier 2 pts par une droite avec le kit de geoconcept???

Je travaille avec la version 6.5 de geoconcept et je programme en c++.

Merci pour vos futures réponses
++

Hors ligne

 

#2 Thu 30 April 2009 10:02

saispasfau
Participant actif
Date d'inscription: 28 Nov 2006
Messages: 62

Re: relier points geoconcept

Bonjour.

N'étant pas expert en C++, je te donne les grandes lignes à suivre (les fonctions à utiliser) :
1. Créer ton objet dans le type / sous-type linéaire de destination en coordonnées (0;0) :

Code:

XGOOBJECT XgoCreateObject(XGOMAP xgoMapID, UINT wType, UINT wSubType, LONG lX, LONG lY);

2. Créer une nouvelle géométrie de genre linéaire :

Code:

XGOGEOMETRY XgoGeom_Create(XGOGEOMETRYKIND kind);

3. Ajouter tes 2 points à la géométrie créée :
    Comme ta géométrie ne sera composée que d'une seule partie, il faut mettre ulPartIndex0=0

Code:

BOOL XgoGeom_AddPoint(XGOGEOMETRY xgoGeometry, ULONG ulPartIndex0, const LPXGOPOINT3D pXgoPoint3D);

4. Attribuer la géométrie à l'objet :

Code:

BOOL XgoGeom_SetToObject(XGOMAP xgoMapID, XGOGEOMETRY xgoGeometry, XGOOBJECT xgoObject);

Voilà l'algorithme à suivre.
@++

Saispasfau

Hors ligne

 

#3 Thu 30 April 2009 10:07

marie-aude
Participant occasionnel
Date d'inscription: 21 Apr 2009
Messages: 23

Re: relier points geoconcept

Merci Saispasfau,

Je te dirais si "Saisvrai" lol

je vais tester de suite
++

Hors ligne

 

#4 Thu 30 April 2009 11:17

marie-aude
Participant occasionnel
Date d'inscription: 21 Apr 2009
Messages: 23

Re: relier points geoconcept

J'ai testé l'algo que tu m'as donné...
Mais, évidemment, je n'arrive pas à le faire fonctionner.

J'ai déjà un sous type ponctuel défini et des pts qui s'affichent à l'écran. Pour les segments, je dois créer un nouveau type linéaire indépendant ???

En attendant une réponse, je vais faire en sorte de définir un type linéaire et faire l'algo que tu m'as donné mais du coup si ça marche j'aurai un sous type point et un autre linéaire mais qui vont servir tous les deux à représenter une trajectoire.


Merci d'avance
++

Hors ligne

 

#5 Thu 30 April 2009 11:36

saispasfau
Participant actif
Date d'inscription: 28 Nov 2006
Messages: 62

Re: relier points geoconcept

Alors...

Dans GeoConcept, Chaque sous-type a un genre de géométrie unique.
Donc dans ton sous-type où tu as tes points, tu ne peux créer que des objets points.

Pour créer des linéaires, tu dois indiquer un sous-type linéaire.
Tu auras bien au final un sous-type contenant tes points, et un sous-type contenant tes lignes.

A+

Hors ligne

 

#6 Thu 30 April 2009 11:40

marie-aude
Participant occasionnel
Date d'inscription: 21 Apr 2009
Messages: 23

Re: relier points geoconcept

Ok...

Comme je disais dans mon message d'avant c'est ce que je comptais faire.
Par contre, quand on crée un objet il faut mettre des coordonnées. Donc pour créer un point c'est facile mais pour un linéaire... je mets quoi?

Je vais tenter de mettre le point de départ... et ajouter à la géométrie le point d'arrivée...en espérant que ce soit bien ça.

Encore merci pour tes réponses rapides et claires.

à plus tard

Hors ligne

 

#7 Thu 30 April 2009 11:53

saispasfau
Participant actif
Date d'inscription: 28 Nov 2006
Messages: 62

Re: relier points geoconcept

Je n'ai jamais essayé de définir le X et Y, puis d'ajouter un point à la géométrie.

Par contre, dans GeoConcept, les champs X' et Y' correspondent aux coordonnées de la seconde extrémité.
Donc tu peux tenter :
1. créer l'objet en mettant en X et Y les coordonnées du premier point
2. indiquer dans X' et Y' les coordonnées du second point (via la structure XGOBIFIELDS)

Cela t'évite de manipuler directement la géométrie.
Bons tests.

A+

Hors ligne

 

#8 Thu 30 April 2009 17:12

marie-aude
Participant occasionnel
Date d'inscription: 21 Apr 2009
Messages: 23

Re: relier points geoconcept

Je dois avouer que je m'embrouille....je suis perdue

J'ai créé un objet avec Xgo_CreateObjetc(..., mon_point_departX, mon_point_departY)

Ensuite j'ajoutais le pt extrémité en passant par les géométrie... malheureusement je n'arrive pas à faire fonctionner cela. Au mieux ça affiche un point avec pour coordonnées celles que j'entre à la création de l'objet....

J'ai regardé dans l'aide du kit mais je ne vois pas trop comment utiliser XGOBIFIELDS... J'ai cru comprendre que le premier pt entré est celui d'une xtrémité du segment et le 2eme point l'autre extrémité. Mais comment l'appliqur l'objet?

Merci d'avance

MA
++

Hors ligne

 

#9 Thu 30 April 2009 17:51

saispasfau
Participant actif
Date d'inscription: 28 Nov 2006
Messages: 62

Re: relier points geoconcept

Pour utiliser les Builtin Fields, il faut appeler :

Code:

UINT XgoGetBuiltInFields(XGOMAP xgoMapID, XGOOBJECT xgoObject, LPXGOBIFIELDS lpxgoBIFields);

en passant en paramètre ton objet et une structure XGOBIFIELDS.

Puis tu instancies les valeurs de XGOBIFIELDS.biXP et XGOBIFIELDS.biYP avec les coordonnées de ton second point, et ça devrait rouler.

A++

Dernière modification par saispasfau (Thu 30 April 2009 17:52)

Hors ligne

 

#10 Sun 03 May 2009 20:57

marie-aude
Participant occasionnel
Date d'inscription: 21 Apr 2009
Messages: 23

Re: relier points geoconcept

Bonsoir Saispasfau,

J'ai réussi à afficher mon segment comme je le voulais... j'ai utilisé ta première méthode, c'est à dire:
créer un nouveau sous type "ligne" (par exemple) en en ajoutant a ce sous-type une géométrie dans laquelle j'ai mis le point de départ et celui d'arrivée.
Au début je n'y suis pas arrivée parce que j'avais fais une erreur de conversion pour des coordonnées (que je dois envoyer en long mais qui ne le sont pas dans mon code à cause de la précision....).

Si besoin, je mettrais mon code (c++) en ligne pour que ça puisse profiter à d'autres.

Encore merci Saispasfau pour ton aide précieuse.

à plus tard... (surement d'autres questions lol)
MA

Hors ligne

 

Pied de page des forums

Powered by FluxBB