Meteor.js 和谷歌地图 [英] Meteor.js and Google Maps

查看:18
本文介绍了Meteor.js 和谷歌地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在我的项目中包含了地图 API.现在我想在我的地图上显示一些标记.我在启动函数中初始化我的地图:

Meteor.startup(function() {...var mapOptions = {变焦:8,mapTypeId: google.maps.MapTypeId.ROADMAP};Map = new google.maps.Map(document.getElementById("map-canvas"),地图选项);

比我在渲染时设置地图的中心

Template.mapPostsList.rendered = function() {var p2 = Session.get('location');Map.setCenter(new google.maps.LatLng(p2.lat, p2.lng));var 标记 = 新的 google.maps.Marker({位置:新的 google.maps.LatLng(p2.lat, p2.lng),标题:'我的位置'});标记.setMap(地图);

到目前为止一切正常.尽管我有一个 PostCollection,其中包含我的一些坐标.我有一个发布和订阅功能.现在我想通过地图上的标记显示我的帖子.

我的第一个想法是在我的渲染函数中执行此操作.问题是在初始加载时不显示帖子,因为我的 localcollection(客户端)不包含任何帖子.从服务器加载帖子需要一些时间.

这就是我尝试构建辅助函数的原因.因为如果我的帖子中的某些内容发生变化,助手会自动重新加载.

Template.mapPostsList.helpers({帖子:函数(){var allPosts = Posts.find();allPosts.foreach(function(post) {创建标记并将其附加到地图....标记.setMap(地图);})

现在的问题是,我的地图变量没有定义.有没有办法在全局范围内定义它?为什么我可以在渲染函数中使用我的 Map 变量?尽管我不喜欢我用辅助函数注入标记的方法还是通常的方法?

有人可以给我提示如何解决我的问题吗?

解决方案

在我写的问题帖子中,我需要一些帮助来集成谷歌地图功能.直到现在这个问题还没有得到解答,我想请您简要介绍一下如何解决这个问题.

如何将地图集成到meteorite.js/meteorite.js中?

首先你必须将地图脚本包含在你的头部标签中

....<title>Meteor 和 Google</title><script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">

比你应该创建一个地图模板: