值从返回,到一个谷歌地图功能



我希望能够根据存储在Mongo集合中的坐标设置谷歌地图的中心

我使用Meteor作为框架。在我的模板中。home。我有以下函数来获取坐标:

mapCenter: function () {
  return (this.map); //returns -37.8136, 144.9631
}

我如何将这个值传递给这个mapOptions函数,也在同一个模板帮助器中:

mapOptions: function() {
    // Make sure the maps API has loaded
    if (GoogleMaps.loaded()) {
      // Map initialization options
      return {
        center: new google.maps.LatLng(XX.XXXX,XX.XXXX),
        zoom: 8
      };
    }
  }

我可以将mapCenter存储为变量并将其放入mapOptions函数的中心吗?

四个基本选项:

  1. 将坐标保存到Session变量中,然后稍后拾取它们
  2. 将坐标保存为闭包
  3. 将坐标保存为响应变量
  4. 在一个集合中保存文档中的坐标

会话变量示例:

mapCenter: function () {
  Session.set('coordinates',this.map);
  return (this.map); //returns -37.8136, 144.9631
}
mapOptions: function() {
    // Make sure the maps API has loaded
    if (GoogleMaps.loaded()) {
      // Map initialization options
      return {
        var coord = Session.get('coordinates');
        center: new google.maps.LatLng(coord.latitude,coord.longitude),
        zoom: 8
      };
    }
  } 

这种方法有一些限制,但是,因为你的Session变量是全局作用域。如果用户有多个选项卡打开多个地图,那么你可能最终得到的所有地图都是相同的。

最新更新