我无法保存坐标的lat和lng。我在网络浏览器上测试,所以坐标应该可用。
{{loc.lat}}
和{{loc.lng}}
console.log(Geolocation.latLng());
时,它会返回正确的当前lat和lng:Object {lat: xxx, lng: xxx};
,然后是第二行,显示undefined
但不可点击。Exception while invoking method 'postInsert' MongoError: insertDocument :: caused by :: 16755 Can't extract geo keys from object, malformed geometry?
上,字段显示为loc: { type: "Point", coordinates: [ null, null ] }
。我已检查订单是否正确。Uncaught TypeError: Cannot read property 'lat' of null
我无法跟踪,因为没有提到有问题的行。这可能意味着loc
为空?有人可以帮我这个吗?提前谢谢你:)
以下是我的地理位置线
在客户端的submit.js中
Template.postSubmit.onCreated(function() {
this.interval = Meteor.setInterval(function (){
var location = Geolocation.latLng();
if(location) {
Session.set('location', location);
};
}, 2000);
Session.set('postSubmitErrors', {});
});
Template.postSubmit.helpers({
'loc': function () {
return Session.get('location');
}
});
答案 0 :(得分:4)
Geolocation.latLng()
触发刷新该位置,但它是异步的,因此它可能在开始时返回undefined,然后稍后返回坐标。
由于mdg:geolocation包中没有异步回调,我使用跟踪器“等待”Geolocation.latLng()
的结果:
var userGeoLocation = new ReactiveVar(null);
Tracker.autorun(function (computation) {
userGeoLocation.set(Geolocation.latLng());
if (userGeoLocation.get()) {
//stop the tracker if we got something
computation.stop();
}
});
答案 1 :(得分:-2)
我找到了解决方案。 问题在于模板中loc的结构。
coordinates: [loc.lat, loc.lng]
应该
coordinates: [loc.lng, loc.lat]
,根据Mongo的文档。