我已經將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