paio di cose da prendere nota di qui, semplicemente usando .focus()
o innescando un'azione click sull'elemento #map
div non farà il trucco, perché quelle azioni hanno luogo prima che la mappa viene effettivamente reso sul DOM. Quindi, la prima cosa da riconoscere è l'uso dell'evento tilesloaded
fornito dalla libreria di google maps.
google.maps.event.addListener(map, 'tilesloaded', function() {
//do actions
});
La seconda cosa sono venuto a scoprire è che non si può semplicemente aggiungere $('#map').click()
all'interno del listener di eventi. Questo perché lo #map
è il contenitore div - lo script di google maps rende in realtà un intero gruppo di altre div in cima ad esso (che hanno indici z più alti e sono anche ciò che effettivamente detiene i riquadri della mappa). Con un po 'di pirateria informatica in giro, e jQuery è possibile restringere il div che contiene le piastrelle e attivare l'evento click su quel codice di div ... risultante era:
google.maps.event.addListener(map, 'tilesloaded', function() {
$("#map").children().children().first().children().trigger('click');
});
ho usato gli strumenti Dev di Chrome per restringere fino al div contenente le tessere e usato il metodo children()
di jquery per passare a quel div da #map
. Se infili quel codice nella tua funzione di init, dovresti essere pronto. Ecco un JSfiddle con un esempio funzionante della soluzione.
fonte
2012-10-25 01:55:57
intendi il controllo della panoramica della mappa con i tasti freccia sulla tastiera? –
La risposta a questa domanda può aiutare: http://stackoverflow.com/questions/9195814/google-maps-v3-keyboard-accessibility/9218055#9218055 – Marcelo