3

Ich habe ein großes Problem für mobile Anwender:Wie kann man sich in Google Maps nur mit zwei Fingern bewegen?

ich ein Google-Karten haben, die width: 100% hat und so, wenn der Benutzer das Fenster scrollen, wenn Berühren Sie den Bildschirm „innerhalb“ der Karte, es ist die Scroll nur für Karte sein wird, und nicht für alle Fenster ... (gestern mein Vater für 3 Minuten gescrollt in der Karte XD)

Um das Fenster zu scrollen ist möglich, berühren Sie die Grenze des Bildschirms, ist aber sehr sehr scrict und nicht alle Benutzer verstehen dies. I dont'want eine Karte mit einer width weniger 100% so muss ich fand andere Lösung ...

Dieses es die Karte nur ziehbar machen sein wird, ist, wenn es Kontakt mit zwei Fingern, fast wenn Prise zoom ...

aber welche google maps event kann ich verwenden?

vielleicht:

google.maps.event.addListener(map, 'dblclick', function(event){ 
     this.setOptions({draggable:true}); 
    }); 

aber vielleicht auf dem ersten Klick auf der Karte soll ich (mit einem div in der Karte) aufmerksam zu machen, was möglich ist, um die Karte mit zwei Fingern zu bewegen ??

Was denkst du? und der Code ist korrekt?

Vielen Dank und sorry für mein Englisch und für seltsame Frage: D

+0

* * Warum runtergeraten **? – Borja

+0

Dies ist sehr nützlich für das mobile Scrollen. Ich merke heute, dass * Google einen nativen Block für einen Fingerzug * hinzugefügt hat, jetzt, zumindest wenn man die API benutzt, kann man die Karte nur mit zwei Fingern bewegen. zB: http://cmwautomacao.com.br/contato.php – Machado

Antwort

13

Wenn Sie API v3.27 oder höher verwenden. Während Karte Initialisierung fügen Sie einfach Eigenschaft gestureHandling: 'Cooperative'

wie diese

var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 4, 
      center: myLatLng, 
      gestureHandling: 'cooperative' 
     }); 

More Info Here

Oder wenn Sie dies tun wollen, nachdem die Karte erstellen, tun

map.setOptions({gestureHandling: 'cooperative'}); 

More Info Here

3

Obwohl dies ziemlich seltsam Voraussetzung ist, erhalten Sie folgende versuchen können;

document.addEventListener('touchmove', function(e) { 
 
    e.preventDefault(); 
 
    var touch = e.touches[0]; 
 
    if(e.touches.length == 2){ 
 
     //This means there are two finger move gesture on screen 
 
     googleMapsReference.setOptions({draggable:true}); 
 
    } 
 
}, false);

Ich habe dies auf einem mobilen Gerät nicht getestet, aber es sollte Ihnen einen Ausgangspunkt geben.

+0

hmm vielleicht ist besser als google maps event .... wenn ich deinen code versuche (2-3 tage) werde ich dir sagen ob es funktioniert .. Vielen Dank für die gute Idee und Hilfe. Jetzt warte ich andere Hilfen: D – Borja

+0

warum fügst du "e.preventDefault" hinzu? – Borja

+0

Je nach Verwendung können Sie es entfernen. Es dient dazu, die Standardaktion des Ereignisses zu verhindern. Weitere Informationen finden Sie unter https://api.jquery.com/event.preventdefault/. –

Verwandte Themen