Esempio n. 1
0
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;
}