Quiero crear un sistema donde el usuario pueda iniciar sesión solo si el usuario se encuentra en un radio de la ubicación dada.
Estoy usando node.js, express.js, MongoDB.
¿Puede alguien guiarme qué paquetes/servicios debo usar y cómo abordo este problema?
Tienes que hacer un límite con geojson de tu área de cobertura. Para conocer la ubicación de su usuario, en primer lugar, obtenga la ubicación actual del usuario con el dispositivo que usa. almacenarlo en MongoDB. Después de obtener la latitud o la longitud del usuario, use el paquete npm de búsqueda de polígonos para identificar si el usuario está dentro del radio de su polígono o no.
Si el usuario está en la ubicación o no, puede crear una función como la siguiente:
let geoJsonMapData = { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 90.48509359359743, 23.823275544984423 ], [ 90.33422470092773, 24.011030495565834 ], [ 90.32435417175293, 23.77529123645138 ], [ 90.50283908843996, 23.580546882813223 ], [ 90.50519943237305, 23.592031281422017 ], [ 90.47208085656167, 23.80909744710711 ], [ 90.48509359359743, 23.823275544984423 ] ] ] } } ] }; const check_in_radius_or_not = (longitude, latitude) =>{ var lookup = new PolygonLookup( geoJsonMapData ); var poly = lookup.search( longitude, latitude ); if(poly){ return 1; }else{ return 0; } }Si la función devuelve 1, estarán dentro del radio y podrán iniciar sesión; de lo contrario, si devuelve 0, no estarán dentro del límite dado y no podrán iniciar sesión.