J'essaie de trouver un moyen de calculer l'aire d'un polygone en utilisant des coordonnées lat longues dans un site Flex 3. Hong007 sur Google Maps pour le groupe Flash a été assez cool pour afficher la fonction suivante:Calcul de la surface d'un polygone lorsque les points du polygone sont lat Longs: quelle fonction est la plus précise?
private function GetPolygonArea (polygon : Polygon):Number
{
var nVer : int = polygon.getOuterVertexCount();
var sz : Number =0;
var s : Number =0;
var x : Number =0;
var y0 : Number =0;
var y1 : Number =0;
var Maplatlng:LatLng;
if (nVer>=3){
for (var i:int=0; i<nVer; i++){
Maplatlng = polygon.getOuterVertex(i);
x = Maplatlng.lng();
if (i>0){
Maplatlng = polygon.getOuterVertex(i-1);
y0 = Maplatlng.lat();
}
else{
Maplatlng = polygon.getOuterVertex(nVer-1);
y0 = Maplatlng.lat();
};
if (i<(nVer-1)){
Maplatlng = polygon.getOuterVertex(i+1);
y1 = Maplatlng.lat();
}
else{
Maplatlng = polygon.getOuterVertex(0);
y1 = Maplatlng.lat();
};
s = x * (y0-y1);
sz+=s;
};
//경위도시 1도의 m값을 곱한다(대략 면적 환산)
Maplatlng = polygon.getOuterVertex(0);
var Maplatlng1:LatLng = new
com.google.maps.LatLng(Maplatlng.lat()+1, Maplatlng.lng()+1);
var TempDISTANCE:Number =
Maplatlng.distanceFrom(Maplatlng1)/Math.sqrt(2);
return Math.abs((sz/2.0) * Math.pow(TempDISTANCE, 2));
};
return 0.0;
}
je aussi jouer avec la calculatrice de la zone à http://www.freemaptools.com/area-calculator.htm.
Ces fonctions produisent des résultats légèrement différents. J'essaie de savoir lequel est le plus précis. Il semble que la fonction de hong007 produise des résultats en moyenne légèrement supérieurs à la fonction de freemaptools. Cependant, je ne sais pas lequel est le plus précis. Aucun conseil?
Bonjour bshields, Merci pour la réponse très détaillée. Maintenant, je comprends mieux comment cette fonction fonctionne et quelles sont ses faiblesses. Mes polygones sont des quartiers d'une ville de la côte est des États-Unis. En moyenne, les polygones sont de 1-3 kilomètres carrés. Donc, j'espère que les problèmes que vous avez soulignés ne causeront pas de grandes inexactitudes. Malheureusement, la calculatrice de zone ne fournit pas la fonction employée. Donc, je devrais entrer chaque polygone séparément et ce serait une douleur. Pensez-vous que la fonction du hong007 est raisonnablement précise au niveau de la ville? Je vous remercie! – Laxmidi
@Laxmidi Seule la première chose que j'ai mentionnée est liée à la taille du polygone. Le problème le plus important est la méthode de moyennage de l'échelle entre les deux axes.Cela donnera des résultats corrects pour un carré, mais les polygones de forme irrégulière auront une zone incorrecte, les cas les plus défavorables étant ceux qui sont très oblongs et orientés selon l'un des axes. Si vous voulez faire cela correctement, je pense que vous devez projeter ces points sur un système de coordonnées projeté comme UTM et calculer la surface dans cet espace. – bshields