2 votos

Uso conjunto de onchange y onclick en el motor Google Earth

En este código

var select = ui.Select({

  items: ['1','2'],

  onChange: function() {  
    Map.onClick(test)

  }
});

Map.add(select) 

var test = function() {

  print ("123")

}

Cuando cambio el desplegable por segunda vez después de hacer clic en el mapa la función de prueba se ejecuta 2 veces , para la tercera vez que cambio el desplegable se ejecuta 3 veces después de hacer clic. Quiero que por cada cambio en el ui.Select después del clic la función se ejecute sólo una vez.

¿Qué debo hacer?

1voto

Daniel Puntos 9

No sé exactamente lo que intentas hacer, pero veo cuál es tu problema. Cada vez que Map.onClick() se registra un nuevo receptor de clics. En otras palabras, cada vez que cambies el valor seleccionado, añadirás un nuevo receptor, y tu función de prueba será invocada una vez más al hacer clic. La solución es invocar únicamente Map.onClick() oyente una vez.

var select = ui.Select({
  items: ['1','2'],
  onChange: handleChange
});

Map.add(select) 
Map.onClick(handleClick) 

function handleClick(coordinate) {
  print ("click", coordinate)
}

function handleChange(value) {
  print ("change", value)
}

https://code.earthengine.google.com/726f22564980502c05c239639a4639bd

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