From 935714bf58b08d92705568da89ffe1663768c8a9 Mon Sep 17 00:00:00 2001 From: chakradhar pogiri Date: Fri, 19 Jun 2020 13:53:57 +0530 Subject: [PATCH] Fix to get precise value of distance in location_get_distance Change-Id: I41efe259d13df4d3f5dbbe32ccc12cfc8edcd6c8 --- location/manager/location-boundary.c | 2 +- location/manager/location-position.c | 4 ++-- location/manager/location-position.h | 2 +- location/manager/location-signaling-util.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/location/manager/location-boundary.c b/location/manager/location-boundary.c index 197ccaa..a5391ac 100644 --- a/location/manager/location-boundary.c +++ b/location/manager/location-boundary.c @@ -216,7 +216,7 @@ location_boundary_if_inside(LocationBoundary *boundary, LocationPosition *positi case LOCATION_BOUNDARY_CIRCLE: { LocationPosition center; - gulong distance = 0; + double distance = 0; center.latitude = boundary->circle.center->latitude; center.longitude = boundary->circle.center->longitude; diff --git a/location/manager/location-position.c b/location/manager/location-position.c index 3c1374b..0676704 100644 --- a/location/manager/location-position.c +++ b/location/manager/location-position.c @@ -96,7 +96,7 @@ location_position_copy(const LocationPosition *position) /* Vincenty formula. WGS-84 */ EXPORT_API int -location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2, gulong *distance) +location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2, double *distance) { g_return_val_if_fail(pos1, LOCATION_ERROR_PARAMETER); g_return_val_if_fail(pos2, LOCATION_ERROR_PARAMETER); @@ -161,7 +161,7 @@ location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2 cal2 / 6.0 * cos_2sigma * (-3.0 + 4.0 * sin_sigma * sin_sigma) * (-3.0 + 4.0 * cos_2sigma * cos_2sigma))); cal_dist = b * cal1 * (sigma - delta_sigma); - *distance = (gulong) cal_dist; + *distance = cal_dist; return LOCATION_ERROR_NONE; diff --git a/location/manager/location-position.h b/location/manager/location-position.h index 5ad30b9..36e12cd 100644 --- a/location/manager/location-position.h +++ b/location/manager/location-position.h @@ -147,7 +147,7 @@ LocationPosition *location_position_copy(const LocationPosition *position); * * Please refer #LocationError for more information. */ -int location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2, gulong *distance); +int location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2, double *distance); /** * @brief Change position string to latitude and longitude integer. diff --git a/location/manager/location-signaling-util.c b/location/manager/location-signaling-util.c index 7f5ea8a..16ec240 100644 --- a/location/manager/location-signaling-util.c +++ b/location/manager/location-signaling-util.c @@ -143,7 +143,7 @@ distance_based_position_signaling(LocationObject *obj, guint32 signals[LAST_SIGN *prev_acc = location_accuracy_copy(cur_acc); } else { - gulong distance; + double distance; int ret = location_get_distance(*prev_pos, cur_pos, &distance); if (ret != LOCATION_ERROR_NONE) { LOCATION_LOGE("Fail to get distance"); -- 2.7.4