IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Comment ralentir la souris avant un modifyend avec OL3+


Sujet :

IGN API Géoportail

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Points : 68
    Points
    68
    Par défaut Comment ralentir la souris avant un modifyend avec OL3+
    Bonjour,

    J'ai une carte OSM avec un marqueur déplaçable (ol.style.icon en fait).
    Il y a une situation étrange:
    Si j'essaie de déplacer mon marqueur, c'est comme essayer d'attraper un savon:
    la map bouge très vite, puis, après un zoom in/out ou un premier déplacement (après avoir relaché le marqueur), le marqueur ralentit naturellement.
    J'ai essayé de jouer avec PixelTolerance mais aucune différence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
        var mark_style = new ol.style.Style({
    		image: new ol.style.Icon({
    		anchor: [.5, 48],
    		anchorXUnits: 'fraction',
    		anchorYUnits: 'pixels',
    		opacity: 0.75,
    		src: mark_path
    	 })
    	});
    
    	var iconFeature = new ol.Feature(position);
    	iconFeature.set('style', mark_style);
    
    	var vectorLayer = new ol.layer.Vector({
    		style: function(feature) {
    			return feature.get('style');
    		},
    		source: new ol.source.Vector({features: [iconFeature]})
    	})
    	var dragInteraction = new ol.interaction.Modify({
    	  features: new ol.Collection([iconFeature]),
    	  style: null,
    	  pixelTolerance: 10//?
    	});
    
    	dragInteraction.on('modifyend',function(f){
    		var coordf = f.features.getArray()[0].getGeometry().getCoordinates();
    		ol.View-view.setCenter(coordf);
    		GMapWidget.prototype.A = coordf;
    		GMapWidget.prototype.updatePosition(position);
    		},iconFeature);
    
    	  map.addInteraction(dragInteraction);
    Après bien des essais, il semble que cela soit un problème lié à 'modifyend' : le marqueur est plus rapide avant que la première dragInteraction finisse (modifyend).
    Avec plutôt un modifystart, il n'y a plus de problème de vitesse, mais comment alors accéder aux positions du marqueur après un premier clic?
    Merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Points : 68
    Points
    68
    Par défaut
    pas mieux avec pointerdrag... aucune idée?
    Bon, cela semble réglé avec `dragInteraction.on(['modifyend', 'modifystart']`
    merci de votre silence...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 25/05/2010, 08h44
  2. [PHP-JS] Comment tester un champ avant de valider avec GET ?
    Par anis_el_madani dans le forum Langage
    Réponses: 2
    Dernier message: 09/04/2007, 21h37
  3. Réponses: 13
    Dernier message: 25/04/2006, 10h43
  4. Réponses: 4
    Dernier message: 30/05/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo