我有一系列Location
/GeoPoint
对象在我的 Android 应用程序中形成一个多边形。我想知道是否有任何方法可以计算它所覆盖的面积。
到目前为止,我正在考虑建立一个网络服务,当发布坐标列表时,它使用 JS Google Maps API v3 来计算面积。但是可能有一种方法可以很容易地使用我不知道的 Android 的某些功能来实现这一点。
在此先感谢您的帮助!
我有一系列Location
/GeoPoint
对象在我的 Android 应用程序中形成一个多边形。我想知道是否有任何方法可以计算它所覆盖的面积。
到目前为止,我正在考虑建立一个网络服务,当发布坐标列表时,它使用 JS Google Maps API v3 来计算面积。但是可能有一种方法可以很容易地使用我不知道的 Android 的某些功能来实现这一点。
在此先感谢您的帮助!
执行此操作的方法发布在以下答案中:
https://stackoverflow.com/a/16210785/891479
这是基于以下公式:
http://mathworld.wolfram.com/PolygonArea.html
http://en.wikipedia.org/wiki/Polygon
使用此公式计算多边形面积的原理:
http://maruzar.blogspot.com/2011/12/irregular-and-regular-polygon-area-by.html
如果你想自己做,在Polygon中解释了计算任何已知坐标的多边形面积的方法。
您可以在主题下的如何计算多边形的面积中找到更全面的解释Irregular Polygons
以防万一它对某人有所帮助,这个线程中有一个很好的答案: Calculate the area of a polygon on google maps in an Android application
Marian Paździoch 的回答:
已经有一个图书馆。
import com.google.maps.android.SphericalUtil; //... List<LatLng> latLngs = new ArrayList<>(); latLngs.add(new LatLng(51.893728, -8.491865)); latLngs.add(new LatLng(51.893550, -8.492479)); latLngs.add(new LatLng(51.893216, -8.492224)); latLngs.add(new LatLng(51.893404, -8.491598)); Log.i(TAG, "computeArea " + SphericalUtil.computeArea(latLngs));