void Preprocess::Callback::ProcessMultipolygon(const TagMap& tags, const std::vector<RawRelation::Member>& members, OSMId id, const TypeInfoRef& type) { RawRelation relation; areaStat[type->GetIndex()]++; relation.SetId(id); if (type->GetIgnore()) { relation.SetType(typeConfig->typeInfoIgnore); } else { relation.SetType(type); } relation.members=members; relation.Parse(progress, *typeConfig, tags); relation.Write(*typeConfig, multipolygonWriter); multipolygonCount++; }
void Preprocess::ProcessRelation(const TypeConfig& typeConfig, const OSMId& id, const std::vector<RawRelation::Member>& members, const std::map<TagId,std::string>& tagMap) { RawRelation relation; TypeId type; if (id<lastRelationId) { relationSortingError=true; } relation.SetId(id); relation.members=members; typeConfig.GetRelationTypeId(tagMap,type); typeConfig.ResolveTags(tagMap,relation.tags); relation.SetType(type); relation.Write(relationWriter); relationCount++; lastRelationId=id; }