2016-03-30 10 views
0

Ben bir merkez noktasından 200 m mesafededir tüm doküman almaya çalışıyorum ama bu hatayı yaşıyorum çalışmıyor kullanarak

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 ] }

istemci/bileşen/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() 
}) 

sunucu/server.jsx

Col_AllQuestion._ensureIndex({"loc": "2dsphere"}) 

    Col_Location.insert({ 
     loc: { 
      type: "Point", 
      coordinates: [103.8, 1.31] 
     } 
    }) 

cevap

1

http://geojsonlint.com/ ile "Point" uygulamasının sınanması birkaç sorun çıkarır. Öyle görünüyor ki (biraz nitpicky) spec tuşlar dizeleri (sizin için meteor kolları) düşünüyorum, ancak aynı zamanda koordinatlarınızın (lat/long) çevrilmiş olması gerçeği gerektirir.

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

evet haklısınız benim lat Ing çevirmek olduğunu:

bu geçerli GeoJSON sonucunu verir gibi örneklediğiniz koymak! – phongyewtong

+0

@phongyewtong Duymak güzel, sorununuzu çözdüyse lütfen cevabı kabul edin;) – Tristan

İlgili konular