Stay organized with collectionsSave 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```"]]