1 #ifndef OSMSCOUT_IMPORT_GENWAYWAYDAT_H 2 #define OSMSCOUT_IMPORT_GENWAYWAYDAT_H 23 #include <osmscout/import/ImportFeatures.h> 26 #include <unordered_map> 45 class WayWayDataGenerator
CLASS_FINAL :
public ImportModule
52 struct RestrictionData
54 std::multimap<OSMId,TurnRestrictionRef> restrictions;
57 using RouteMemberData = std::multimap<OSMId,OSMId>;
58 using WayList = std::list<RawWayRef>;
59 using WayListPtr = WayList::iterator;
60 using WayListPtrList = std::list<WayListPtr>;
61 using WaysByNodeMap = std::unordered_map<OSMId, WayListPtrList>;
63 bool ReadRouteMemberData(
const ImportParameter& parameter,
64 const TypeConfig& typeConfig,
66 RouteMemberData& routeMembers);
68 bool ReadTurnRestrictions(
const ImportParameter& parameter,
70 RestrictionData& restrictions);
72 bool WriteTurnRestrictions(
const ImportParameter& parameter,
74 const RestrictionData& restrictions);
76 bool GetWays(
const ImportParameter& parameter,
78 const TypeConfig& typeConfig,
81 std::vector<std::list<RawWayRef> >& ways);
83 void UpdateRestrictions(RestrictionData& restrictions,
87 bool IsRestricted(
const RestrictionData& restrictions,
92 std::list<RawWayRef>& ways,
93 RestrictionData& restrictions,
94 RouteMemberData& routeMembers);
96 bool SplitLongWays(
Progress& progress,
97 std::list<RawWayRef>& ways,
101 const TypeConfig& typeConfig,
103 uint32_t& writtenWayCount,
105 const RawWay& rawWay);
107 bool HandleLowMemoryFallback(
Progress& progress,
108 const TypeConfig& typeConfig,
109 FileScanner& scanner,
110 const TypeInfoSet& types,
112 uint32_t& writtenWayCount,
116 void GetDescription(
const ImportParameter& parameter,
117 ImportModuleDescription& description)
const override;
120 const ImportParameter& parameter,
int64_t OSMId
Definition: OSMScoutTypes.h:34
static const char *const TURNRESTR_DAT
Definition: GenWayWayDat.h:49
static const char *const WAYWAY_TMP
Definition: GenWayWayDat.h:48
#define CLASS_FINAL
Definition: Compiler.h:26
Definition: CoordDataFile.h:33
Definition: Progress.h:34
std::shared_ptr< TypeConfig > TypeConfigRef
Definition: TypeConfig.h:1227
std::unordered_map< OSMId, Point > ResultMap
Definition: CoordDataFile.h:42