Доступ к объекту карты Google через API Gmaps4Rails

Я успешно использую GMaps4Rails для рендеринга маркеров из модели Rails/Mongoid/Spacial, и в целом я нахожу GMaps4Rails просто невероятно крутым.

Тем не менее, одна вещь не дает мне покоя (хотя я заставил ее работать нормально): во всех примерах и ответах я видел доступ к объекту карты Google через Gmaps4Rails.map, например.

google.maps.event.addListener(Gmaps4Rails.map, 'click', function(object){ 
  alert(object.latLng);
});

(Взято из добавить маркер с помощью Google-Maps-for-Rails)

Тем не менее, я никогда не заставлял это работать. Если я запишу объект Gmaps4Rails.map в консоль, он не будет определен. Объект Gmaps.map имеет тип Gmaps4RailsGoogle, поэтому, чтобы перейти к фактической карте Google, мне нужно написать, например.

google.maps.event.addListener(Gmaps.map.map, 'click', ...)

Я создаю карту через

 = gmaps(:map_options => {"detect_location" => true, "center_on_user" => true, 
   "zoom" => 12})

Любые подсказки будут высоко оценены, так как у меня есть ноющее чувство, что я делаю что-то неправильно.

Обновление: я должен был прочитать https://github.com/apneadiving/Google-Maps-for-Rails/wiki/From-0.xx-to-1.xx


person Sami    schedule 02.09.2011    source источник


Ответы (1)


Я не вижу здесь никаких вопросов :)

Со времени моего выпуска 1.0.0 кое-что изменилось, так что да, вы находите устаревшие указания. Но вы нашли ответ, используя Gmaps.map.map.

Здесь:

  • Gmaps — это пространство имен, содержащее все карты, которые вы можете создать на своей странице.

  • все контейнеры карт находятся по идентификатору, а идентификатор по умолчанию — map (мне нравятся короткие выражения)

  • чтобы получить объект карты из контейнера карты, вы добавляете еще один .map (это немного раздражает, но я сохранил это, чтобы пользователи не рассердились)

Но все подробности по переходу с 0.xx на 1.xx можно можно найти здесь (их немного).

person apneadiving    schedule 02.09.2011
comment
Ааа, так что преобладающая документация на основе intertubes была неправильной, и я на самом деле был на правильном пути :) Большое спасибо apneadiving за то, что я стал спать намного лучше. - person Sami; 02.09.2011