From 72c41aa96f322d1ea06888b4ad4bf48078874409 Mon Sep 17 00:00:00 2001 From: Arne H Juul Date: Mon, 31 Jan 2022 14:38:59 +0000 Subject: add extra output with distance in km --- searchlib/src/vespa/searchlib/features/distancefeature.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'searchlib') diff --git a/searchlib/src/vespa/searchlib/features/distancefeature.cpp b/searchlib/src/vespa/searchlib/features/distancefeature.cpp index 518ade2a8f5..57fa5fc7cee 100644 --- a/searchlib/src/vespa/searchlib/features/distancefeature.cpp +++ b/searchlib/src/vespa/searchlib/features/distancefeature.cpp @@ -135,10 +135,15 @@ DistanceExecutor::DistanceExecutor(GeoLocationSpecPtrs locations, void DistanceExecutor::execute(uint32_t docId) { - outputs().set_number(0, calculateDistance(docId)); + static constexpr double earth_mean_radius = 6371.0088; + static constexpr double deg_to_rad = M_PI / 180.0; + static constexpr double km_from_internal = 1.0e-6 * deg_to_rad * earth_mean_radius; + feature_t internal_d = calculateDistance(docId); + outputs().set_number(0, internal_d); outputs().set_number(1, _best_index); outputs().set_number(2, _best_y * 1.0e-6); // latitude outputs().set_number(3, _best_x * 1.0e-6); // longitude + outputs().set_number(4, internal_d * km_from_internal); // km } const feature_t DistanceExecutor::DEFAULT_DISTANCE(6400000000.0); @@ -178,6 +183,7 @@ DistanceBlueprint::setup_geopos(const IIndexEnvironment & env, describeOutput("index", "Index in array of closest point"); describeOutput("latitude", "Latitude of closest point"); describeOutput("longitude", "Longitude of closest point"); + describeOutput("km", "Distance in kilometer units"); env.hintAttributeAccess(_arg_string); return true; } -- cgit v1.2.3