公告:所有在
2025 年 4 月 15 日之前注册使用 Earth Engine 的非商业项目都必须
验证是否符合非商业性质的资格条件,才能继续使用 Earth Engine。
几何图形概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Earth Engine 处理的矢量数据类型为 Geometry
。GeoJSON 规范详细介绍了 Earth Engine 支持的几何图形类型,包括 Point
(某个投影中的坐标列表)、LineString
(点列表)、LinearRing
(封闭的 LineString
)和 Polygon
(LinearRing
列表,其中第一个是壳,后续的环是孔)。Earth Engine 还支持 MultiPoint
、MultiLineString
和 MultiPolygon
。也支持 GeoJSON GeometryCollection,不过它在 Earth Engine 中名为 MultiGeometry
。
创建几何图形对象
您可以使用 Code Editor 几何图形工具以交互方式创建几何图形。如需了解详情,请参阅 Earth Engine 代码编辑器页面。如需以编程方式创建 Geometry
,请向构造函数提供适当的坐标列表。例如:
Code Editor (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]]
]);
在前面的示例中,请注意 LineString
和 LinearRing
之间的区别在于,LinearRing
通过在列表的开头和结尾使用相同的坐标来“封闭”。
单个 Geometry
可能包含多个几何图形。如需将多部分 Geometry
拆分为其组成几何图形,请使用 geometry.geometries()
。例如:
Code Editor (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);
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\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```"]]