2010-07-06 13 views
26

क्या मुझे पता है कि मैं Google मानचित्र पर डबल क्लिक कैसे अक्षम कर सकता हूं ताकि जब मैं Google मानचित्र पर डबल क्लिक करूं तो जानकारी विंडो बंद नहीं होगी? क्या यह Google मानचित्र एपीआई के माध्यम से किया जा सकता है?Google मानचित्र पर डबल बाएं क्लिक को अक्षम करें

उत्तर

102

अक्षम कर सकते हैं डबल क्लिक करें ज़ूम सेटिंग के द्वारा google.maps.MapOptions object property निम्नलिखित:

disableDoubleClickZoom: true 

नमूना कोड:

var mapOptions = { 
    scrollwheel: false, 
    disableDoubleClickZoom: true, // <--- 
    panControl: false, 
    streetViewControl: false, 
    center: defaultMapCenter 
}; 
+1

मेरे कई प्रश्न यहां एक में उत्तर दिए गए - प्यार है :) –

-10

यह नहीं किया जा सकता है, आपको अनिवार्य रूप से घटना को होने या रोकने से रोकना होगा।

आप EXT जेएस जैसे createInterceptor() जैसे कुछ कोशिश कर सकते हैं। ईवेंट को निकाल दिया जाने से पहले यह आग लग जाएगा, और वास्तविक घटना को आग लगने से रोकने के लिए आप झूठी वापसी कर सकते हैं, लेकिन मुझे यकीन नहीं है कि कोड को उस कोड में निकाला जाने से पहले कोड को निष्पादित करने से रोक दिया जाएगा।

3

यदि आप दो बार क्लिक करते हैं, तो आप डीबीएलक्लिक आग का लाभ उठा सकते हैं, और केवल एक बार इस तरह के अवसरों पर एकल क्लिक आग लगती है। गूगल मैप्स पर

runIfNotDblClick = function(fun){ 
    if(singleClick){ 
     whateverurfunctionis(); 
    } 
}; 

clearSingleClick = function(fun){ 
    singleClick = false; 
}; 

singleClick = false; 

google.maps.event.addListener(map, 'click', function(event) {// duh! :-(google map zoom on double click! 
    singleClick = true; 
    setTimeout("runIfNotDblClick()", 500); 
}); 

google.maps.event.addListener(map, 'dblclick', function(event) {// duh! :-(google map zoom on double click! 
    clearSingleClick(); 
}); 

देखें http://www.ilikeplaces.com

0

आप किसी बाहरी की जरूरत है ऐसा करने के लिए var:

var isDblClick; 
    google.maps.event.addListener(map, 'dblclick', function (event) { 
     isDblClick = true; 
     myDlbClickBelovedFunction(); 
    }); 

    google.maps.event.addListener(map, 'click', function (event) { 
     setTimeout("mySingleClickBelovedFunction();;", 200); 
    }); 

function mySingleClickBelovedFunction() { 
     if (!isDblClick) { 
// DO MY SINGLE CLICK BUSINESS :)    
      } 
// DO NOTHING 

    } 
0

(कृपया ध्यान दें कि यह उत्तर नहीं है, यह केवल वही समाधान है जैसे रविंद्रनाथ अकिला पहले से ही समाधान का विस्तृत श्रृंखला [उदाहरण के लिए) का जवाब दे रहा है। मोबाइल प्लेटफ़ॉर्म] वैश्विक चर के बिना एक पुन: प्रयोज्य विधि पर केंद्रित)

हमें Win 8.1 मोबाइल ऐप द्वारा समान समस्या है। रविंद्रनाथ अकिला के लिए धन्यवाद हमने समाधान को अंतिम रूप दिया है जिसे एक विधि में परिभाषित किया गया है और मानचित्र के केंद्र के साथ ज़ूमिंग और आगे बढ़ने की जांच भी की जा रही है। वैसे भी कभी-कभी हुआ कि मानचित्र-क्लिक से प्राप्त पता गलत है - सुधार का स्वागत है।

// code 
    { 
     // adding event method 
     addGoogleClickEnventHandler(map, function(e) { 
      // example code inside click event 
      var clickLocation = e.latLng; 
      getAddress(clickLocation); 
     }); 
    } 

    // function 
    function addGoogleClickEnventHandler(googleEventableObject, handlingFunction) { 

    var boundsChanged = false; 
    var centerChanged = false; 
    var singleClick = false; 

    function runIfNotDblClick(obj) { 
     if(singleClick && !boundsChanged && !centerChanged){ 
      handlingFunction(obj); 
     } 
    }; 

    googleEventableObject.addListener('bounds_changed', function() { boundsChanged = true; }); 
    googleEventableObject.addListener('center_changed', function() { centerChanged = true; }); 
    googleEventableObject.addListener('dblclick', function() { singleClick = false; }); 

    googleEventableObject.addListener('click', function(obj) { 
     singleClick = true; 
     setTimeout(function() { 
       runIfNotDblClick(obj); 
      }, 200);    
     boundsChanged = false; 
     centerChanged = false; 
    }); 
    } 
संबंधित मुद्दे