Posso sapere come disabilitare il doppio clic su google map in modo che la finestra informativa non si chiuda quando faccio doppio clic su google map? Può essere fatto tramite google map api?Disabilita doppio clic sinistro su google map
risposta
È possibile disattivare doppio clic zoom su Google Maps impostando la seguente google.maps.MapOptions object property: Codice
disableDoubleClickZoom: true
Esempio:
var mapOptions = {
scrollwheel: false,
disableDoubleClickZoom: true, // <---
panControl: false,
streetViewControl: false,
center: defaultMapCenter
};
Non può essere fatto, si dovrebbe essenzialmente bloccare o impedire che l'evento si verifichi.
Si potrebbe provare qualcosa come createInterceptor() come in EXT JS. Questo si attiva prima che l'evento venga attivato e puoi restituire false per impedire l'attivazione dell'evento effettivo, ma non sono sicuro che impedirà l'esecuzione del codice prima che l'evento venga attivato all'interno di quel codice.
È possibile usufruire di, dblclick si attiva se si tratta di un doppio clic e il singolo clic si attiva in tali occizioni solo una volta.
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();
});
Avete bisogno di un esterno var per farlo:
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
}
(Si prega di considerare che questa non è la risposta, è solo la stessa soluzione come Ravindranath Akila ha già risposto, per l'utilizzo in più vaste gamme di soluzioni [ad es. Piattaforme mobili] concentrate su un unico metodo riutilizzabile senza variabili globali)
Abbiamo problemi simili con l'app Win 8.1 Mobile. Grazie a Ravindranath Akila abbiamo finalizzato la soluzione che è definita in un metodo e controllando anche lo zoom e lo spostamento con il centro della mappa. Ad ogni modo è capitato che l'indirizzo che riceviamo da map-click sia sbagliato - i miglioramenti sono ben accetti.
// 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;
});
}
Diverse delle mie domande hanno risposto in uno qui: l'amore :) –