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.
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).
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);
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
Partager