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

179
Vistas
OpenLayers No puedo arrastrar las funciones personalizadas

Siguiendo la consulta aquí:

Openlayers no puede modificar las características dibujadas

He creado un código que me permite editar nodos de mis características dibujadas:

 var modifyInteraction = new ol.interaction.Modify({ features: selectInteraction.getFeatures(), deleteCondition: function(event) { return ol.events.condition.shiftKeyOnly(event) && ol.events.condition.singleClick(event); } }); map.addInteraction(modifyInteraction);

Sin embargo, perdí la opción de arrastrar mis funciones, que se define mediante este código:

 var translateInteraction = new ol.interaction.Translate({ features: selectInteraction.getFeatures(), }); map.addInteraction(translateInteraction);

El new ol.interaction.Translate({ se ha desactivado; de lo contrario, no puedo editar mis funciones, pero solo puedo arrastrarlas.

¿Hay alguna posibilidad de que mis características se puedan arrastrar cuando puedo editarlas como se define en el código new ol.interaction.Modify({ arriba?

Mi JSfiddle completo está aquí:

https://jsfiddle.net/g196cqoa/

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

0

Puede agregar una opción de condición a la interacción de traducción para interactuar solo cuando se presiona la tecla ctrl.

 var modifyInteraction = new ol.interaction.Modify({ features: selectInteraction.getFeatures(), deleteCondition: function(event) { return ol.events.condition.shiftKeyOnly(event) && ol.events.condition.singleClick(event); }, }); map.addInteraction(modifyInteraction); const translate = new ol.interaction.Translate({ features: selectInteraction.getFeatures(), condition: function (event) { return ol.events.condition.platformModifierKeyOnly(event) && ol.events.condition.primaryAction(event); }, }); map.addInteraction(translate);

Alternativamente, si agrega la interacción de traducción antes de la interacción de modificación, debería permitirle arrastrar polígonos siempre que se mantenga alejado de los bordes. Esto no funcionará con líneas y puntos. ya que no hay ninguna zona en la que no se pueda modificar la geometría.

El orden en el que se agregan las interacciones a la colección de interacciones de mapas determina si la interacción de modificación puede ver y manejar los eventos antes de que los maneje la interacción de traducción.

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