#1 Thu 04 November 2010 10:38
- apedemay001
- Participant occasionnel
- Date d'inscription: 22 Oct 2009
- Messages: 17
ArcView 9.2 - Coordonnées Y centroïde
Bonjour
Je dispose d'une couche de polygones dont je souhaite obtenir les coordonnées (X;Y). Je crée donc mes champs en réel double (10 et 4 pour la longueur et les décimales) et tente de les renseigner: pour les X cela marche parfaitement, mais pour les Y les données sont erronées (il manque les décimales, le reste a l'air correct).
Je travaille sur ArcView 9.2.
J'ai testé le calcul des X dans le champ Y (pour vérifier la validité du champ) cela fonctionne.
J'ai testé la fonction entités vers centroïdes dans X.tools : message d'erreur.
J'ai essayé de rentrer la formule suivante dans la boîte de dialogue sous Arc.Info (c'est la formule de l'aide...) :
Code:
Dim Output As Double Dim pArea As IArea Set pArea = [Shape] Output = pArea.Centroid.X
Encore une fois cela marche très bien pour les X et lorsque je remplace "X" par "Y" dans la formule : nouveau message d'erreur...
Merci d'avance pour vos conseils.
Cordialement.
Hors ligne
#2 Thu 04 November 2010 15:57
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: ArcView 9.2 - Coordonnées Y centroïde
Salut,
Dans la calculette Esri mettre ceci:
Code:
Dim pArea as IArea Dim pPoint as IPoint Dim dblY as Double Set pArea = [Shape] Set pPoint = pArea.Centroid dblY = pPoint.Y
Dans le champs en dessous intitulé --> Ton_Champs= mettre ---> dblY
Pour plus d'explications --> http://support.esrifrance.fr/index.asp? … tries.html
A+
Joël
Hors ligne
#3 Fri 05 November 2010 13:18
- apedemay001
- Participant occasionnel
- Date d'inscription: 22 Oct 2009
- Messages: 17
Re: ArcView 9.2 - Coordonnées Y centroïde
Ca marche!!! Merci Joël!
Pour info on m'a refilé un autre code qui fonctionne aussi
Code:
Dim pMxDoc As IMxDocument Dim pGeometry As IGeometry Dim pMap As IMap Dim pArea As IArea Dim pCenter As IPoint Dim dYCenter As Double Set pMxDoc = ThisDocument Set pMap = pMxDoc.FocusMap If (Not IsNull([Shape])) Then Set pGeometry = [Shape] If (Not pGeometry.IsEmpty) Then pGeometry.Project pMap.SpatialReference Set pArea = pGeometry Set pCenter = pArea.Centroid dYCenter = pCenter.Y End If End If
Il est plus long mais certaines lignes sont communes, quelles sont les différences?
Remarque: J'ai du re-créer mon champ (à l'identique) pour ne plus avoir le message d'erreur, bizarre... une explication?
Dernière modification par apedemay001 (Fri 05 November 2010 13:19)
Hors ligne
#4 Fri 05 November 2010 13:34
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: ArcView 9.2 - Coordonnées Y centroïde
Salut,
Que veux tu dire par là :
Remarque: J'ai du re-créer mon champ (à l'identique) pour ne plus avoir le message d'erreur, bizarre... une explication?
Pour les différences --> je vois deux tests pour voir si le shape rentré contient bien des entités et si le shape rentré existe bel et bien.
Ensuite je suppose qu'il y à voir avec les références spatiales ainsi que le focus de la carte
Le code me parait plus complet mais je ne suis pas non plus un expert en Vbscript.
A+
Joël
Hors ligne
#5 Fri 05 November 2010 16:40
- apedemay001
- Participant occasionnel
- Date d'inscription: 22 Oct 2009
- Messages: 17
Re: ArcView 9.2 - Coordonnées Y centroïde
Eh bien en fait lorsque je rentrais les formules (l'une ou l'autre) dans la calculete, j'obtenais un message d'erreur du genre 'erreur du script VBA user interrupt'.
Ayant déjà eu des bizareries simmilaires j'ai supprimé le champ en question, je l'ai re-crée avec les même caractéristiques et 'oh miracle ça marche...' Est-il possible que le champ ait été "vérolé" à cause d'un script inadéquat?
Sinon connais tu des tutoriaux abordables en ligne pour commencer a comprendre comment marche le VBA?
Bonne soirée.
Aurélien.
Hors ligne
#6 Sun 07 November 2010 16:40
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Re: ArcView 9.2 - Coordonnées Y centroïde
je fais toujours le mm code mais ça marche bien:
Code:
dans le prologic vb dim output as double dim parea as iarea set parea=[shape] output = parea.centroid.X
et dans la partie en bas
le nom du champ
= output
pour le champ latitude du remplace X par Y
pour les deux champ se sont tous des des champs double (uniquement)
Mame
Hors ligne
#7 Tue 23 November 2010 10:55
- Vans91
- Juste Inscrit !
- Date d'inscription: 21 Jul 2007
- Messages: 6
Re: ArcView 9.2 - Coordonnées Y centroïde
Bonjour,
J'ai un problème similaire pour calculer les coordonnées x et y de polyligne sous arcinfo.
1-J'ai essayé avec le calcul de géométrie directement sur la couche, mais les résultats que me donne le logiciel sont arrondis et lorsque je crée la couche de point de debut et de fin de lignes, les points se situent parfois à 500m de l'extrémité de ma polyligne.
-2 dans un second temps, j'ai voulu utiliser les outils esrifrance de calcul et etwizard par le calcul de valeurs. Mais j'obtiens un message d'erreur du même type que apedemay001 et même en recréant le champ, j'obtiens tjs le même message.
Pour ma colonne, j'ai choisi un réel double avec 4 décimales.
Mon but final est de calculer les altitudes au debut et à la fin de chaque polyligne (cours d'eau) puis de calculer la pente et les bassins versants.
Si quelqu'un a rencontré les mêmes problèmes que moi et a trouvé une réponse, je suis preneuse.
Merci
Vanessa Demougin
Hors ligne