Olivier, if you get any problem feel free to mail me
On Mon, Oct 25, 2010 at 10:16 AM, Mahesh <[email protected]> wrote:
> var areaNumber:Number = areaFromLatLngs(*your poly points array here*);
>
>
> private function areaFromLatLngs(polyPoints:Array):Number
> {
> var arr:Array =
> methodConvertFromPolypointsToPoints(polyPoints);
> return area(arr);
> }
> private function
> methodConvertFromPolypointsToPoints(polyPoints:Array):Array
> {
> var latlng1:LatLng = null;
> var p1:Point = null;
> var latlng2:LatLng = null;
> var p2:Point = null;
> var num1:Number = NaN;
> var num2:Number = NaN;
> var arr1:Array = polyPoints.slice(0,polyPoints.length);
> var arr2:Array = [];
> if (arr1[0].lat() != arr1[(arr1.length - 1)].lat() ||
> arr1[0].lng() != arr1[(arr1.length - 1)].lng())
> {
> arr1.push(new LatLng(arr1[0].lat(), arr1[0].lng()));
> }
> arr2.push(new Point(0, 0));
> var count:int = 1;
> while (count < arr1.length)
> {
>
> latlng1 = arr1[count];
> p1 = map.fromLatLngToPoint(latlng1);
> latlng2 = arr1[(count - 1)];
> p2 = map.fromLatLngToPoint(latlng2);
> num1 = Math.atan2(p1.y - p2.y, p1.x - p2.x);
> num2 = latlng1.distanceFrom(latlng2);
> arr2.push(new Point(arr2[(count - 1)].x + Math.cos(num1) *
> num2, arr2[(count - 1)].y + Math.sin(num1) * num2));
> count++;
> }
> return arr2;
> }
> private function area(polyPoints:Array):Number
> {
> var i:int = 0;
> var j:int = 0;
> var area:Number = 0;
> i = 0;
> while(i < polyPoints.length)
> {
>
> j = (i + 1) % polyPoints.length;
> area = area + polyPoints[i].x * polyPoints[j].y;
> area = area - polyPoints[i].y * polyPoints[j].x;
> i++;
> }
> area = area * 0.5;
> return Math.abs(area);
> }
>
>
> you will get number to "*areaNumber*" using above code....
>
> call the areaToMeasureFormat(*areaNumber) *will return area in different
> types of measurement as below
>
> public function areaToMeasureFormat(*areaNumber*:Number):String
> {
> var str:String = null;
> if (*areaNumber*> 1000000)
> {
> str = Number(*areaNumber */ 1000000).toFixed(2)) + " km²
> ";
> }
> str = Number(*areaNumber*) * 3280.8399).toFixed(2)) + " ft /
> ";
> if (Number(*areaNumber* * 10.7639) > 43560)
> {
> str = str + (Number(*areaNumber* * 10.7639 /
> 43560).toFixed(2)) + " acres");
> }
> else
> {
> var yard:Number = Number(*areaNumber* * 10.7639)/3;
> str = str + (yard.toFixed(2) + " yards ");
> }
> return str;
>
> }
>
>
>
> On Fri, Oct 22, 2010 at 4:52 PM, Athlantanis <
> [email protected]> wrote:
>
>> Hello,
>>
>> I tried to calculate the surface of a area with google map.
>> This surface is draw by the user (with polygon class) and can contain a
>> lot of point.
>> I want to calculate the surface of this area but i don't know how i can do
>> that ...
>>
>> I tried to calculate the threhold for the area to have the surface in
>> pixel and after multiply by a scale, but it doesn't work.
>> I don't find function (if it exist) to do that.
>>
>> Is it possible to do that and if it's possible, how can i do ?
>> Thank,
>> Olivier
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google Maps API For Flash" group.
>> To post to this group, send email to
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<google-maps-api-for-flash%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-maps-api-for-flash?hl=en.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"Google Maps API For Flash" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-maps-api-for-flash?hl=en.