我已经将api映射到了我的项目中。现在我想在我的地图上显示一些标记。 我initialse在启动函数我的地图:Meteor.js和谷歌地图
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,它包含我的一些坐标。 我有一个发布和订阅功能。现在我想通过地图上的标记显示我的帖子。
我的第一个想法是在我的渲染函数中做到这一点。问题是,在初始加载没有帖子显示,因为我的localcollection(客户端)不包含任何帖子。从服务器加载帖子需要一些时间。
这就是为什么我试图建立一个帮助功能。因为如果我的帖子内容发生变化,助手会自动实现。
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变量? 尽管我不喜欢我的方法注入辅助功能我的标记或是通常的方式吗?
有人可以给我提示如何完成我的问题?
我发现了一个谷歌虽然我已经包括在头脚本标记,跟着你的脚步,任何想法是没有定义的错误? – Kjellski
也许,如果你有我的例子;) – chaosbohne
对不起,我刚刚离开了这个话题,并没有赶上。我的错。 – Kjellski