2014-09-26 19 views
5

Nach Google Map documentation. In IPhoneZoomen in google map api 3 [ios]

Zoomen wird durch eine Zwei-Finger-Prise erreicht.

Also, wenn ich meine Finger auf dem Bildschirm tippen und dann bewegen Karte gezoomt bekommen aber nach, dass, wenn ich loslassen Finger von Bildschirm und zoomen Sie dann, dass ich sehen, bevor die Karte neu geladen viel mehr als die tatsächlichen Zoom ist, die macht.

Derzeit teste ich, dass auf IPhone 5 mit ios 7.1.2 und IPhone 4S mit ios 8

Ich bin mit jQuery Mobile Framework-in meiner app und die Karte erzeugt wird, dynamisch. (wenn ich Karte mit festen Werten dann erstelle, funktioniert es gut)

Ich schuf Geige, in der Sie dasselbe Problem sehen können. Link

Einig Bild meiner Ausgabe Ersten Foto Karte öffnet

first

Zweites Bild, wenn ich versuche, meine Karte mit dem Finger Prise zu vergrößern.

second picture

Drittes Bild, wenn ich vom Bildschirm Finger freigegeben.

third picture

So kann es nicht seine Zoomstufe beizubehalten, die in der zweiten Bild zeigen. Wie dieses Problem zu ersetzen

+0

Prise Zoomen nicht unbedingt der Zoomstufe zurückkehrt, weil Fliesen nicht während des Zoomens geladen werden. Wenn Sie 'console.log (mapClass.map.getZoom());' haben, erhalten Sie die Zoomstufe, nachdem das Pinch-Zoomen beendet ist. – Omar

+0

nur bei 'webapp'? Denn in Maps-Apps, die bereits in 'IPhone' installiert sind, funktioniert es auf diese Weise. – Blu

+0

Ihr Beispiel zoomt korrekt nach Google-Dokumentation. Anscheinend möchten Sie das Kartenbild einfach vergrößern, anstatt neue Kacheln auf der endgültigen Zoomstufe zu laden. Vielleicht würde eine Art Zoomen von Ansichtsfenstern funktionieren? –

Antwort

1

Bitte zu lösen versuchen:

google.maps.event.addListener(mapClass.map, 'zoom_changed', function() { 
    mapClass.map.panTo(myLatlng); 
}); 

mit:

google.maps.event.addListener(mapClass.map, 'zoom_changed', function() { 
    mapClass.map.panTo(mapClass.map.center); 
}); 

Hoffe, es hilft.

+0

nichts geändert. Das gleiche Problem gibt es – Blu

+0

Hoppla! cool, ich werde es mir noch einmal ansehen –

0

Ich löste dieses Problem (oder möglicherweise eine sehr ähnliche) kaufen Drosselung der Arbeit, die ich in der zoom_changed Listener tat. Ich habe verwendet.

Ersetzen Sie diesen

google.maps.event.addListener(mapClass.map, 'zoom_changed', myFunction); 

Mit dieser

google.maps.event.addListener(mapClass.map, 'zoom_changed', _.throttle(myFunction,100));