Как сделать так, чтобы информационное окно автоматически отображалось как открытое с помощью Google-Maps-for-Rails - PullRequest
2 голосов
/ 15 октября 2011

Я хочу отобразить карту с окном информационного окна, автоматически отображаемым для отдельного маркера на странице, очень похоже на http://code.google.com/apis/maps/documentation/javascript/examples/map-coordinates.html

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

<% content_for :scripts do %>
  <script type="text/javascript" charset="utf-8">
    Gmaps.map.callback = function() {
      if (Gmaps.map.markers.length == 1) {
        var marker = Gmaps.map.markers[0];
        var infowindow = marker.infowindow;
        infowindow.open(Gmaps.map, marker);
      }
    }
  </script>
<% end %>

Ответы [ 4 ]

2 голосов
/ 15 октября 2011

Ваш код почти идеален. За исключением того, что вместо:

 infowindow.open(Gmaps.map, marker);

Вы должны иметь:

 infowindow.open(Gmaps.map.map, marker);

Действительно, Gmaps.map - это контейнер, Gmap.map.map - это объект Google.

Я знаю, что эти имена сбивают с толку. К сожалению.

PS: обязательно ставьте этот код под вызов gmaps, по вашему мнению.

1 голос
/ 23 октября 2013

Функция обратного вызова, которая работала для меня:

Gmaps.map.callback = function() {
      function openInfoWindow(){
        var m, marker;
        marker = Gmaps.map.markers[2];
        m = marker.serviceObject;
        marker.infowindow.open(Gmaps.map.map, m);
      }
      openInfoWindow();
}
1 голос
/ 04 ноября 2011

Я пытаюсь выполнить то же самое, кроме как просто открыть первый маркер из списка маркеров. Так что код почти такой же. Я сделал то, что вы предложили, но оно не показывает информационное окно.

<%= gmaps4rails(@json) %>

<% content_for :scripts do %>
  <script type="text/javascript" charset="utf-8">
    Gmaps.map.callback = function() {
        var marker = Gmaps.map.markers[0];
        var infowindow = marker.infowindow;
        infowindow.open(Gmaps.map.map, marker);
    }
  </script>
<% end %>

Отображение карты найдено, но информационное окно не появляется после инициализации, как ожидалось! Есть идеи?

Будет

0 голосов
/ 15 октября 2011

Вы смешиваете Javascript и Ruby.Взгляните на свой отладчик javascript (вы используете один правильно? Если нет, то веб-инспектор в Chrome или safari великолепен, как и Firebug для Firefox), и вы увидите, что он жалуется.

Не видя вашегокод контроллера Я не могу дать вам слишком много подробностей, но взгляните на этот пост , и он может указать вам правильное направление.

...