AI-generated Key Takeaways
-
closestPoint()
returns the nearest point on the right geometry to the left geometry, returning null if either input is empty. -
If only one input is unbounded, an arbitrary point in the bounded input is returned, and if both are unbounded, an arbitrary point is returned.
-
It accepts an optional
maxError
for reprojection and an optionalproj
to define the projection for the operation, defaulting to spherical coordinates in meters if unspecified. -
There is also a one-sided API:
closestPointOnInputGeom
that returns a feature representing the closest point only on the input geometry.
Usage | Returns |
---|---|
Geometry.closestPoint(right, maxError, proj) | Object |
Argument | Type | Details |
---|---|---|
this: left | Geometry | The geometry used as the left operand of the operation. |
right | Geometry | The geometry used as the right operand of the operation. |
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. |
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]]] }); // Define other inputs. var inputGeom = ee.Geometry.Polygon( [[[-122.068, 37.418], [-122.068, 37.416], [-122.064, 37.416], [-122.064, 37.418]]]); // Apply the closestPoints method to the Geometry objects. var closestPoints = ee.Dictionary(geometry.closestPoints({'right': inputGeom, 'maxError': 1})); // Print the result to the console. print('geometry.closestPoints(...) =', closestPoints); // There is also a one-sided API for convenience. var closestPointOnInputGeom = geometry.closestPoint({'right': inputGeom, 'maxError': 1}); print('geometry.closestPoint(...) =', closestPointOnInputGeom); // Display relevant geometries on the map. Map.setCenter(-122.085, 37.422, 15); Map.addLayer(geometry, {'color': 'black'}, 'Geometry [black]: geometry'); Map.addLayer(inputGeom, {'color': 'blue'}, 'Parameter [blue]: inputGeom'); Map.addLayer(closestPoints.getGeometry('left'), {'color': 'red'}, 'Result [red]: closestPointOnLeft'); Map.addLayer(closestPoints.getGeometry('right'), {'color': 'red'}, 'Result [red]: closestPointOnRight');