Ответ 1
Несколько вещей, которые нужно учитывать здесь, просто используя .focus()
или запуская действие click в элементе #map
div, не будет делать трюк, потому что эти действия происходят до того, как карта действительно будет отображаться в DOM. Итак, первое, что нужно признать, это использование события tilesloaded
, которое предоставляет библиотека карт google.
google.maps.event.addListener(map, 'tilesloaded', function() {
//do actions
});
Во-вторых, я пришел к выводу, что вы не можете просто добавить $('#map').click()
внутри прослушивателя событий. Это связано с тем, что, хотя #map
является контейнером div, карты google script на самом деле отображают целую кучу других div сверху (которые имеют более высокие z-индексы, а также то, что на самом деле содержит ваши карты). С небольшим количеством взлома и jquery вы можете сузить до div, который содержит плитки, и вызвать событие click на этом div... в результате получилось следующее:
google.maps.event.addListener(map, 'tilesloaded', function() {
$("#map").children().children().first().children().trigger('click');
});
Я использовал инструменты Chrome Dev, чтобы сузить до div, содержащего фрагменты, и использовать метод jquery children()
для перехода к этому div из #map
. Если вы вставляете этот код в свою функцию init, вам должно быть хорошо идти. Здесь JSfiddle с рабочим примером решения.