问题
I'm new to the mongodb geolocation features.
I stored some polygons that represent the country borders in a database along with the country name. Now what i would like to do is checking which country a point is in. For example if i give my own geolocation i would like to get the country where i am.
Is there a way to do it with mongodb? Maybe with geoWithin?
Thank you
回答1:
You must store your location data like this schema:
{"loc":
{"coordinates":[
[
[1.0,1.0],
[1.0,10.0],
[10.0,10.0],
[10.0,1.0],
[1.0,1.0]
]
],
"type":"Polygon"
}
}
and then send $geoIntersects
queries
db.polygons.find({"loc":{"$geoIntersects":{"$geometry":{"type":"Point", "coordinates":[x, y]}}}}
回答2:
You have to use $geoIntersects
for that.
db.features.find({mystoredpolygon:{$geoIntersects:{$geometry:{type:'Point', coordinates:[22,38]}}}})
回答3:
Yes, you can use $geoWithin for the check, provided you define the countries as polygons using GeoJSON
. For that, try this GitHub repo.
来源:https://stackoverflow.com/questions/15866490/mongodb-check-if-a-point-is-inside-a-stored-polygon