球面坐标的面积计算

     经过android gps采集的坐标为球面坐标,若是此种坐标造成的ploygon直接进行面积的计算是不可行的,计算出来的面积为负数。因而须要将球面坐标转换成平面坐标在进行计算方可。java

public static double getArea(List<Point> list, MapView mapView) {
        DecimalFormat dfAreaR = new DecimalFormat("0.00");
		Polygon polygon = new Polygon();
		for (int i = 0; i < list.size(); i++) {
			Point pt = list.get(i);
			if (i == 0) {
				polygon.startPath(pt);
			} else {
				polygon.lineTo(pt);
			}
		}
		polygon.closeAllPaths();
		SpatialReference webMercator = SpatialReference.create(2362);
        //project from wgs84
		Polygon newPoly = (Polygon) GeometryEngine.project(polygon, mapView.getSpatialReference(),webMercator);
		double area = newPoly.calculateArea2D();
		return Double.valueOf(dfAreaR.format(area));
	}
相关文章
相关标签/搜索