2016-03-30 9 views
0

私は中心点から200メートル以内にあるすべてのドキュメントを取得しようとしていますが、私は、このエラーが生じています上で動作していない使用して

Exception from sub getLocNearMe id hg3jRDv8onsZEGvBM Error: Exception while polling query {"collectionName":"Col_Location","selector":{"loc":{"$near":{"$geometry":{"type":"Point","coordinates":[1.3852457,103.88112509999999]},"$maxDistance":200}}},"options":{"transform":null}}: $near requires a point, given { type: "Point", coordinates: [ 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] 
     } 
    }) 

答えて

1

「ポイント」をhttp://geojsonlint.com/でテストすると、いくつかの問題が発生します。それはあなたのキーが引用文字列(私は流星があなたのために扱うと思う)だけでなく、あなたの座標が反転されている(緯度/経度)ことを要求しているようです。

{ 
    "type": "Point", 
    "coordinates": [ 103.8811251, 1.3852457 ] 
} 
+0

はいあなたは私の緯度LNGはフリップであることを右です:これは有効にGeoJSON結果を与えるようにあなたがのサンプル置く

! – phongyewtong

+0

@phongyewtong聞いてよかったら、あなたの問題を解決したら答えを受け入れてください;) – Tristan

関連する問題