公告:所有在
2025 年 4 月 15 日之前注册使用 Earth Engine 的非商业项目都必须
验证是否符合非商业性质的资格条件,才能继续使用 Earth Engine。
功能概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Earth Engine 中的 Feature
定义为 GeoJSON 地图项。具体而言,Feature
是一种具有 geometry
属性(用于存储 Geometry
对象或 null)和 properties
属性(用于存储其他属性的字典)的对象。
创建 Feature 对象
如需创建 Feature
,请向构造函数提供 Geometry
和(可选)其他属性的字典。例如:
Code Editor (JavaScript)
// Create an ee.Geometry.
var polygon = ee.Geometry.Polygon([
[[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]
]);
// Create a Feature from the Geometry.
var polyFeature = ee.Feature(polygon, {foo: 42, bar: 'tart'});
Python 设置
如需了解 Python API 以及如何使用 geemap
进行交互式开发,请参阅
Python 环境页面。
import ee
import geemap.core as geemap
Colab (Python)
# Create an ee.Geometry.
polygon = ee.Geometry.Polygon(
[[[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]]
)
# Create a Feature from the Geometry.
poly_feature = ee.Feature(polygon, {'foo': 42, 'bar': 'tart'})
与 Geometry
一样,Feature
也可以打印或添加到地图中以供检查和直观呈现:
Code Editor (JavaScript)
print(polyFeature);
Map.addLayer(polyFeature, {}, 'feature');
Python 设置
如需了解 Python API 以及如何使用 geemap
进行交互式开发,请参阅
Python 环境页面。
import ee
import geemap.core as geemap
Colab (Python)
display(poly_feature)
m = geemap.Map()
m.add_layer(poly_feature, {}, 'feature')
display(m)
Feature
不必包含 Geometry
,而可以简单地封装属性字典。例如:
Code Editor (JavaScript)
// Create a dictionary of properties, some of which may be computed values.
var dict = {foo: ee.Number(8).add(88), bar: 'nihao'};
// Create a null geometry feature with the dictionary of properties.
var nowhereFeature = ee.Feature(null, dict);
Python 设置
如需了解 Python API 以及如何使用 geemap
进行交互式开发,请参阅
Python 环境页面。
import ee
import geemap.core as geemap
Colab (Python)
# Create a dictionary of properties, some of which may be computed values.
dic = {'foo': ee.Number(8).add(88), 'bar': 'nihao'}
# Create a null geometry feature with the dictionary of properties.
nowhere_feature = ee.Feature(None, dic)
在此示例中,请注意向 Feature
提供的字典包含计算值。以这种方式创建地图项对于导出具有 Dictionary
结果(例如 image.reduceRegion()
)的长时间运行计算非常有用。如需了解详情,请参阅 FeatureCollections 和导入表数据或导出指南。
每个 Feature
都有一个存储在 geometry
属性中的主 Geometry
。其他几何图形可能会存储在其他属性中。
Feature
上还存在交集和缓冲区等 Geometry
方法,以便获取主 Geometry
、应用操作并将结果设置为新的主 Geometry
。
结果将保留调用该方法的 Feature
的所有其他属性。还有用于获取和设置 Feature
的非几何图形属性的方法。例如:
Code Editor (JavaScript)
// Make a feature and set some properties.
var feature = ee.Feature(ee.Geometry.Point([-122.22599, 37.17605]))
.set('genus', 'Sequoia').set('species', 'sempervirens');
// Get a property from the feature.
var species = feature.get('species');
print(species);
// Set a new property.
feature = feature.set('presence', 1);
// Overwrite the old properties with a new dictionary.
var newDict = {genus: 'Brachyramphus', species: 'marmoratus'};
var feature = feature.set(newDict);
// Check the result.
print(feature);
Python 设置
如需了解 Python API 以及如何使用 geemap
进行交互式开发,请参阅
Python 环境页面。
import ee
import geemap.core as geemap
Colab (Python)
# Make a feature and set some properties.
feature = (
ee.Feature(ee.Geometry.Point([-122.22599, 37.17605]))
.set('genus', 'Sequoia')
.set('species', 'sempervirens')
)
# Get a property from the feature.
species = feature.get('species')
display(species)
# Set a new property.
feature = feature.set('presence', 1)
# Overwrite the old properties with a new dictionary.
new_dic = {'genus': 'Brachyramphus', 'species': 'marmoratus'}
feature = feature.set(new_dic)
# Check the result.
display(feature)
请注意,在前面的示例中,可以使用键值对或字典来设置属性。另请注意,feature.set()
会覆盖现有属性。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\u003cp\u003eIn Earth Engine, a \u003ccode\u003eFeature\u003c/code\u003e is a GeoJSON Feature containing a \u003ccode\u003egeometry\u003c/code\u003e and \u003ccode\u003eproperties\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFeature\u003c/code\u003e objects can be created using a \u003ccode\u003eGeometry\u003c/code\u003e and an optional dictionary of properties.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFeature\u003c/code\u003e objects can be visualized on the map and printed for inspection.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFeature\u003c/code\u003e objects can have their properties set, retrieved, and overwritten using \u003ccode\u003eset()\u003c/code\u003e and \u003ccode\u003eget()\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Feature Overview\n\nA `Feature` in Earth Engine is defined as a GeoJSON Feature. Specifically,\na `Feature` is an object with a `geometry` property storing a\n`Geometry` object (or null) and a `properties` property storing a\ndictionary of other properties.\n\nCreating Feature objects\n------------------------\n\nTo create a `Feature`, provide the constructor with a `Geometry`\nand (optionally) a dictionary of other properties. For example:\n\n### Code Editor (JavaScript)\n\n```javascript\n// Create an ee.Geometry.\nvar polygon = ee.Geometry.Polygon([\n [[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]\n]);\n\n// Create a Feature from the Geometry.\nvar polyFeature = ee.Feature(polygon, {foo: 42, bar: 'tart'});\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# Create an ee.Geometry.\npolygon = ee.Geometry.Polygon(\n [[[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]]]\n)\n\n# Create a Feature from the Geometry.\npoly_feature = ee.Feature(polygon, {'foo': 42, 'bar': 'tart'})\n```\n\nAs with a `Geometry`, a `Feature` may be printed or added to the\nmap for inspection and visualization:\n\n### Code Editor (JavaScript)\n\n```javascript\nprint(polyFeature);\nMap.addLayer(polyFeature, {}, 'feature');\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\ndisplay(poly_feature)\nm = geemap.Map()\nm.add_layer(poly_feature, {}, 'feature')\ndisplay(m)\n```\n\nA `Feature` need not have a `Geometry` and may simply wrap a\ndictionary of properties. For example:\n\n### Code Editor (JavaScript)\n\n```javascript\n// Create a dictionary of properties, some of which may be computed values.\nvar dict = {foo: ee.Number(8).add(88), bar: 'nihao'};\n\n// Create a null geometry feature with the dictionary of properties.\nvar nowhereFeature = ee.Feature(null, dict);\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# Create a dictionary of properties, some of which may be computed values.\ndic = {'foo': ee.Number(8).add(88), 'bar': 'nihao'}\n\n# Create a null geometry feature with the dictionary of properties.\nnowhere_feature = ee.Feature(None, dic)\n```\n\nIn this example, note that the dictionary supplied to the `Feature` contains a\ncomputed value. Creating features in this manner is useful for exporting long-running\ncomputations with a `Dictionary` result (e.g. `image.reduceRegion()`).\nSee the [FeatureCollections](/earth-engine/guides/feature_collections) and\n[Importing Table Data](/earth-engine/guides/table_upload) or [Exporting](/earth-engine/guides/exporting) guides for\ndetails.\n\nEach `Feature` has one primary `Geometry` stored in the\n`geometry` property. Additional geometries may be stored in other properties.\n`Geometry` methods such as intersection and buffer also exist on\n`Feature` as a convenience for getting the primary `Geometry`,\napplying the operation, and setting the result as the new primary `Geometry`.\nThe result will retain all the other properties of the `Feature` on which\nthe method is called. There are also methods for getting and setting the non-geometry\nproperties of the `Feature`. For example:\n\n### Code Editor (JavaScript)\n\n```javascript\n// Make a feature and set some properties.\nvar feature = ee.Feature(ee.Geometry.Point([-122.22599, 37.17605]))\n .set('genus', 'Sequoia').set('species', 'sempervirens');\n\n// Get a property from the feature.\nvar species = feature.get('species');\nprint(species);\n\n// Set a new property.\nfeature = feature.set('presence', 1);\n\n// Overwrite the old properties with a new dictionary.\nvar newDict = {genus: 'Brachyramphus', species: 'marmoratus'};\nvar feature = feature.set(newDict);\n\n// Check the result.\nprint(feature);\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# Make a feature and set some properties.\nfeature = (\n ee.Feature(ee.Geometry.Point([-122.22599, 37.17605]))\n .set('genus', 'Sequoia')\n .set('species', 'sempervirens')\n)\n\n# Get a property from the feature.\nspecies = feature.get('species')\ndisplay(species)\n\n# Set a new property.\nfeature = feature.set('presence', 1)\n\n# Overwrite the old properties with a new dictionary.\nnew_dic = {'genus': 'Brachyramphus', 'species': 'marmoratus'}\nfeature = feature.set(new_dic)\n\n# Check the result.\ndisplay(feature)\n```\n\nIn the previous example, note that properties can be set with either a key-value pair,\nor with a dictionary. Also note that `feature.set()`\noverwrites existing properties."]]