ee.Geometry.simplify

  • The simplify method simplifies geometry within a given error margin, although it may not always respect the requested error margin unless maxError is explicitly set to null.

  • This method overrides the default Earth Engine error propagation policy, ensuring consistent rendering at all zoom levels but potentially impacting performance at lower zoom levels by not simplifying the geometry.

  • The simplify method takes a maxError argument (ErrorMargin type) to specify the maximum allowable difference between the simplified result and the original input, and an optional proj argument (Projection type) to specify the output projection.

  • The method returns a Geometry object.

Simplifies the geometry to within a given error margin. Note that this does not respect the error margin requested by the consumer of this algorithm, unless maxError is explicitly specified to be null.

This overrides the default Earth Engine policy for propagating error margins, so regardless of the geometry accuracy requested from the output, the inputs will be requested with the error margin specified in the arguments to this algorithm. This results in consistent rendering at all zoom levels of a rendered vector map, but at lower zoom levels (i.e. zoomed out), the geometry won't be simplified, which may harm performance.

UsageReturns
Geometry.simplify(maxError, proj)Geometry
ArgumentTypeDetails
this: geometryGeometryThe geometry to simplify.
maxErrorErrorMarginThe maximum amount of error by which the result may differ from the input.
projProjection, default: nullIf specified, the result will be in this projection. Otherwise it will be in the same projection as the input. If the error margin is in projected units, the margin will be interpreted as units of this projection.

Examples

Code Editor (JavaScript)

// Define a Geometry object.
var geometry = ee.Geometry({
  'type': 'Polygon',
  'coordinates':
    [[[-122.081, 37.417],
      [-122.086, 37.421],
      [-122.084, 37.418],
      [-122.089, 37.416]]]
});

// Apply the simplify method to the Geometry object.
var geometrySimplify = geometry.simplify({'maxError': 1});

// Print the result to the console.
print('geometry.simplify(...) =', geometrySimplify);

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

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 Geometry object.
geometry = ee.Geometry({
    'type': 'Polygon',
    'coordinates': [[
        [-122.081, 37.417],
        [-122.086, 37.421],
        [-122.084, 37.418],
        [-122.089, 37.416],
    ]],
})

# Apply the simplify method to the Geometry object.
geometry_simplify = geometry.simplify(maxError=1)

# Print the result.
display('geometry.simplify(...) =', geometry_simplify)

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