1#ifndef OSMSCOUT_IMPORT_GENWAYWAYDAT_H
2#define OSMSCOUT_IMPORT_GENWAYWAYDAT_H
23#include <osmscoutimport/ImportFeatures.h>
26#include <unordered_map>
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,
117 ImportModuleDescription& description)
const override;
void GetDescription(const ImportParameter ¶meter, ImportModuleDescription &description) const override
static const char *const TURNRESTR_DAT
Definition GenWayWayDat.h:49
bool Import(const TypeConfigRef &typeConfig, const ImportParameter ¶meter, Progress &progress) override
static const char *const WAYWAY_TMP
Definition GenWayWayDat.h:48
Definition CoordDataFile.h:34
std::unordered_map< OSMId, Point > ResultMap
Definition CoordDataFile.h:42
Definition ImportModule.h:101
int64_t OSMId
Definition OSMScoutTypes.h:33
std::shared_ptr< TypeConfig > TypeConfigRef
Definition TypeConfig.h:1396