You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Earth Engine图层颜色修改及AOI无填充多边形实现求助

解决Google Earth Engine绘制无填充多边形及图层颜色修改问题

一、实现无填充的AOI多边形

要让绘制的多边形仅显示边界、无填充,只需在创建ui.Map.GeometryLayer时,添加fillColor参数并设置为全透明的RGBA值('rgba(0, 0, 0, 0)'),还可通过strokeWidth调整边界线宽,提升辨识度。

修改原代码中的dummyGeometry定义部分:

var dummyGeometry = ui.Map.GeometryLayer({
  geometries: null, 
  name: 'grid', 
  color: 'green', // 边界颜色
  fillColor: 'rgba(0, 0, 0, 0)', // 全透明填充
  strokeWidth: 2 // 可选调整边界线宽
});

二、修改Google Earth Engine中的图层颜色

1. 修改绘制几何图层的颜色

直接在ui.Map.GeometryLayer的参数中修改color值即可,支持十六进制颜色码(如'#FF0000')、RGB/RGBA值或颜色名称(如'red')。

2. 修改影像图层的可视化颜色

对于添加到地图的遥感影像图层,通过设置可视化参数(visParams)调整颜色,常用参数包括:

  • palette:自定义颜色列表,适用于分类或单波段影像
  • min/max:设置颜色拉伸的数值范围
  • opacity:调整图层透明度

示例:添加NDVI影像并设置渐变颜色

// 加载Landsat影像并计算NDVI
var landsat = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
  .filterDate('2023-01-01', '2023-12-31')
  .first()
  .select(['SR_B5', 'SR_B4'])
  .normalizedDifference(['SR_B5', 'SR_B4']).rename('NDVI');

// 定义可视化参数
var visParams = {
  min: -0.2, 
  max: 0.8,
  palette: ['blue', 'white', 'green'] // 从低NDVI到高NDVI的颜色渐变
};

// 添加到地图
Map.addLayer(landsat, visParams, 'NDVI');

三、完整修改后的代码

var drawingTools = Map.drawingTools();
drawingTools.setShown(false);
while (drawingTools.layers().length() > 0) {
  var layer = drawingTools.layers().get(0);
  drawingTools.layers().remove(layer);
}

// 无填充的几何图层设置
var dummyGeometry = ui.Map.GeometryLayer({
  geometries: null, 
  name: 'grid', 
  color: 'green', 
  fillColor: 'rgba(0, 0, 0, 0)', 
  strokeWidth: 2
});

drawingTools.layers().add(dummyGeometry);
function clearGeometry() {
  var layers = drawingTools.layers();
  layers.get(0).geometries().remove(layers.get(0).geometries().get(0));
}
function drawRectangle() {
  clearGeometry();
  drawingTools.setShape('rectangle');
  drawingTools.draw();
}

function drawPolygon() {
  clearGeometry();
  drawingTools.setShape('polygon');
  drawingTools.draw();
}

var symbol = {
  rectangle: '⬛',
  polygon: '🔺',
  point: '📍',
};

/*
* Panel setup
*/
var controlPanel = ui.Panel({
  widgets: [
    ui.Label('1. Select a drawing mode.'),
    ui.Button({
      label: symbol.rectangle + ' Rectangle',
      onClick: drawRectangle,
      style: {stretch: 'horizontal'}
    }),
    ui.Button({
      label: symbol.polygon + ' Polygon',
      onClick: drawPolygon,
      style: {stretch: 'horizontal'}
    }),
  ],
  layout: null,
});

var main_panel = ui.Panel({style:{position: 'top-left'}});
main_panel.add(controlPanel);
Map.add(main_panel);

// 示例:添加带自定义颜色的影像图层(可选)
var landsat = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
  .filterDate('2023-01-01', '2023-12-31')
  .first()
  .select(['SR_B5', 'SR_B4'])
  .normalizedDifference(['SR_B5', 'SR_B4']).rename('NDVI');

var visParams = {
  min: -0.2, 
  max: 0.8,
  palette: ['#d7191c', '#fdae61', '#ffffbf', '#abdda4', '#2b83ba']
};
Map.addLayer(landsat, visParams, 'NDVI');

内容的提问来源于stack exchange,提问作者user30985

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:25:17