std::map<unsigned long long int,RelationPtr> Network::getAdministrativeBoundaries(int admin_level) { std::map<unsigned long long int, RelationPtr> ret; std::map<unsigned long long int, RelationPtr>::const_iterator it = relations.begin(); while (it != relations.end()) { RelationPtr relation = it->second; if(relation->hasTag(Element::TAG_BOUNDARY) && relation->hasTag(Element::TAG_ADMINLEVEL) && boost::iequals(relation->getTag(Element::TAG_BOUNDARY), "administrative") && relation->getTag(Element::TAG_ADMINLEVEL) == boost::lexical_cast<std::string>(admin_level) ){ if(relation->toGeometry()) ret[relation->getId()] = relation; } it++; } return ret; }