我正在尝试从中心点获取距离200米范围内的所有文档,但我遇到此错误
来自sub getLocNearMe id的异常hg3jRDv8onsZEGvBM错误:异常 轮询查询时 { “集合名”: “Col_Location”, “选择器”:{ “LOC”:{ “$邻近”:{ “$几何”:{ “类型”: “点”, “坐标”:[1.3852457,103.88112509999999]}, “$ maxDistance”:200}}}, “选项”:{ “改造”:空}}: $ near需要一个点,给定{type:“Point”,坐标:[ 1.3852457,103.8811251]}
的客户机/组件/ map.jsx
navigator.geolocation.getCurrentPosition(function (pos) {
const sub = Meteor.subscribe("getLocNearMe", pos.coords.latitude, pos.coords.longitude)
Tracker.autorun(function () {
if (sub.ready()) {
Data.MarkersRawData = Col_Location.find().fetch()
}
})
})
LIB / collections.jsx
Meteor.publish("getLocNearMe", function(lng, lat) {
check(lat, Number)
check(lng, Number)
const data = Col_Location.find({
loc: {
$near: {
$geometry: {
type: "Point" ,
coordinates: [lng, lat]
},
$maxDistance: 200
}
}
})
console.log(data)
if (data) {
return data
}
return this.ready()
})
服务器/ server.jsx
Col_AllQuestion._ensureIndex({"loc": "2dsphere"})
Col_Location.insert({
loc: {
type: "Point",
coordinates: [103.8, 1.31]
}
})
答案 0 :(得分:1)
测试你" Point"与http://geojsonlint.com/有几个问题。似乎(有点挑剔)规范要求你的键被引用字符串(我认为你的流星处理),但你的坐标被翻转(纬度/长度)的事实。
以这样的方式提供样本会产生有效的GeoJSON结果:
{
"type": "Point",
"coordinates": [ 103.8811251, 1.3852457 ]
}