Meteor.js и Google Maps

я уже включил карты API в свой проект. Теперь я хочу показать некоторые маркеры на моей карте. Я инициализирую свою карту в функции запуска:

Meteor.startup(function() {
...
var mapOptions = {
  zoom: 8,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};

Map = new google.maps.Map(document.getElementById("map-canvas"),
  mapOptions);  

Чем я устанавливаю центр карты при рендеринге

Template.mapPostsList.rendered = function() {
var p2 = Session.get('location');

Map.setCenter(new google.maps.LatLng(p2.lat, p2.lng));
var marker = new google.maps.Marker({
    position: new google.maps.LatLng(p2.lat, p2.lng),
    title:'Meine Position'
  });
marker.setMap(Map);   

До сих пор все работает отлично. Несмотря на то, что у меня есть PostCollection, который содержит некоторые координаты для меня. У меня есть функция публикации и подписки. Теперь я хочу показать свои сообщения с помощью маркеров на карте.

Моей первой идеей было сделать это в моей отрисованной функции. Проблема заключается в том, что при начальной загрузке сообщения не отображаются, поскольку моя локальная коллекция (клиентская часть) не содержит сообщений. Загрузка сообщений с сервера занимает некоторое время.

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

Template.mapPostsList.helpers({
posts: function() {
   var allPosts = Posts.find();
   allPosts.foreach(function(post) {
      create marker and attach it to the map
      ....
      marker.setMap(Map);
   })

Проблема в том, что моя переменная карты не определена. Есть ли способ определить его в глобальном масштабе? Почему я могу использовать переменную Map в моей визуализированной функции? Несмотря на то, что мне не нравится мой подход к вводу маркеров с помощью вспомогательной функции или это обычный способ?

Может ли кто-нибудь дать мне подсказку, как решить мою проблему?

Ответы на вопрос(2)

Ваш ответ на вопрос