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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 02 May 2005 13:49

Laurent Cazals
Invité

surface nette - surface totale

De: laurent
bonjour a tous. j'ai besoin de calculer la surface de polygones avec ArcMap. mais certains polygones sont troues et je n'arrive pas a obtenir la surface totale (polygone + trou). autrement dit,  je n'arrive a calculer que la surface nette, ce qui ne me suffit pas. qui peut m'aider ?? merci

 

#2 Tue 10 May 2005 12:02

Gaëtan LAVENU
Invité

Re: surface nette - surface totale

Bonjour,

On peut obtenir la  surface nette  d'un polygone avec la formule suivante :
(a mettre dans la calculatrice avec l'option  avance )

Dim pArea as IArea
Set pArea = [Shape]
Dim pSurf as Double
pSurf = pArea.area

(Mettre pSurf comme valeur de votre champ)

On peut obtenir la   surface totale  (polygone + superficie des trous) avec
la formule suivante :
(a mettre dans la calculatrice avec l'option  avance )

Dim pArea as IArea
Set pArea = [Shape]
Dim pGeoColl as IGeometryCollection
Set pGeoColl = [Shape]
Dim pRing as IRing
Dim i as Integer
Dim SurfTrou as Double
SurfTrou=0
For i =0 to pGeoColl.GeometryCount-1
Set pRing = pGeoColl.Geometry(i)
Dim pSourceObj as IClone
Dim pDestObj as IClone
Set pSourceObj = pRing
Set pDestObj = pSourceObj .Clone
Set pRing = pDestObj
If pRing.IsExterior = False then
pRing.ReverseOrientation
Dim pAreaTrou as IArea
Set pAreaTrou = pRing
SurfTrou=SurfTrou + pAreaTrou.area
End if
Next i
Dim pSurf as Double
pSurf = pArea.area + SurfTrou

(Mettre pSurf comme valeur de votre champ)

En esperant que cela vous aide...

Cordialement,

Gaetan LAVENU

 

Pied de page des forums

Powered by FluxBB