Visão geral da geometria

O Earth Engine processa dados vetoriais com o tipo Geometry. A especificação do GeoJSON descreve em detalhes o tipo de geometrias aceitas pelo Earth Engine, incluindo Point (uma lista de coordenadas em alguma projeção), LineString (uma lista de pontos), LinearRing (um LineString fechado) e Polygon (uma lista de LinearRings em que o primeiro é um shell e os anéis subsequentes são furos). O Earth Engine também oferece suporte a MultiPoint, MultiLineString e MultiPolygon. A GeometryCollection do GeoJSON também é aceita, embora tenha o nome MultiGeometry no Earth Engine.

Como criar objetos de geometria

É possível criar geometrias de forma interativa usando as ferramentas de geometria do editor de código. Consulte a página do editor de código do Earth Engine para mais informações. Para criar um Geometry de forma programática, forneça ao construtor as listas de coordenadas adequadas. Exemplo:

Editor de código (JavaScript)

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]]
]);

Nos exemplos anteriores, a distinção entre um LineString e um LinearRing é que o LinearRing é "fechado" por ter a mesma coordenada no início e no fim da lista.

Uma Geometry individual pode consistir em várias geometrias. Para dividir uma Geometry de várias partes nas geometrias constituintes, use geometry.geometries(). Exemplo:

Editor de código (JavaScript)

// 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);