All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PlaceNameLabelAnchorCategoryMapper.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "PlaceNames.h"
6 #include "IPlaceNameLabelAnchorCategoryMapper.h"
7 #include "Types.h"
8 #include "LabelAnchorCategory.h"
9 
10 #include <map>
11 
12 namespace Eegeo
13 {
14  namespace Resources
15  {
16  namespace PlaceNames
17  {
19  {
20  public:
22  const Labels::LabelLayer::IdType& labelLayerId);
23 
25 
26  const Labels::LabelAnchorCategory* GetAnchorCategory(int cellLevel, const std::string& placeNameCategory) const;
27 
28  private:
29  typedef std::map<std::string, Labels::LabelAnchorCategory::IdType> PlaceNameCategoryToAnchorCategoryId;
30 
31  void RegisterLabelAnchorCategories(const PlaceNameCategoryToAnchorCategoryId& categoryToAnchorCategoryId, int minLevel, int maxLevel);
32  void UnregisterLabelAnchorCategories(const PlaceNameCategoryToAnchorCategoryId& categoryToAnchorCategoryId);
33  const PlaceNameCategoryToAnchorCategoryId& GetMapForCellLevel(int cellLevel) const;
34 
35  Labels::ILabelAnchorCategoryRepository& m_labelAnchorCategoryRepository;
36  const Labels::LabelLayer::IdType m_labelLayerId;
37 
38  PlaceNameCategoryToAnchorCategoryId m_placeNameCategoryToAnchorCategoryIdLod0;
39  PlaceNameCategoryToAnchorCategoryId m_placeNameCategoryToAnchorCategoryIdLod1;
40  PlaceNameCategoryToAnchorCategoryId m_placeNameCategoryToAnchorCategoryIdLod2;
41  };
42  }
43  }
44 }
45