2010-09-19 8 views

Répondre

14

Le zoom sur double-clic fonctionnalité est apparemment une fonctionnalité dans le contrôle OpenLayers.Control.Navigation. Voir le OpenLayers Reference pour plus d'informations.

Un petit exemple très fatigué:

var Navigation = new OpenLayers.Control.Navigation({ 
    defaultDblClick: function(event) { return; } 
}); 

Je me souviens que le de navigation contrôle est automatiquement ajouté à la carte si aucun contrôle sont définis lors de l'initialisation de la carte. Vous devrez donc peut-être ajouter le contrôle de navigation.

it helps =)

+1

Comment cela peut-il être fait dans OpenLayers 3? – Brain

6

La réponse ci-dessus est correcte, mais vous devez ajouter explicitement ce contrôle à la carte pour remplacer la valeur par défaut de contrôle de navigation, par exemple,

var Navigation = new OpenLayers.Control.Navigation({ 
    defaultDblClick: function(event) { return; } 
}); 

map.addControl(Navigation); 

Les commandes suivantes sont ajoutés par défaut à un OpenLayers.Map: OpenLayers.Control.Navigation, OpenLayers.Control.PanZoom, OpenLayers.Control.ArgParser, OpenLayers.Control.Attribution

Une autre option si vous souhaitez désactiver tous ces comportements par défaut consiste à envoyer un tableau vide dans le paramètre options du constructeur de mappes de couches ouvertes, voir link text pour plus de détails.

5

Documentation OpenLayers 3 Link.

manière statique:

var map = new ol.Map({ 
    interactions: ol.interaction.defaults({ doubleClickZoom: false }), 
    ... 
}); 

façon dynamique:

var interactions = map.getInteractions(); 
for (var i = 0; i < interactions.getLength(); i++) { 
    var interaction = interactions.item(i);       
    if (interaction instanceof ol.interaction.DoubleClickZoom) { 
     map.removeInteraction(interaction); 
     break; 
    } 
}