15

OpenLayers, by default, zooms in when a user double clicks a map.

What is the best way to disable this behavior?

Ovesh
  • 4,831
  • 9
  • 49
  • 69

3 Answers3

15

The zoom on double click feature is apparently a functionality in the OpenLayers.Control.Navigation control. See the OpenLayers Reference for more information.

A small and very tired example:

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

I remember that the Navigation control is automatically added to the map if no controls are set during the initialization of the map. So you might have to add the Navigation control your self.

Hope it helps =)

Chau
  • 5,378
  • 8
  • 59
  • 87
10

OpenLayers 3 Documentation Link.

Static way:

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

Dynamic way:

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;
    }
}
VAV
  • 1,608
  • 1
  • 15
  • 26
7

The above answer is correct, but you will have to explicitly add this control to the map to override the default Navigation control, ie,

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

map.addControl(Navigation);

The following controls are added by default to an OpenLayers.Map: OpenLayers.Control.Navigation, OpenLayers.Control.PanZoom, OpenLayers.Control.ArgParser, OpenLayers.Control.Attribution

So another option if you want to turn all these default behaviors off, is to send an empty array in the options parameter of the open layers map constructor, see link text for more details.

John Powell
  • 11,245
  • 6
  • 53
  • 64