我有一系列Location
/ GeoPoint
个对象,这些对象在我的Android应用中形成了一个多边形。我想知道是否有办法计算它所涵盖的面积。
到目前为止,我正在考虑设置一个Web服务,当发布坐标列表时,使用JS Google Maps API v3来计算区域。但是可能有一种方法可以轻松地使用我本身不知道的Android的一些功能。
提前感谢您的帮助!
答案 0 :(得分:3)
执行此操作的方法发布在以下答案中:
https://stackoverflow.com/a/16210785/891479
这基于以下公式:
http://mathworld.wolfram.com/PolygonArea.html
http://en.wikipedia.org/wiki/Polygon
使用该公式计算plolygon区域的原理:
http://maruzar.blogspot.com/2011/12/irregular-and-regular-polygon-area-by.html
答案 1 :(得分:1)
如果你想自己做,那么在Polygon中解释了计算任何知道corrdinates的polygn区域的方法。
您可以在Irregular Polygons
答案 2 :(得分:0)
万一它可以帮助某人,在这个帖子中有一个非常好的答案: Calculate the area of a polygon drawn on google maps in an Android application
MarianPaździoch的答案:
已经有library。
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));