Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConstantin Shalnev <c.shalnev@corp.mail.ru>2015-07-30 11:04:23 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 03:06:52 +0300
commit3eea7aee093246f7be3544ae16f1202eef481a91 (patch)
tree1e291d5dd0b6b9bb48106e3ee39517e42b052c03 /routing/features_road_graph.cpp
parent948ec1575782df3db47e03276e8a57405e4e0438 (diff)
Use smaller spatial extent to lookup connected features
Diffstat (limited to 'routing/features_road_graph.cpp')
-rw-r--r--routing/features_road_graph.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/routing/features_road_graph.cpp b/routing/features_road_graph.cpp
index fa7e835acf..65e5b039bc 100644
--- a/routing/features_road_graph.cpp
+++ b/routing/features_road_graph.cpp
@@ -20,7 +20,7 @@ namespace
{
uint32_t constexpr kPowOfTwoForFeatureCacheSize = 10; // cache contains 2 ^ kPowOfTwoForFeatureCacheSize elements
-double constexpr kReadCrossEpsilon = 1.0E-4;
+double constexpr kMwmRoadCrossingRadiusMeters = 2.0;
double constexpr kMwmCrossingNodeEqualityRadiusMeters = 100.0;
@@ -162,10 +162,8 @@ void FeaturesRoadGraph::ForEachFeatureClosestToCross(m2::PointD const & cross,
CrossEdgesLoader & edgesLoader) const
{
CrossFeaturesLoader featuresLoader(*this, edgesLoader);
- m_index.ForEachInRect(featuresLoader,
- m2::RectD(cross.x - kReadCrossEpsilon, cross.y - kReadCrossEpsilon,
- cross.x + kReadCrossEpsilon, cross.y + kReadCrossEpsilon),
- GetStreetReadScale());
+ m2::RectD const rect = MercatorBounds::RectByCenterXYAndSizeInMeters(cross, kMwmRoadCrossingRadiusMeters);
+ m_index.ForEachInRect(featuresLoader, rect, GetStreetReadScale());
}
void FeaturesRoadGraph::FindClosestEdges(m2::PointD const & point, uint32_t count,
@@ -228,10 +226,8 @@ void FeaturesRoadGraph::GetJunctionTypes(Junction const & junction, feature::Typ
types = typesHolder;
};
- m_index.ForEachInRect(f,
- m2::RectD(cross.x - kReadCrossEpsilon, cross.y - kReadCrossEpsilon,
- cross.x + kReadCrossEpsilon, cross.y + kReadCrossEpsilon),
- GetStreetReadScale());
+ m2::RectD const rect = MercatorBounds::RectByCenterXYAndSizeInMeters(cross, kMwmRoadCrossingRadiusMeters);
+ m_index.ForEachInRect(f, rect, GetStreetReadScale());
}
void FeaturesRoadGraph::ClearState()