2014-09-26 6 views
5

Secondo Google Map documentation. In IPhoneZoom in google map api 3 [ios]

Lo zoom viene eseguito con un pizzico di due dita.

Così Quando si tocca le dita sullo schermo e poi sposto Cartina Come ingrandita, ma dopo che, quando ho comunicato le dita dallo schermo poi lo zoom che vedo prima che la mappa ricarica è molto di più che lo zoom reale che rende.

Attualmente, sto testando che il IPhone 5 con ios 7.1.2 e IPhone 4S con ios 8

Sto usando jQuery Mobile Framework nella mia app e la mappa è generato in modo dinamico. (quando creo la mappa con valori fissi allora funziona bene)

Ho creato il violino in cui è possibile vedere lo stesso problema. Link

Alcune foto del mio problema prima mappa immagine si apre

first

Seconda foto quando provo per ingrandire la mia mappa con pizzico dito.

second picture

Terzo immagine quando ho liberato il mio dito dallo schermo.

third picture

quindi non può mantenere il suo livello di zoom che mostrano nella seconda foto. Come risolvere questo problema

+0

pinch zoom non restituisce livello di zoom attuale, perché le piastrelle non vengono caricati durante l'azione di zoom. Se si 'console.log (mapClass.map.getZoom());' otterrete il livello di zoom dopo che lo zoom con pinch è finito. – Omar

+0

in caso di 'webapp' solo? Perché nell'app per mappe già installata in 'IPhone' funziona in questo modo. – Blu

+0

L'esempio sta eseguendo lo zoom correttamente per la documentazione di Google. Sembra che tu voglia semplicemente ingrandire l'immagine della mappa, piuttosto che caricare nuove tessere al livello di zoom finale. Forse una sorta di zoom sul viewport funzionerebbe? –

risposta

1

Si prega di provare a sostituire:

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

con:

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

Speranza che aiuta.

+0

non è cambiato nulla. Lo stesso problema esiste – Blu

+0

Oops! fresco lo guarderò di nuovo –

0

Ho risolto questo problema (o forse molto simile) comprimendo il lavoro svolto nel listener zoom_changed. Ho usato lodash throttle.

sostituire questo

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

Con questo

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