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