3 votos

Motor de Google Earth: ventana emergente al hacer clic en la geometría/característica

Esto puede ser más una pregunta de JavaScript que una pregunta de GIS. Estoy añadiendo puntos de características a un mapa GEE ( https://code.earthengine.google.com/2d6c3146e5468cb9f14e10039ca22b59 ). Mi objetivo es mapear las características de los puntos de una tabla de activos (que tiene datos asociados), y ver esos datos al hacer clic en las características en el mapa.

La API de Google Map tiene un infowindow función ( https://developers.google.com/maps/documentation/javascript/examples/infowindow-simple ) pero no estoy seguro de si o cómo se puede incorporar a un GEE script.

¿Es posible que aparezca una burbuja emergente (ventana de información) cuando se hace clic en una característica? He buscado en las guías de GEE pero no he podido encontrar ninguna función ya existente.

Aquí hay un ejemplo de script:

// Import DEM
var collection = 'WWF/HydroSHEDS/03VFDEM';
var band = 'b1';
var dataset = ee.Image(collection).select(band);
var elevationVis = {
  min: -50.0,
  max: 3000.0,
  gamma: 2.0,
};
// create point geometry (will call an asset in the real script)
var point = ee.Geometry.Point([-61.334, 15.416]);

Map.setCenter(-61.334, 15.416, 10);
Map.addLayer(dataset, elevationVis, collection);
Map.addLayer(point, {}, "acou");

// example from Google Map API
// should be placed earlier in the script but causes GEE to stop runing
var contentString = '<div id="content">'+
            '<p><b>Hello</b>'+
            '</div>';
var infowindow = new google.maps.InfoWindow({
          content: contentString
        });
var marker = new google.maps.Marker({
          position: point,
          map: map,
          title: 'Uluru (Ayers Rock)' });
        marker.addListener('click', function() {
          infowindow.open(map, marker);
        });

5voto

Marcin Puntos 11

Esto es un poco complicado, pero puedes escuchar los clics del mapa y actualizar los elementos de la interfaz de usuario en función de los resultados. Esto sólo inspecciona un punto, pero podrías añadir más a una colección de características. Además, esto sólo actualiza una etiqueta en la parte superior del mapa, no en el punto:

// Import DEM
var collection = 'WWF/HydroSHEDS/03VFDEM';
var band = 'b1';
var dataset = ee.Image(collection).select(band);
var elevationVis = {
  min: -50.0,
  max: 3000.0,
  gamma: 2.0,
};
// create point geometry (will call an asset in the real script)
var point = ee.Geometry.Point([-61.334, 15.416]);
var feature = ee.Feature(point, {'text_prop': 'Hello!'})

Map.setCenter(-61.334, 15.416, 10);
Map.addLayer(dataset, elevationVis, collection);
Map.addLayer(point, {}, "acou");

// Create a panel and add it to the map.
var inspector = ui.Panel([ui.Label('Click on the point')]);
Map.add(inspector);

Map.onClick(function(coords) {
  // Show the loading label.
  inspector.widgets().set(0, ui.Label({
    value: 'Loading...',
    style: {color: 'gray'}
  }));

  var click_point = ee.Geometry.Point(coords.lon, coords.lat);

  // compute distance, a long running operation
  var computedValue = click_point.distance(feature.geometry())

  computedValue.evaluate(function(result) {
    if (result < 1000) {
      // get the text property, a long running operation
      var lbl = feature.get('text_prop')
      lbl.evaluate(function(result) {
        inspector.widgets().set(0, ui.Label({
          value: 'Text: ' + result,
        }))
      });
    } else {
      inspector.widgets().set(0, ui.Label({
        value: 'Text: ' + 'Clicked to far away',
      }));
    }
  });
});

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X