Bu sorguyu MongoDB'de başlattığımda, 500 km civarındaki tüm yerleri belirtilen koordinatlara alıyorum. Fakat belirtilen koordinatlar ile sonuç konumu arasındaki kesin mesafeyi bilmek istiyorum. Ben de belirtilen koordine gelen bu yerin mesafesini bilmek istiyorumMongoDB iki nokta arasındaki baskı mesafesi
{
"_id" : ObjectId("565172058bc200b0db0f75b1"),
"type" : "Feature",
"geometry" : {
"type" : "Point",
"coordinates" : [
-80.148826,
25.941116
]
},
"properties" : {
"Name" : "Anthony's Coal Fired Pizza",
"Address" : "17901 Biscayne Blvd, Aventura, FL"
}
}
: gibi
db.new_stores.find({ "geometry": { $nearSphere: { $geometry: { type: "Point", coordinates: [ -81.093699, 32.074673 ] }, $maxDistance: 500 * 3963 } } }).pretty()
My Çıktı görünüyor. Geometri üzerinde 2dsphere indeksi oluşturdum.
Çok teşekkürler, mükemmel çalışıyor. Neden 1609 ile çarptığını bilmek merak ediyor musun? – SiMemon
@SiMemon Bir mil 1609 metre ve distanceMultiplier üzerinde tersi/tersi olduğundan. Kullandığınız 3963 sayısı, "radyan" dönüşümünün, GeoJSON nokta koordinatları ile kullanıldığında yanlış olduğu mil yönüne dönüştürülmesidir. Radyanlar yalnızca hem depolamada hem de sorguda kullanılır ve "eski koordinat çiftleri" kullanılır. –