Compatibilité
Cette fonction s'utilise dans les expressions de filtre, de tri et de formule.
Configurez les champs de document utilisés comme paramètres de fonction en tant qu'index ou propriété. Pour plus d'informations, consultez la documentation relative à la fonction concernée.
distance : Calcule la distance sphérique entre deux points. Cette fonction est couramment utilisée pour les calculs de distance dans les services basés sur la localisation (LBS).
Remarques relatives à l'utilisation :
distance(longitude_a, latitude_a, longitude_b, latitude_b, output_name)
-
Paramètres :
longitude_a : Longitude du point A. Ce paramètre doit être un champ de type flottant.
latitude_a : Latitude du point A. Ce paramètre doit être un champ de type flottant.
longitude_b : Longitude du point B. Ce paramètre peut être un champ de type flottant ou une valeur définie dans la clause kvpairs de la requête. La valeur doit être un nombre flottant.
latitude_b : Latitude du point B. Ce paramètre peut être un champ de type flottant ou une valeur définie dans la clause kvpairs de la requête. La valeur doit être un nombre flottant.
output_name : Facultatif. Nom de la valeur de distance renvoyée. Omettez ce paramètre si vous n'avez pas besoin de renvoyer la valeur de distance.
La valeur de retour est un flottant.
La distance en kilomètres.
Scénarios d'utilisation
Scénario 1 : Trouver les restaurants nommés « Grandma's Home » situés à moins de 10 km d'un utilisateur aux coordonnées (120,34256, 30,56982). Les résultats sont triés par distance, du plus proche au plus éloigné. Dans ce scénario, lon et lat sont des champs du document qui stockent les coordonnées du restaurant. Configurez ces champs en tant que propriétés.
# 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)
Notes :
Les champs utilisés comme paramètres de fonction doivent être configurés en tant que propriétés.
Le paramètre output_name peut être utilisé uniquement dans une expression de tri fin. Il n'est pas pris en charge dans les clauses de filtre ou de tri. Lorsque vous spécifiez le paramètre output_name, la valeur de distance est renvoyée dans le nœud variableValue. Ce nœud est disponible uniquement si le format de retour est défini sur xml ou fulljson. Définissez le format de retour à l'aide du paramètre format dans la clause config.