Announcement: All noncommercial projects registered to use Earth Engine before April 15, 2025 must verify noncommercial eligibility to maintain Earth Engine access.
Stay organized with collections
Save and categorize content based on your preferences.
Earth Engine handles vector data with the Geometry type. The
GeoJSON spec describes in
detail the type of geometries supported by Earth Engine, including Point
(a list of coordinates in some projection), LineString (a list of points),
LinearRing (a closed LineString), and Polygon (a
list of LinearRings where the first is a shell and subsequent rings are
holes). Earth Engine also supports MultiPoint, MultiLineString,
and MultiPolygon. The GeoJSON GeometryCollection is also supported, although
it has the name MultiGeometry within Earth Engine.
Creating Geometry objects
You can create geometries interactively using the Code Editor geometry tools. See the
Earth Engine Code Editor page for more
information. To create a Geometry programmatically, provide the
constructor with the proper list(s) of coordinates. For example:
In the previous examples, note that the distinction between a LineString
and a LinearRing is that the LinearRing is “closed” by
having the same coordinate at both the start and end of the list.
An individual Geometry may consist of multiple geometries. To break a
multi-part Geometry into its constituent geometries, use
geometry.geometries(). For example:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-06 UTC."],[[["\u003cp\u003eEarth Engine uses the \u003ccode\u003eGeometry\u003c/code\u003e type to represent vector data, supporting various shapes like points, lines, and polygons, as defined in the GeoJSON specification.\u003c/p\u003e\n"],["\u003cp\u003eGeometries can be created interactively with the Code Editor tools or programmatically by providing coordinate lists to \u003ccode\u003eGeometry\u003c/code\u003e constructors.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eLinearRing\u003c/code\u003e geometries are closed shapes where the starting and ending coordinates are the same, unlike \u003ccode\u003eLineString\u003c/code\u003e geometries.\u003c/p\u003e\n"],["\u003cp\u003eMulti-part geometries, such as \u003ccode\u003eMultiPoint\u003c/code\u003e or \u003ccode\u003eMultiPolygon\u003c/code\u003e, can be broken down into individual geometries using the \u003ccode\u003egeometries()\u003c/code\u003e method.\u003c/p\u003e\n"]]],["Earth Engine utilizes the `Geometry` type for vector data, supporting GeoJSON geometries like `Point`, `LineString`, `LinearRing`, and `Polygon`, along with their multi-part counterparts (`MultiPoint`, etc.). Geometries can be created interactively or programmatically by providing coordinate lists to constructors, as shown in the provided JavaScript code. `LinearRing` differs from `LineString` by being closed. Multi-part geometries can be disassembled into individual components using the `geometry.geometries()` method.\n"],null,["# Geometry Overview\n\nEarth Engine handles vector data with the `Geometry` type. The\n[GeoJSON spec](http://geojson.org/geojson-spec.html) describes in\ndetail the type of geometries supported by Earth Engine, including `Point`\n(a list of coordinates in some projection), `LineString` (a list of points),\n`LinearRing` (a closed `LineString`), and `Polygon` (a\nlist of `LinearRing`s where the first is a shell and subsequent rings are\nholes). Earth Engine also supports `MultiPoint`, `MultiLineString`,\nand `MultiPolygon`. The GeoJSON GeometryCollection is also supported, although\nit has the name `MultiGeometry` within Earth Engine.\n\nCreating Geometry objects\n-------------------------\n\nYou can create geometries interactively using the Code Editor geometry tools. See the\n[Earth Engine Code Editor page](/earth-engine/guides/playground#geometry-tools) for more\ninformation. To create a `Geometry` programmatically, provide the\nconstructor with the proper list(s) of coordinates. For example:\n\n### Code Editor (JavaScript)\n\n```javascript\nvar point = ee.Geometry.Point([1.5, 1.5]);\n\nvar lineString = ee.Geometry.LineString(\n [[-35, -10], [35, -10], [35, 10], [-35, 10]]);\n\nvar linearRing = ee.Geometry.LinearRing(\n [[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]);\n\nvar rectangle = ee.Geometry.Rectangle([-40, -20, 40, 20]);\n\nvar polygon = ee.Geometry.Polygon([\n [[-5, 40], [65, 40], [65, 60], [-5, 60], [-5, 60]]\n]);\n```\n\nIn the previous examples, note that the distinction between a `LineString`\nand a `LinearRing` is that the `LinearRing` is \"closed\" by\nhaving the same coordinate at both the start and end of the list.\n\nAn individual `Geometry` may consist of multiple geometries. To break a\nmulti-part `Geometry` into its constituent geometries, use\n`geometry.geometries()`. For example:\n\n### Code Editor (JavaScript)\n\n```javascript\n// Create a multi-part feature.\nvar multiPoint = ee.Geometry.MultiPoint([[-121.68, 39.91], [-97.38, 40.34]]);\n\n// Get the individual geometries as a list.\nvar geometries = multiPoint.geometries();\n\n// Get each individual geometry from the list and print it.\nvar pt1 = geometries.get(0);\nvar pt2 = geometries.get(1);\nprint('Point 1', pt1);\nprint('Point 2', pt2);\n```"]]