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

GEODATA DAYS 2024

#1 Wed 13 April 2005 19:57

Bertrand Dorner
Invité

Recuperer des boites englobantes de polylignes

Bonjour,

la DDAF 68, dans ses competences en rapport avec les risques inondation,
est amenee a remplir une base consacree aux digues creee par le Cemagref
d'Aix en Provence. Cet organisme a cree cette base en prenant en compte
le seul systeme de coordonnees du Lambert zone 3.

Ceci n'est pas un probleme en soi, puisqu'il est possible d'enregister
une copie de notre table des digues dans ce systeme Lambert 3. Par
contre, le site exige une saisie des extremites amont et aval des
digues, donc des sommets (X1;Y1) et (X2;Y2).

Existe-t-il un moyen, fonctionnant avec MI7.0, de recuperer ces
coordonnees, sachant que coordinate extractor ne recupere que les
coordonnees des centroides. Sinon, il faut lire et copier les
coordonnees des sommets des digues, une a une.

Merci d'avance.
--
Bertrand DORNER
administrateur SIG
DDAF du Haut-Rhin

 

#2 Thu 14 April 2005 09:00

Francois Biju-Duval
Invité

Re: Recuperer des boites englobantes de polylignes

Bonjour.

Si vous avez des digues a segment unique chacune, vous pouvez utiliser
ObjectGeography en colonnes dans Selection SQL.
Sinon il vous faut passer par MapBasic. Voici un exemple :

pour creer une table de points des extremites de chaque voie :

Dim W_Numero as String
Dim W_X1 as Float
Dim W_Y1 as Float
Dim W_Xn as Float
Dim W_Yn as Float

Fetch First from Voie
Do until EOT(Voie)
W_Numero = Voie.Numero
' nombre de segments de la voie
For I = 1 to ObjectInfo(Voie.obj,OBJ_INFO_NPOLYGONS)
' nombre de noeuds du segment
For J = 1 to ObjectInfo(Voie.obj,OBJ_INFO_NPOLYGONS+I)
' 1ere extremite dans le sens de numerisation de la voie
If I = 1 and J = 1 then
W_X1 = ObjectNodeX(Voie.Obj,I,J)
W_Y1 = ObjectNodeY(Voie.Obj,I,J)
End if
' derniere extremite dans le sens de numerisation de la voie
If I = ObjectInfo(Voie.obj,OBJ_INFO_NPOLYGONS) and J =
ObjectInfo(Voie.obj,OBJ_INFO_NPOLYGONS+I) then
W_Xn = ObjectNodeX(Voie.Obj,I,J)
W_Yn = ObjectNodeY(Voie.Obj,I,J)
End if
Next
Next
'
Insert into Extremites (Numero,Obj)
Values (W_Numero,CreatePoint(W_X1,W_Y1))
Insert into Extremites (Numero,Obj)
Values (W_Numero,CreatePoint(W_Xn,W_Yn))
Fetch Next from Voie
Loop

 

Pied de page des forums

Powered by FluxBB