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:
authorYury Melnichek <melnichek@gmail.com>2011-04-25 05:49:24 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:16:22 +0300
commit81e732a71d79d31cd41b0c54020ae23b8f2961ea (patch)
tree83f6198330951b7d0335a2416e05f3021c041951 /indexer/scale_index_builder.hpp
parent830281b9eeb7b939676d338c505a79fc6cf6582b (diff)
Rewrite feature covering. Use a simpler approach and remove stream optimizer.
Diffstat (limited to 'indexer/scale_index_builder.hpp')
-rw-r--r--indexer/scale_index_builder.hpp38
1 files changed, 3 insertions, 35 deletions
diff --git a/indexer/scale_index_builder.hpp b/indexer/scale_index_builder.hpp
index 43f36fd73a..0708cd38f1 100644
--- a/indexer/scale_index_builder.hpp
+++ b/indexer/scale_index_builder.hpp
@@ -5,8 +5,6 @@
#include "interval_index_builder.hpp"
#include "cell_id.hpp"
-#include "../geometry/covering_stream_optimizer.hpp"
-
#include "../coding/dd_vector.hpp"
#include "../coding/file_sort.hpp"
#include "../coding/var_serial_vector.hpp"
@@ -71,7 +69,7 @@ public:
{
if (FeatureShouldBeIndexed(f))
{
- vector<int64_t> const cells = covering::CoverFeature(f, GetGeometryScale());
+ vector<int64_t> const cells = covering::CoverFeature(f, 1025);
for (vector<int64_t>::const_iterator it = cells.begin(); it != cells.end(); ++it)
m_Sorter.Add(CellFeaturePair(*it, offset));
++m_NumFeatures;
@@ -112,31 +110,6 @@ private:
SinkT & m_Sink;
};
-template <class SinkT>
-class FeatureCoveringOptimizeProxySink
-{
-public:
- FeatureCoveringOptimizeProxySink(SinkT & sink)
- : m_Sink(sink), m_Optimizer(m_Sink, 100, 10)
- {
- }
-
- ~FeatureCoveringOptimizeProxySink()
- {
- m_Optimizer.Flush();
- }
-
- void operator () (CellFeaturePair const & cellFeaturePair)
- {
- m_Optimizer.Add(cellFeaturePair.GetCell(), cellFeaturePair.GetFeature());
- }
-
-private:
- CellFeaturePairSinkAdapter<SinkT> m_Sink;
- covering::CoveringStreamOptimizer<RectId, uint32_t, CellFeaturePairSinkAdapter<SinkT> >
- m_Optimizer;
-};
-
template <class FeaturesVectorT, class WriterT>
inline void IndexScales(uint32_t bucketsCount,
FeaturesVectorT const & featuresVector,
@@ -156,16 +129,11 @@ inline void IndexScales(uint32_t bucketsCount,
{
FileWriter cellsToFeaturesWriter(tmpFilePrefix + ".c2f.sorted");
- typedef FeatureCoveringOptimizeProxySink<FileWriter> OptimizeSink;
- OptimizeSink optimizeSink(cellsToFeaturesWriter);
- typedef FileSorter<CellFeaturePair, OptimizeSink> SorterType;
- SorterType sorter(1024*1024, tmpFilePrefix + ".c2f.tmp", optimizeSink);
- /*
typedef FileSorter<CellFeaturePair, WriterFunctor<FileWriter> > SorterType;
WriterFunctor<FileWriter> out(cellsToFeaturesWriter);
SorterType sorter(1024*1024, tmpFilePrefix + ".c2f.tmp", out);
- */
- featuresVector.ForEachOffset(FeatureCoverer<SorterType>(bucket, sorter, numFeatures));
+ featuresVector.ForEachOffset(
+ FeatureCoverer<SorterType>(bucket, sorter, numFeatures));
// LOG(LINFO, ("Sorting..."));
sorter.SortAndFinish();
}