我正在使用流星项目(1.5.1)并使用mdg:geolocation@1.3.0,我正在尝试获取Geolocation.currentLocation()的值,但它给了我null值,行为是一直都不一样,有时它会给我零值,有时给我正确的价值。
我已经研究了很长时间,但还没有得到解决方案,如果可能的话请提供meteor@1.5.1的解决方案并使用mdg:geolocation包。
提前致谢...
答案 0 :(得分:0)
MDG已实施mdg:geolocation
用于连续地理定位,此Meteor包中的函数返回活动变量。您可以这样使用包(例如):
// Continous geolocation with mdg:geolocation
// This code will run every time user location changes.
Tracker.autorun(() => {
const position = Geolocation.currentLocation();
Tracker.nonreactive(() => {
if (position) {
Meteor.call('user.update.position', position);
}
});
});
如果您不需要连续的地理定位,您可以使用javascript方法而不是meteor包。有关windows.navigator.geolocation
的其他选项,请参阅this answer。在这种情况下,您可能需要添加cordova-plugin-geolocation
,以防您构建Android或iOS应用
// Navigation geolocation to get geolocation only once
let errorCallback;
let successCallback;
successCallback = position => Meteor.call('user.update.position', position);
errorCallback = err => console.log(err);
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, {
maximumAge: 60000,
timeout: 20000
});