Todos los productos
Search
Centro de documentos

:distance

Última actualización: Sep 05, 2026

Compatibilidad

Esta función se puede utilizar en expresiones de filtro, ordenamiento y fórmulas.

You must configure the document fields used as function parameters as an index or a property. For more information, see the relevant function documentation.

distance: Calcula la distancia esférica entre dos puntos. Se utiliza comúnmente para cálculos de distancia en servicios basados en ubicación (LBS).

  1. Notas de uso:

  2. distance(longitude_a, latitude_a, longitude_b, latitude_b, output_name)

  3. Parámetros:

    • longitude_a: La longitud del punto A. Este parámetro debe ser un campo de tipo punto flotante.

    • latitude_a: La latitud del punto A. Este parámetro debe ser un campo de tipo punto flotante.

    • longitude_b: La longitud del punto B. Este parámetro puede ser un campo de tipo punto flotante o un valor establecido en el kvpairs clause de la consulta. El valor debe ser un número de punto flotante.

    • latitude_b: La latitud del punto B. Este parámetro puede ser un campo de tipo punto flotante o un valor establecido en el kvpairs clause de la consulta. El valor debe ser un número de punto flotante.

    • output_name: Opcional. El nombre para el valor de distancia devuelto. Puede omitir este parámetro si no es necesario devolver el valor de distancia.

  4. El valor devuelto es de tipo float.

  5. La distancia en kilómetros.

  6. Escenarios de uso

  7. Escenario 1: Buscar restaurantes llamados "Grandma's Home" que se encuentren a menos de 10 km de un usuario ubicado en las coordenadas (120.34256, 30.56982). Los resultados se ordenan por distancia, del más cercano al más lejano. En este escenario, lon y lat son campos del documento que almacenan las coordenadas del restaurante. Debe configurar estos campos como propiedades.

  8. # Usage in a sort clause
    query=default:'Grandma's Home'&&
    filter=distance(lon,lat,"120.34256","30.56982")<10&&
    sort=+distance(lon,lat,"120.34256","30.56982")
    
    # Usage for fine sort
    You can also sort by distance by passing the user's coordinates in the kvpairs parameter.
    kvpairs=longitude_in_query:120.34256,latitude_in_query:30.56982
    Fine sort expression: distance(longitude_in_doc, latitude_in_doc, longitude_in_query, latitude_in_query, distance_value)

Notas:

  • Los campos utilizados como parámetros de la función deben configurarse como propiedades.

  • El parámetro output_name solo se puede usar en una expresión de ordenamiento fino. No es compatible con cláusulas de filtro u ordenamiento. Cuando especifique el parámetro output_name, el valor de distancia se devuelve en el nodo variableValue. Este nodo solo está disponible si el formato de devolución se establece en xml o fulljson. Puede configurar el formato de devolución mediante el parámetro format en la cláusula config.