Descripción general de la geometría

Earth Engine controla los datos vectoriales con el tipo Geometry. En la especificación de GeoJSON, se describe en detalle el tipo de geometrías que admite Earth Engine, incluidas Point (una lista de coordenadas en alguna proyección), LineString (una lista de puntos), LinearRing (un LineString cerrado) y Polygon (una lista de LinearRing en la que el primero es una capa y los anillos posteriores son orificios). Earth Engine también admite MultiPoint, MultiLineString y MultiPolygon. También se admite GeometryCollection de GeoJSON, aunque tiene el nombre MultiGeometry en Earth Engine.

Cómo crear objetos de geometría

Puedes crear geometrías de forma interactiva con las herramientas de geometría del editor de código. Consulta la página del editor de código de Earth Engine para obtener más información. Para crear un Geometry de manera programática, proporciona al constructor las listas de coordenadas adecuadas. Por ejemplo:

var point = ee.Geometry.Point([1.5, 1.5]);

var lineString = ee.Geometry.LineString(
  [[-35, -10], [35, -10], [35, 10], [-35, 10]]);

var linearRing = ee.Geometry.LinearRing(
  [[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]);

var rectangle = ee.Geometry.Rectangle([-40, -20, 40, 20]);

var polygon = ee.Geometry.Polygon([
  [[-5, 40], [65, 40], [65, 60], [-5, 60], [-5, 60]]
]);

En los ejemplos anteriores, ten en cuenta que la distinción entre un LineString y un LinearRing es que el LinearRing está “cerrado” porque tiene la misma coordenada al principio y al final de la lista.

Un Geometry individual puede constar de varias geometrías. Para dividir un Geometry de varias partes en sus geometrías constituyentes, usa geometry.geometries(). Por ejemplo:

// Create a multi-part feature.
var multiPoint = ee.Geometry.MultiPoint([[-121.68, 39.91], [-97.38, 40.34]]);

// Get the individual geometries as a list.
var geometries = multiPoint.geometries();

// Get each individual geometry from the list and print it.
var pt1 = geometries.get(0);
var pt2 = geometries.get(1);
print('Point 1', pt1);
print('Point 2', pt2);