пользовательские элементы управления перекрывают информационное окно на карте Google Apiv3

Я использую Google Maps V3 API. Я добавил пользовательский элемент управления на карту. Его ширина 350px и высота 300px. Когда я открываю infoWindow на карте, пользовательский элемент управления будет перекрывать infoWindow.

есть ли способ поместить infoWindow поверх пользовательского элемента управления?


person Amit Pandey    schedule 12.07.2013    source источник
comment
Будет очень полезно ответить, если вы опубликуете фрагмент кода.   -  person sandeep    schedule 12.07.2013


Ответы (4)


Без некоторого кода в вашем вопросе, который демонстрирует вашу проблему, мы более или менее просто догадываемся, в чем ваша проблема.

Глядя на справочную документацию для google.maps.MapPanes, мы узнаем, что InfoWindow находится внутри самый верхний слой, но неясно, к какой панели относятся эти google.maps.Map.controls. .

То, что вы пытаетесь сделать, может быть невозможно по замыслу. Я бы сказал, что это было целенаправленное решение команды Google Maps, чтобы гарантировать, что элементы управления картой никогда не будут скрыты.

person André Dion    schedule 12.07.2013

Я столкнулся с аналогичной проблемой. Как упоминалось выше, нет возможности сделать это с помощью пользовательского элемента управления, хотя есть решение с использованием пользовательского наложения.

Этот ответ от SO должен дать достаточно информации для решения этой проблемы. Решение там отображает наложение над маркерами, но точно так же оно будет отображаться под слоем InfoWindow.

person Alex Filippov    schedule 05.05.2016

Нажмите карту (которая включает в себя информационные окна) перед элементами управления в открытом информационном окне и потяните ее обратно при его закрытии.

CSS:

.infoopen div[aria-label="Map"]{
 z-index:1!important;
}

js:

 google.maps.event.addListener(marker, 'click', function(event) {
  if(!infowindows[marker.myOwnTarget].anchor) var openme=true;

  $.each(markers,function(){
   infowindows[this.myOwnTarget].close();
   // show controls and legend on infowindow closing by clicking any marker
   $(".map").removeClass("infoopen");
  });

  if(openme){
   infowindows[marker.myOwnTarget].open(thamap, marker);
   // hide controls and legend on info open
   $(".map").addClass("infoopen");

   google.maps.event.addListener(infowindows[marker.myOwnTarget], 'closeclick', function () {
    // show controls and legend on close click
    $(".map").removeClass("infoopen");
   });
  }
 });
person Fanky    schedule 31.03.2021

Вы спросили: «Есть ли способ поместить infoWindow поверх пользовательского элемента управления?». Если я правильно понимаю ваш вопрос, вам нужно добавить z-index в свойства вашего информационного окна, чтобы показать его выше/вверху пользовательского элемента управления.

Вы можете добавить приведенный ниже код, чтобы добиться этого.

var infowindow = new google.maps.InfoWindow({ 
        zIndex: 1000
      });
person sandeep    schedule 12.07.2013
comment
это не будет работать из-за того, как панели расположены слоями, если вы увеличите zindex панели информационного окна, вся карта будет помещена над элементами управления. - person chrismarx; 01.02.2016