Búsqueda geográfica

Añade un campo geopoint a un modelo y podrás preguntar qué registros están más cerca de un punto, ordenados por distancia. Las consultas funcionan con puntos y un radio.

Campos geopoint

Un campo geopoint guarda una latitud y una longitud, y la consola lo edita con un selector de mapa. Un modelo puede tener varios, cada uno un punto con nombre propio. El punto se indexa en la misma transacción que la escritura del registro, así que un registro se puede encontrar por ubicación en cuanto se guarda.

Lo más cercano a un punto o a un registro

searchByLocation recibe una latitud y una longitud y devuelve los registros cercanos a ese punto. findNearbyRecords recibe un registro y devuelve los más cercanos a él, sin incluir ese registro. Ambas se pueden limitar a un modelo. Los resultados llegan de más cercano a más lejano, y cada uno incluye su distancia en metros junto con el id del registro, la clave del modelo, la clave natural y el contenido.

Radio y paginación

El radio es opcional. Con él, los resultados se detienen a esa distancia. Sin él, la consulta devuelve los registros más cercanos estén donde estén. Los resultados se paginan con cursor, solo hacia adelante, 50 por página de forma predeterminada. Se rechaza una latitud fuera de -90 a 90 o una longitud fuera de -180 a 180.

Reglas de acceso y registros existentes

Para quien llama, una consulta se ejecuta bajo las reglas de acceso por fila. Añadir un campo geopoint a un modelo que ya tiene registros no indexa las filas existentes. foir geometry tiene comandos que listan los registros que faltan en el índice y los rellenan.

Solo puntos y radio

No se admiten áreas, líneas ni cuadros delimitadores.

Lee el detalle

La referencia de la CLI documenta los comandos de geometry: buscar cerca de un punto, encontrar los registros más cercanos a otro y rellenar los registros que aún no están indexados.