多的不说,少的不唠直接上代码,亲测可用!
public double areaFunction() throws FactoryException, TransformException { GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(PrecisionModel.FLOATING), 4326); Polygon polygon = geometryFactory.createPolygon(new Coordinate[]{ new Coordinate(经度,纬度), new Coordinate(经度,纬度) }); return getArea(polygon); } public static double getArea(Polygon polygon) throws FactoryException, org.opengis.referencing.operation.TransformException { Geometry geometry = polygon; // WGS84(一般项目中常用的是CSR:84和EPSG:4326) CoordinateReferenceSystem sourceCRS = CRS.decode("CRS:84"); // Pseudo-Mercator(转换为地理坐标系) CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:4326"); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS, false); Geometry geometryMercator = JTS.transform(geometry, transform); // 获取面积,单位是万平方公里 double area = geometryMercator.getArea()*10000; return area; }