2010-09-19 18 views
12

ओपनलेयर पर ज़ूमिंग अक्षम करें, जब उपयोगकर्ता किसी उपयोगकर्ता को मानचित्र पर डबल क्लिक करता है तो ज़ूम करता है।ओपनलेयर: डिफ़ॉल्ट रूप से डबल-क्लिक

इस व्यवहार को अक्षम करने का सबसे अच्छा तरीका क्या है?

उत्तर

14

डबल क्लिक पर ज़ूम क्लिक करें सुविधा OpenLayers.Control.Navigation नियंत्रण में स्पष्ट रूप से एक कार्यक्षमता है। अधिक जानकारी के लिए OpenLayers Reference देखें।

एक छोटा सा और बहुत थक गया उदाहरण:

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

मुझे याद है कि नेविगेशन नियंत्रण स्वचालित रूप से कोई नियंत्रण नक्शे के प्रारंभ के दौरान सेट कर रहे हैं, तो मानचित्र में जोड़े। तो आपको अपने स्वयं के नेविगेशन नियंत्रण को जोड़ना पड़ सकता है।

,, आशा है कि यह मदद करता है =)

+1

यह कैसे OpenLayers 3 में किया जा सकता? – Brain

6

ऊपर जवाब सही है, लेकिन आप स्पष्ट रूप से डिफ़ॉल्ट नेविगेशन नियंत्रण ओवरराइड करने के लिए नक्शे को यह नियंत्रण जोड़ना होगा यानी

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

map.addControl(Navigation); 

निम्न नियंत्रण एक OpenLayers.Map को डिफ़ॉल्ट रूप से जुड़ जाते हैं: OpenLayers.Control.Navigation, OpenLayers.Control.PanZoom, OpenLayers.Control.ArgParser, OpenLayers.Control.Attribution

तो यदि आप इन सभी डिफ़ॉल्ट व्यवहार को बंद करना चाहते हैं तो एक और विकल्प, खुली परत नक्शा कन्स्ट्रक्टर के विकल्प पैरामीटर में एक खाली सरणी भेजना है, अधिक जानकारी के लिए link text देखें।

5

ओपनलेयर 3 दस्तावेज़ीकरण Link

स्टेटिक रास्ता:

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

गतिशील रास्ता:

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; 
    } 
} 
संबंधित मुद्दे