ee.Geometry.MultiPolygon.convexHull

  • The convex hull of a geometry is the smallest convex shape that contains all of its points.

  • The method returns the convex hull of the given geometry, resulting in a point for a single point, a line for collinear points, and a polygon for other geometries.

  • The convexHull method can take optional maxError and proj arguments for controlling reprojection error tolerance and the projection for the operation.

Returns the convex hull of the given geometry. The convex hull of a single point is the point itself, the convex hull of collinear points is a line, and the convex hull of everything else is a polygon. Note that a degenerate polygon with all vertices on the same line will result in a line segment.

UsageReturns
MultiPolygon.convexHull(maxError, proj)Geometry
ArgumentTypeDetails
this: geometryGeometryCalculates the convex hull of this geometry.
maxErrorErrorMargin, default: nullThe maximum amount of error tolerated when performing any necessary reprojection.
projProjection, default: nullThe projection in which to perform the operation. If not specified, the operation will be performed in a spherical coordinate system, and linear distances will be in meters on the sphere.

Examples

Code Editor (JavaScript)

// Define a MultiPolygon object.
var multiPolygon = ee.Geometry.MultiPolygon(
    [[[[-122.092, 37.424],
       [-122.086, 37.418],
       [-122.079, 37.425],
       [-122.085, 37.423]]],
     [[[-122.081, 37.417],
       [-122.086, 37.421],
       [-122.089, 37.416]]]]);

// Apply the convexHull method to the MultiPolygon object.
var multiPolygonConvexHull = multiPolygon.convexHull({'maxError': 1});

// Print the result to the console.
print('multiPolygon.convexHull(...) =', multiPolygonConvexHull);

// Display relevant geometries on the map.
Map.setCenter(-122.085, 37.422, 15);
Map.addLayer(multiPolygon,
             {'color': 'black'},
             'Geometry [black]: multiPolygon');
Map.addLayer(multiPolygonConvexHull,
             {'color': 'red'},
             'Result [red]: multiPolygon.convexHull');

Python setup

See the Python Environment page for information on the Python API and using geemap for interactive development.

import ee
import geemap.core as geemap

Colab (Python)

# Define a MultiPolygon object.
multipolygon = ee.Geometry.MultiPolygon([
    [[
        [-122.092, 37.424],
        [-122.086, 37.418],
        [-122.079, 37.425],
        [-122.085, 37.423],
    ]],
    [[[-122.081, 37.417], [-122.086, 37.421], [-122.089, 37.416]]],
])

# Apply the convexHull method to the MultiPolygon object.
multipolygon_convex_hull = multipolygon.convexHull(maxError=1)

# Print the result.
display('multipolygon.convexHull(...) =', multipolygon_convex_hull)

# Display relevant geometries on the map.
m = geemap.Map()
m.set_center(-122.085, 37.422, 15)
m.add_layer(
    multipolygon, {'color': 'black'}, 'Geometry [black]: multipolygon'
)
m.add_layer(
    multipolygon_convex_hull,
    {'color': 'red'},
    'Result [red]: multipolygon.convexHull',
)
m