测量android中不规则多边形的面积

我正在开发一个应用程序,在该应用程序中,我在地图和地图上绘制了多边形,我使用的不是Google,它的Mapsforge开放源代码离线地图库。通过将地理点转换为像素点,可以轻松地在地图上绘制多边形。但是,此处我想发现是不规则的多边形,为此,我做了很多尝试,但它让我不成功..我已经尝试用基本数学计算面积,但它不工作在这种情况下,情况下pixcel是改变accodingly而改变缩放级别。 这里是数学逻辑:数学计算

 for(int miAreainc = 0;miAreainc  < x.length-1; miAreainc++)
                 {
                     sumX += x[miAreainc] * y[miAreainc + 1];
                     sumY += y[miAreainc] * x[miAreainc + 1];
                 }
                 int unit = ((sumX - (sumY)) / 2);
                 AppLog.showLogE(TAG,"UNIT >> " + unit);

我发现功能停留在从地理位置阵列获取区域的服务器端,但在这里我想让它离线。 我已经尝试过,但没有得到任何线索或结果..请帮我解决这个问题..谢谢


注意 :我真的不知道我的答案是多么愚蠢。 所以请让我知道,如果它没有意义,我会删除它。

由于地图不在笛卡尔坐标系中,因此您的计算结果不会产生准确的结果。 球面三角形需要球面多边形,这不是微不足道的。

在地球表面任意多边形围成的计算区域有一个很好的讨论。 看一看。

但除了所有这些之外,我在mapsforge中找到了Projection.java ,它有一种方法可以在特定缩放级别从GeoPoint中查找世界地图上的绝对像素坐标:

将给定的{@link GeoPoint}转换为世界地图上的绝对像素坐标。

Point toPoint(GeoPoint in, Point out, byte zoomLevel);

我并不是很懂行,但我认为它会给你投影地图上GeoPoint的绝对坐标,所以你可以使用笛卡儿计算。


对于面积计算,您需要将Lat,lon转换为单位米的笛卡尔坐标。 (非像素)研究变换模式

链接地址: http://www.djcxy.com/p/71597.html

上一篇: measure area of irregular polygon in android

下一篇: xmlhttpRequest is not defined