gmaps4rails масштабирует один маркер

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

Прочитав связанный вопрос, я добавил это код в мой файл javascript:

$(function() {

//to address the problem with the zoom being set to maximum when there's only one marker
  Gmaps.map.callback = function() {
    console.log("in callback");
    if (Gmaps.map.markers.length == 1) {
     console.log("only one marker");
     //only one marker, choose the zoom level you expect
     Gmaps.map.map.setZoom(12);
    }
    else{
     //more than one marker, let's auto_zoom
     console.log("more markers");
     Gmaps.map.map_options.auto_zoom = true;
     Gmaps.map.adjustMapToBounds();
    }
  }
});

И когда я читаю вывод консоли (веб-инспектор Safari), я получаю как "in callback", так и "only one marker", но карта не увеличивается. С другой стороны, когда я вручную набираю Gmaps.map.map.setZoom(12) в консоли, она уменьшается.

Может быть, есть какой-то другой обратный вызов, который вызывается после этого? Или я должен поместить этот код где-то еще?


person Petr Smejkal    schedule 24.01.2012    source источник
comment
Кстати, я также пытался поместить его вне метода jQuery dom ready, я даже пробовал метод, упомянутый в инструкциях на github: gmaps4rails_callback() = function() {... и это тоже не сработало (но это более старый версия апи как я понимаю)...   -  person Petr Smejkal    schedule 24.01.2012
comment
Странный. Вы пробовали «Gmaps.map.map.setZoom (12);» прямо в консоли?   -  person apneadiving    schedule 25.01.2012
comment
ты когда-нибудь это понял? У меня точно такая же проблема.   -  person nodrog    schedule 16.07.2014