我有几个x,y坐标,我想得到它的面积。我认为最好的做法是将 X,Y 十进制坐标转换为海里,然后做多边形的面积。我已经用谷歌搜索过,但真的没有找到任何对我的问题有帮助的东西。不是在寻找答案,但我只是想知道如何处理这个问题以及可能用于转换的内容。
这些是数组中的坐标:
Lat_Long = [60.8427194, -042.7969500; ...
60.8646972, -042.5323889; ...
60.7640417, -042.5178639; ...
60.5882139, -042.8185056; ...
60.8080111, -042.8507500; ...
60.8069889, -042.8374167; ...
60.8083028, -042.8278361; ...
60.8114056, -042.8186167; ...
60.8152306, -042.8117389; ...
60.8203694, -042.8055667; ...
60.8256528, -042.8013611; ...
60.8315167, -042.7985083; ...
60.8374056, -042.797078; ...
60.8427194, -042.7969500];
如果面积的直径不超过几公里(如果您坚持,则为英里),则
1)用单位米
将坐标转换为x,y空间2)使用简单的公式areaint
对于 1):将以单位度为单位的纬度和经度转换为米,方法是乘以因子
f = 40 000 000 / 360. // or use a more exact value using the WGS84 equitorial radius
(以米为单位的地球围栏,以360度为单位)
所以
x = longitude * f;
y = latitdue * f
将x与cos(averageLatitude)相乘,这消除了纬度和lon的比例尺不同的事实(在赤道上,两度经度之间的距离为aproxx 111km,而在北极为0。
x= x * cos(toRadians(averageLatitude));
结果是以平方米为单位的面积。
平均纬度是该区域所有纬度坐标的平均值