/ / पता लगाएं कि क्या बिंदु निर्दिष्ट बहुभुज MongoDB में निहित है - नोड। जेएस, मोंगोडब

पता लगाएं कि निर्दिष्ट पॉलीगॉन MongoDB - node.js, mongodb में बिंदु निहित है या नहीं

मेरे पास mongoDB दस्तावेज़ है जो वर्तमान वाहन की स्थिति "s" GPS "फ़ील्ड का प्रतिनिधित्व करता है

{
"_id" : ObjectId("565564e2f3e3f5bd2bdfad18"),
"vehicleId" : 6521,
"time" : 1448389800,
"GPS" : "18.55419790592852,73.80579963326454",
"readings" : {
"RPM" : {
"value" : 1000
},
"Speed" : {
"value" : 40
}
}
}

मुझे यह खोजने की जरूरत है कि क्या यह प्रविष्टि सह-निर्देश द्वारा निर्दिष्ट बहुभुज के अंदर आती है:

{lat: 18.554321, lng: 73.805231},
{lat: 18.553838, lng: 73.804936},
{lat: 18.553584, lng: 73.806524},
{lat: 18.554240, lng: 73.806546},
{lat: 18.554321, lng: 73.805231}

दस्तावेज़ में मौजूद GPS फ़ील्ड को संदर्भित करके।

मैंने निम्नलिखित क्वेरी के साथ प्रयास किया लेकिन मुझे कोई परिणाम नहीं मिल रहा है:

db.data26.find(
{
"GPS": {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [ [ [ 73.805231, 18.554321 ], [ 73.804936, 18.553838 ], [ 73.806524, 18.553584 ], [ 73.806546, 18.554240 ], [ 73.805231, 18.554321 ] ] ]
}
}
}
}
);

किसी भी तरह की सहायता को आभार समझेंगे

उत्तर:

उत्तर № 1 के लिए 1

आपका GPS फ़ील्ड मान स्ट्रिंग है

"जीपीएस": "18.55419790592852, 73.80579963326454"

हो सकता है कि जियोविथिन का उपयोग करने के लिए आपका जीपीएस सही क्रम वाला एक सरणी होना चाहिए [long, lat] इस तरह: [73.80579963326454, 18.55419790592852]