queries index geowithin example mongodb geolocation polygon

index - mongodb geospatial



Mongodb: verifica si un punto está dentro de un polígono almacenado (3)

Soy nuevo en las funciones de geolocalización mongodb.

Almacené algunos polígonos que representan las fronteras del país en una base de datos junto con el nombre del país. Ahora, lo que me gustaría hacer es verificar en qué país se encuentra un punto. Por ejemplo, si doy mi propia geolocalización, me gustaría obtener el país donde estoy.

¿Hay alguna manera de hacerlo con mongodb? Tal vez con geoWithin?

Gracias


Debe almacenar sus datos de ubicación como este esquema:

{"loc": {"coordinates":[ [ [1.0,1.0], [1.0,10.0], [10.0,10.0], [10.0,1.0], [1.0,1.0] ] ], "type":"Polygon" } }

y luego enviar consultas $geoIntersects

db.polygons.find({"loc":{"$geoIntersects":{"$geometry":{"type":"Point", "coordinates":[x, y]}}}}


Sí, puede usar $geoWithin para la comprobación, siempre que defina los países como polígonos utilizando GeoJSON . Para eso, prueba este repo de GitHub .


Tienes que usar $geoIntersects para eso.

db.features.find({mystoredpolygon:{$geoIntersects:{$geometry:{type:''Point'', coordinates:[22,38]}}}})