模板订阅因位置失败

时间:2015-09-25 20:21:28

标签: mongodb templates meteor geolocation publish-subscribe

我有一个使用d'burles的流星应用程序:google-maps'和'mdg:geolocation'。我有一个集合中的地方列表,我正在做一个geospacial查询来查找我附近的地方,我必须在服务器上运行它,因为mini-mongo还不支持它。

我正在发布并且能够来回发送参数以缩小我对地点的搜索范围,但由于地理位置需要一秒钟来获取用户的位置,我不能立即订阅,否则位置为空并且查询将不知道该怎么做。

我认为我的问题出在我订阅的地方,

Meteor.subscribe('nearest', myLng, myLat, radius);

这是我的代码:

Template.map.onCreated(function() {
//****If i subscribe here, i get back results (if i use fixed location, geolocation won't have given me results yet)
    GoogleMaps.load();
    var self = this;
    Meteor.subscribe('nearest', myLng, myLat, );

    GoogleMaps.ready('map', function(map) {
    //****If i subscribe here, it collection count will be 0
    //I need to subscribe HERE since this is when my geolocation will be provided
      var marker;
      console.log(Mycollection.find().count());


    });
});

这是我的发布,它在服务器文件夹中运行:

Meteor.publish("nearest", function (lng, lat, dist) {
    return Mycollection.find( {loc: { $geoWithin: { $centerSphere: [ [ lng, lat ], dist/3963.2 ] } }} )
});

任何人都知道为什么第二个位置没有正确订阅,或者知道根据用户的位置获得订阅的方式?

我一直在搜索和搜索,没有运气,所以任何帮助将不胜感激!

0 个答案:

没有答案