Fix GetMinDistance

This commit is contained in:
Patrick Niklaus 2014-06-30 01:18:36 +02:00
parent a3dd9c3e57
commit 1c80584206

View File

@ -143,19 +143,25 @@ class StaticRTree
return 0.; return 0.;
} }
const FixedPointCoordinate upper_left(max_lat, min_lon);
const FixedPointCoordinate upper_right(max_lat, max_lon);
const FixedPointCoordinate lower_right(min_lat, max_lon);
const FixedPointCoordinate lower_left(min_lat, min_lon);
float min_dist = std::numeric_limits<float>::max(); float min_dist = std::numeric_limits<float>::max();
min_dist = std::min(min_dist, min_dist = std::min(min_dist,
FixedPointCoordinate::ApproximateEuclideanDistance( FixedPointCoordinate::ComputePerpendicularDistance(
location.lat, location.lon, max_lat, min_lon)); upper_left, upper_right, location));
min_dist = std::min(min_dist, min_dist = std::min(min_dist,
FixedPointCoordinate::ApproximateEuclideanDistance( FixedPointCoordinate::ComputePerpendicularDistance(
location.lat, location.lon, max_lat, max_lon)); upper_right, lower_right, location));
min_dist = std::min(min_dist, min_dist = std::min(min_dist,
FixedPointCoordinate::ApproximateEuclideanDistance( FixedPointCoordinate::ComputePerpendicularDistance(
location.lat, location.lon, min_lat, max_lon)); lower_right, lower_left, location));
min_dist = std::min(min_dist, min_dist = std::min(min_dist,
FixedPointCoordinate::ApproximateEuclideanDistance( FixedPointCoordinate::ComputePerpendicularDistance(
location.lat, location.lon, min_lat, min_lon)); lower_left, upper_left, location));
return min_dist; return min_dist;
} }
@ -163,10 +169,10 @@ class StaticRTree
{ {
float min_max_dist = std::numeric_limits<float>::max(); float min_max_dist = std::numeric_limits<float>::max();
// Get minmax distance to each of the four sides // Get minmax distance to each of the four sides
FixedPointCoordinate upper_left(max_lat, min_lon); const FixedPointCoordinate upper_left(max_lat, min_lon);
FixedPointCoordinate upper_right(max_lat, max_lon); const FixedPointCoordinate upper_right(max_lat, max_lon);
FixedPointCoordinate lower_right(min_lat, max_lon); const FixedPointCoordinate lower_right(min_lat, max_lon);
FixedPointCoordinate lower_left(min_lat, min_lon); const FixedPointCoordinate lower_left(min_lat, min_lon);
min_max_dist = std::min( min_max_dist = std::min(
min_max_dist, min_max_dist,