Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到给定坐标的面积?_Javascript_Jquery_Leaflet - Fatal编程技术网

Javascript 如何找到给定坐标的面积?

Javascript 如何找到给定坐标的面积?,javascript,jquery,leaflet,Javascript,Jquery,Leaflet,如何找到给定坐标的面积? 要求: 我在地图上有一个多边形坐标,然后我们要找到多边形的面积,单位是公顷和英亩 坐标以十进制度数表示,区域应以十进制度数表示 我们可以转换公顷和英亩,请告诉我 坐标是 (10.072642780669105,76.3268655538559),(10.078051232146612,76.32986962795258]),(10.073530110959743,76.33390367031097) 代码 arr=[[10.075854059674523,76.328

如何找到给定坐标的面积? 要求: 我在地图上有一个多边形坐标,然后我们要找到多边形的面积,单位是公顷和英亩

坐标以十进制度数表示,区域应以十进制度数表示 我们可以转换公顷和英亩,请告诉我

坐标是

(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总和=0;

对于(var i=0,l=arr.length-1;i它非常复杂,不完全是数学。 如果你想得到真实世界的结果,而不是一些数学理论,你必须注意到地球不是球体——在谷歌上寻找WGS 84

蒙特卡洛算法是一种可以快速实现的算法:

找到多边形的最小边界框(对于小区域,可以将地球处理为平面)

计算矩形S=a*b的MBB面积

在矩形内获取N个随机点

查找多边形内的M=点

多边形的曲面为S*M/N

增加N可以提高精度


您应该很容易找到解决每个步骤的算法(查找从一个地理点到另一个地理点的距离,检查点x/y是否在图中)

多边形区号与其他地理点相比非常好

问题是你有平方度

嗯,对于小块土地来说,地球可以被认为是平坦的,要把平方度转换成公顷、英亩或平方米,你需要知道一个度有多长

在赤道,地球上的一度是地球周长的1/360,即2*Pi*Rearth或~40000km

1度约为40000公里的1/360=每度约111公里

1km等于1000m。1km^2=10^6m^2。但是1hm2=10000m^2,所以1km^2等于100公顷

平方度约为(111^2 km^2)(100公顷/km^2)~=1232100公顷

啊,但我作弊了,这只在赤道附近有效


地球的周长略大于40000公里,而且当你接近极点时,经度也会变短。从极点到极点,纬度N或S始终是地球周长的1/360,但赤道处的经度最宽,随着
cos(纬度)的增加,经度会变窄

理想情况下,您需要一个库来为您进行转换

这实际上取决于你在世界上的位置以及你想要达到的精确程度。请记住,陆地既不是平坦的,也不一定与下面的球体对齐

我所在的公司负责从空中喷洒蕨类植物,并绘制喷洒地点的地图,绘制在精确到一两米的军械测量地图上

在英国,你可能会发现这些很有用,它们详细说明了这些转换的复杂性,我甚至不打算在这里进行总结

军械调查局似乎没有我在他们的网站上学到的旧转换文件,但我在这里找到了一份副本。

这个问题似乎离题了,因为它是关于数学的,它取决于球体的半径。如果有JavaScript库,可能不会离题?如果这是用户想要的,应该在问题中指出。@Paul半径似乎是地球半径(大约6.370.000米)这个问题似乎离题了,因为它是关于GIS的。在GIS.stackexchange.com.Erm上提问,你是否打算在某个点上给出M的公式?并描述如何将球坐标转换为平面多边形?在谷歌中,我们可以识别:computed_acres=(google.maps.geometry.sphereal.computeArea(points_array)/(1000*1000)*这将在传单中使用,请帮助我。。。。
    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));