2013-01-17 11 views
12

questa potrebbe essere una domanda strana ...Google Maps Api: imposta il centro della mappa su un offset in pixel?

sto utilizzando l'API Google Maps per incorporare mappe personalizzate sulla mia pagina web. Passo le coordinate lon/lat a una funzione e una mappa viene disegnata con questo punto "centrato" nel mezzo. (Mia mappa telaio è come 300px alto, in modo che il marcatore è di circa a 150 pixel)

Dal momento che sto utilizzando anche personalizzato infoWindows/Boxes mi piacerebbe spostare il centro della mappa un po 'giù.

So che potrei impostare un centro separato nelle coordinate lon/lat ma non è quello che sto cercando. Ciò richiederebbe che ogni mappa passasse lungo le coordinate del marker e le coordinate del centro che vorrei avere.

Mi piacerebbe che fosse più semplice.

È possibile spostare il centro della mappa a pochi pixel in basso?

Come center: +30px, :)

var latlng = new google.maps.LatLng(ll[0], ll[1]); // latitude and longitude 
    var options = { 
    zoom: zoom, 
    //center: c, 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    mapTypeControl: false, 
    disableDefaultUI: true, 
    scrollwheel: scroll, 
    streetViewControl: false, 
    navigationControlOptions: { 
     style: google.maps.NavigationControlStyle.SMALL 
    } 
} 

Qualsiasi idea di come potrei farlo? Qualche trucco o idea?

+0

La risposta a questa domanda potrebbe aiutare: http://stackoverflow.com/questions/2488999/google-maps-how-to-prevent-infowindow- from-shifting-the-map – Marcelo

+0

Bene, nel mio caso la finestra è già visibile al caricamento della pagina. Non devo fare clic sull'indicatore in modo che "autoPan" non influenzi realmente il mio problema. – matt

+0

autoPan fa riferimento alla mappa che viene spostata per ospitare InfoWindow quando si apre, quindi non dovrebbe fare alcuna differenza se il marker è già visibile. È comunque facile spostare il centro di alcuni pixel, ma non ho il tempo adesso. Pubblicherò un pezzo di codice più tardi, se la domanda è ancora irrisolta. – Marcelo

risposta

28

chiamata panBy metodo della mappa

mapObject.panBy(0,30) 
+0

Perfetto. Esattamente quello che stavo cercando. – matt

+3

HaHa, buona soluzione! (+ 1). Stavo per usare la proiezione e fare qualcosa inutilmente complicato. Hai bisogno di più caffè! ;-) – Marcelo

Problemi correlati