GeometryEngine.NearestCoordinate(envelope, mapPoint) throws a NotImplementedException.
This is definitely a bug, as the documentation doesn't mention it: GeometryEngine.NearestCoordinate Method
The fix is to convert the Envelope to a Polygon:
private static Polygon EnvelopeToPolygon(Envelope envelope)
return new Polygon(new MapPoint
new MapPoint(envelope.XMin, envelope.YMin, envelope.SpatialReference),
new MapPoint(envelope.XMax, envelope.YMin, envelope.SpatialReference),
new MapPoint(envelope.XMax, envelope.YMax, envelope.SpatialReference),
new MapPoint(envelope.XMin, envelope.YMax, envelope.SpatialReference)
It really should be implemented, as it's just a few lines of code.
GeometryEngine.NearestCoordinate is not implemented for Envelope. It is as expected because Envelope is not a feature geometry. You are on the right track to get around this limitation by converting envelope to a polygon.
But yes, this should definitely be documented. I have raised an issue to update the documentation to include this information.