如何找到给定坐标的区域? 要求: 我在地图上有一个多边形坐标,然后我们想找到以公顷和英亩为单位的多边形面积
坐标为十进制度数区域应为十进制度数 我们可以转换公顷和英亩,好好重播我
坐标是
(10.072642780669105,76.3268655538559),(10.078051232146612,76.32986962795258]),(10.073530110959743,76.33390367031097)
代码
arr=[ [10.075854059674523, 76.32832467556],
[10.079825860518895, 76.33338868618011],
[10.076234340596953, 76.33806645870209],
[10.07065684212598, 76.33806645870209],
[10.068924417668397, 76.33175790309906] ];
var sum=0;
for(var i=0,l=arr.length-1;i<l;i++){ sum+=(arr[i][0]*arr[i+1][1]-arr[i+1][0]*arr[i][1]); }
alert('The Area of Ploygon is:'+(sum/2));
答案 0 :(得分:1)
这很复杂,并不完全是数学。 如果你想得到现实世界的结果而不是一些数学理论,你必须注意到地球不是球体 - 在Google中寻找WGS 84。
可以非常快速地实施的算法之一是Montecarlo:
找到多边形的最小边界框(对于可以处理地球平坦表面的小区域)
计算MBB的面积,矩形S = a * b
在矩形内获取N个随机点
找到M =多边形内的点
多边形的曲面是S * M / N
增加N可以提高准确度。
您应该很容易找到解析每个步骤的算法(找到从一个地理点到另一个地理点的距离,检查点x / y是否在图中)
答案 1 :(得分:0)
多边形区域代码与another math site where the problem is explained under 2-D polygons相比有利。
问题是你有平方度。
嗯,对于小片土地,地球可以被认为是平坦的,要将平方度转换为公顷或英亩或平方米,您需要知道学位的长度。
在赤道上,地球上的一个度数是地球周长的1/360,即2 * Pi * Rearth或~40000km。
1度约为40000 km的1/360 =每度约111 km。
1km是1000m。 1平方公里^ 2 = 10 ^ 6平方公尺。但1公顷= 10000平方公尺,所以1平方公里是100公顷。
平方度约为(111 ^ 2 km ^ 2)(100公顷/平方公尺)〜= 1232100公顷
啊,但我作弊,这只能在赤道附近工作。
地球比40000公里左右更胖,当你靠近极点时,经度变得更短。纬度N或S始终是地球从极到极的1/360度,但经度在赤道处最宽,变得更窄cos(latitude)
。
答案 2 :(得分:0)
理想情况下,您需要一个库来为您进行转换。
这实际上取决于你在世界上的位置以及你想要的精确程度。请记住,土地既不是平坦的,也不一定与下面的球体对齐。
我工作的公司从空中喷洒蕨菜,并制作喷涂发生地点的地图,绘制在军械测量地图上,精确到一米或两米。
在英国,你可能会发现这些有用,它们详细说明了这些转换的复杂性,我甚至不打算在这里总结一下。
http://www.ordnancesurvey.co.uk/docs/support/guide-coordinate-systems-great-britain.pdf
看来,军械测量局没有我在他们网站上学到的旧转换文件,但我在这里找到了一份副本。 http://www.fgg.uni-lj.si/~/mkuhar/Zalozba/TM_projection.pdf