Announcement: All noncommercial projects registered to use Earth Engine before April 15, 2025 must verify noncommercial eligibility to maintain Earth Engine access.
Stay organized with collections
Save and categorize content based on your preferences.
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.
Usage
Returns
MultiPolygon.convexHull(maxError, proj)
Geometry
Argument
Type
Details
this: geometry
Geometry
Calculates the convex hull of this geometry.
maxError
ErrorMargin, default: null
The maximum amount of error tolerated when performing any necessary reprojection.
proj
Projection, default: null
The 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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-07-13 UTC."],[[["\u003cp\u003eReturns the convex hull of a given geometry, which can be a point, line, or polygon.\u003c/p\u003e\n"],["\u003cp\u003eAccepts an optional \u003ccode\u003emaxError\u003c/code\u003e parameter for reprojection tolerance and an optional \u003ccode\u003eproj\u003c/code\u003e parameter to specify the projection for the operation.\u003c/p\u003e\n"],["\u003cp\u003eIf a projection is not specified, the operation is performed in a spherical coordinate system using meters as the unit for linear distances.\u003c/p\u003e\n"],["\u003cp\u003eThe convex hull of collinear points is a line segment, while the convex hull of a single point is the point itself.\u003c/p\u003e\n"],["\u003cp\u003eFor all other cases, the result is a polygon, which might be degenerate if all vertices lie on the same line.\u003c/p\u003e\n"]]],["The `convexHull` method calculates the convex hull of a given geometry. A single point's convex hull is the point itself; collinear points result in a line; otherwise, a polygon is produced. The method accepts `maxError` for reprojection tolerance and `proj` to define the projection. It can be applied to geometries, such as a `MultiPolygon`, returning a new `Geometry` representing the convex hull. The example provides code in both Javascript and Python that defines and displays the input `MultiPolygon` and the result of the convex hull.\n"],null,["# ee.Geometry.MultiPolygon.convexHull\n\nReturns 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.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|----------------------------------------------------|----------|\n| MultiPolygon.convexHull`(`*maxError* `, `*proj*`)` | Geometry |\n\n| Argument | Type | Details |\n|------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| this: `geometry` | Geometry | Calculates the convex hull of this geometry. |\n| `maxError` | ErrorMargin, default: null | The maximum amount of error tolerated when performing any necessary reprojection. |\n| `proj` | Projection, default: null | The 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. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// Define a MultiPolygon object.\nvar multiPolygon = ee.Geometry.MultiPolygon(\n [[[[-122.092, 37.424],\n [-122.086, 37.418],\n [-122.079, 37.425],\n [-122.085, 37.423]]],\n [[[-122.081, 37.417],\n [-122.086, 37.421],\n [-122.089, 37.416]]]]);\n\n// Apply the convexHull method to the MultiPolygon object.\nvar multiPolygonConvexHull = multiPolygon.convexHull({'maxError': 1});\n\n// Print the result to the console.\nprint('multiPolygon.convexHull(...) =', multiPolygonConvexHull);\n\n// Display relevant geometries on the map.\nMap.setCenter(-122.085, 37.422, 15);\nMap.addLayer(multiPolygon,\n {'color': 'black'},\n 'Geometry [black]: multiPolygon');\nMap.addLayer(multiPolygonConvexHull,\n {'color': 'red'},\n 'Result [red]: multiPolygon.convexHull');\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# Define a MultiPolygon object.\nmultipolygon = ee.Geometry.MultiPolygon([\n [[\n [-122.092, 37.424],\n [-122.086, 37.418],\n [-122.079, 37.425],\n [-122.085, 37.423],\n ]],\n [[[-122.081, 37.417], [-122.086, 37.421], [-122.089, 37.416]]],\n])\n\n# Apply the convexHull method to the MultiPolygon object.\nmultipolygon_convex_hull = multipolygon.convexHull(maxError=1)\n\n# Print the result.\ndisplay('multipolygon.convexHull(...) =', multipolygon_convex_hull)\n\n# Display relevant geometries on the map.\nm = geemap.Map()\nm.set_center(-122.085, 37.422, 15)\nm.add_layer(\n multipolygon, {'color': 'black'}, 'Geometry [black]: multipolygon'\n)\nm.add_layer(\n multipolygon_convex_hull,\n {'color': 'red'},\n 'Result [red]: multipolygon.convexHull',\n)\nm\n```"]]