Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
setValue no funciona en la interfaz de usuario de Earth Engine dependiente. Seleccione el widget

Estoy trabajando en una aplicación de Earth Engine donde tengo 2 widgets de tipo ui.Seleccione que sean dependientes entre sí (dependientes bidireccionales). Es decir, cuando hago un cambio en uno de ellos, cambia la lista en el otro y viceversa.

El comportamiento es correcto, salvo que cuando quiero volver a seleccionar la opción que estaba antes del cambio, no funciona. Debido a que la secuencia de comandos del generador de elementos que completan los widgets siempre está seguro de que la selección anterior está en la lista de elementos nuevos (modificados).

Aquí están las dos implementaciones de widgets.

 var select_date_init = ui.Select({ items: Object.keys(dates_init), onChange:function(key) { var selected_end = select_date_end.getValue(); var selected_init_end_date = dates_init[key][1]; var new_list = Object.keys(get_dates_list(selected_init_end_date,'')); select_date_end.items().reset(new_list); //select_date_end.items = new_list if(selected_end !== null){ select_date_end.setValue(selected_end,false) }else{ select_date_end.setValue(null,false) } }, placeholder: 'Seleccionar semestre 1...' }); var select_date_end = ui.Select({ items: Object.keys(dates_end), onChange: function(key) { var selected_init = select_date_init.getValue(); var selected_end_init_date = dates_init[key][0]; var new_list = Object.keys(get_dates_list(system_date_init,selected_end_init_date)); select_date_init.items().reset(new_list); //select_date_init.items = new_list; if(selected_init !== null){ select_date_init.setValue(selected_init,false) }else{ select_date_init.setValue(null,false) } }, placeholder: 'Seleccionar semestre 2...' });

El problema parece estar en la parte setValue() del script. Los elementos de los dos widgets se modifican correctamente, pero siempre muestra el texto predeterminado 'Seleccionar semestre 1...' o 'Seleccionar semestre 2...' después de la acción de cambio.

La acción que necesito es:

Primer paso:
Seleccione de 1 -> esto cambia la lista en 2 (originalmente vacía, por lo que no se necesita preselección)
Segundo paso:
Seleccione de 2 -> esto cambia la lista en 1 (pero mantiene la opción seleccionada en 1)
Si el usuario quiere:
Cambie la selección de 1 (o 2) -> actualice la otra lista -> mantenga las opciones preseleccionadas

Aquí está el enlace al script de trabajo completo https://code.earthengine.google.com/b251b24ffbc37775e4e5eede8dcbd11f

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La función onChange de su botón #2 está reiniciando su botón #1 cada vez. Solo necesita descomentar las líneas 209-216 de su código, por lo que la función onChange de su variable var select_date_end se ve así:

 var select_date_end = ui.Select({ items: Object.keys(dates_end), onChange: function(key) { var selected_init = select_date_init.getValue(); var selected_end_init_date = dates_init[key][0]; var new_list = Object.keys(get_dates_list(system_date_init,selected_end_init_date)); }, placeholder: 'Seleccionar semestre 2...' });

Ver código: https://code.earthengine.google.com/9e2d4f13e9bfa57e1df3673a6d82684e

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda