public static double ringAreaMeters(CoordinateSequence ring) {
    double total = 0;
    var numEdges = ring.size() - 1;
    for (int i = 0; i < numEdges; i++) {
      double lowerX = ring.getX(i) * RADIANS_PER_DEGREE;
      double midY = ring.getY(i + 1 == numEdges ? 0 : i + 1) * RADIANS_PER_DEGREE;
      double upperX = ring.getX(i + 2 >= numEdges ? (i + 2) % numEdges : i + 2) * RADIANS_PER_DEGREE;
      total += (upperX - lowerX) * Math.sin(midY);
    }
    return Math.abs(total) * AREA_FACTOR;
  }
Returns the approximate area in meters of a polygon in lat/lon degree coordinates.

@see <a href="https://trs.jpl.nasa.gov/handle/2014/40409">"Some Algorithms for Polygons on a Sphere", JPL
     Publication 07-03, Jet Propulsion * Laboratory, Pasadena, CA, June 2007</a>.
planetiler-core/src/main/java/com/onthegomap/planetiler/geo/GeoUtils.java