从返回值到Google地图功能

时间:2015-07-31 18:19:55

标签: javascript mongodb google-maps meteor

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

我使用Meteor作为框架。在我的Template.Home.helpers中,我有以下函数来获取坐标:

memcpy(&buffer_copy, buffer + sizeof(struct ether_header), sizeof(struct ip));
struct ip *iphdr = &buffer_copy;
iphdr->ip_v;
etc.

如何将此值传递到此mapOptions函数中,同样位于同一模板助手中:

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

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

1 个答案:

答案 0 :(得分:0)

四个基本选项:

  1. 将坐标保存到 Session 变量中,然后稍后进行选择
  2. 将坐标保存到闭包
  3. 将坐标保存到无效变量
  4. 将文档中的坐标保存在集合中
  5. 会话变量示例:

    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 变量的范围是全局的。如果用户使用多个地图打开了多个选项卡,那么最终可能会使所有地图都相同。然后closure可能会更好。