我希望能够根据存储在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函数的中心吗?
四个基本选项:
- 将坐标保存到Session变量中,然后稍后拾取它们
- 将坐标保存为闭包
- 将坐标保存为响应变量
- 在一个集合中保存文档中的坐标
会话变量示例:
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变量是全局作用域。如果用户有多个选项卡打开多个地图,那么你可能最终得到的所有地图都是相同的。