2012-10-18 7 views
6

Sto provando a visualizzare GoogleMap(Google maps V3 JS) in UIWebView(ios6).
ma,
Quando si sposta la mappa in Webview, evento senza incendio center_changed.
La mappa dello spostamento è stata completata, incendio dell'evento.
Perché?
...
Qualcuno mi ha detto pagina:
http://gmaps-samples-v3.googlecode.com/svn/trunk/map_events/map_events.html
Mac' accesso Safri - fuoco center_changed mentre la mappa è in movimento.
iOS6 Accesso Safri - la mappa delle mosse è completa, incendio center_changed.

...
Desidero conoscere i Center-Cordinates della mappa durante lo spostamento.
Per favore dimmi un buon modo.
Google maps V3 JS non succede "center_changed" da UIWebView iOS6 (iPhone)

`<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>Google Maps JavaScript API v3 Example: iPhone Geolocation</title> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
var map; 
var moveCenterLat; 
var moveCenterLng; 

function initialize() { 
    var myOptions = { 
    zoom:reqZoomLevel, 
    disableDefaultUI:true, 
    draggable:true, 
    keyboardShortcuts:false, 
    scrollwheel:false, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

google.maps.event.addListener(map, 'center_changed', function(){ 
    var mce = map.getCenter(); 
    moveCenterLat = mce.lat(); 
    moveCenterLng = mce.lng(); 
}); 

} 
</script> 
</head> 
<body style="margin:0px; padding:0px;" onload="initialize()"> 
<div id="map_canvas" style="width:100%; height:100%"></div> 
</body> 
</html>` 

risposta

-1

suona come si desidera che l'evento drag, non center_changed. Dal Google Maps Javascript API V3 Reference:

trascinamento: questo evento viene ripetutamente sparato mentre l'utente trascina la mappa.

Qualcosa di simile a questo:

google.maps.event.addListener(map, 'drag', function(){ 
    var mce = map.getCenter(); 
    moveCenterLat = mce.lat(); 
    moveCenterLng = mce.lng(); 
}); 

Edit: Sembra mappa limiti non vengono più aggiornati durante il trascinamento, quindi anche se l'evento di trascinamento fa fuoco mentre la mappa viene trascinato, entrambi getCenter() rendimenti le coordinate della mappa all'avvio del trascinamento. Grazie a @Zubair per averlo indicato.

+1

Questo non è corretto mentre il trascinamento si attiva quando la mappa viene spostata, lat e lng non sono aggiornati e sono in realtà i valori all'inizio dell'operazione di trascinamento – Zubair

+0

@Zubair: questo sicuramente usato per funzionare, ma tu sei corretto, non si sta più aggiornando. Guarda il violino qui http://jsfiddle.net/lazd/ReLf7/ – lazd

1

Questo è qualcosa che non funziona su google maps su dispositivi IOS. Il center_changed viene attivato quando la mappa viene trascinata, ma il centro non si aggiorna fino al completamento del trascinamento. Quindi la risposta è "no", non puoi farlo.