package se.kodapan.osm.sweden;
import se.kodapan.osm.parser.xml.OsmXmlParserException;
import se.kodapan.osm.parser.xml.instantiated.InstantiatedOsmXmlParser;
import se.kodapan.osm.domain.root.Root;
import se.kodapan.osm.services.overpass.Overpass;
import se.kodapan.osm.services.overpass.OverpassException;
import se.kodapan.osm.services.overpass.OverpassUtils;
import java.io.InputStreamReader;
/**
* @author kalle
* @since 2013-09-09 5:48 PM
*/
public class Sweden {
private Overpass overpass;
private OverpassUtils overpassUtils;
public Sweden(Overpass overpass) {
this.overpass = overpass;
this.overpassUtils = new OverpassUtils(overpass);
}
private long relationshipSweden = 52822l;
public Root loadBorders() throws OverpassException, OsmXmlParserException {
Root root = new Root();
loadBorders(root);
return root;
}
public void loadBorders(Root root) throws OsmXmlParserException, OverpassException {
InstantiatedOsmXmlParser parser = new InstantiatedOsmXmlParser();
parser.setRoot(root);
overpassUtils.loadRelation(parser, relationshipSweden);
}
public Root loadSimplifiedBorders() throws OverpassException, OsmXmlParserException {
Root root = new Root();
loadSimplifiedBorders(root);
return root;
}
public void loadSimplifiedBorders(Root root) throws OsmXmlParserException, OverpassException {
InstantiatedOsmXmlParser parser = new InstantiatedOsmXmlParser();
parser.setRoot(root);
parser.parse(new InputStreamReader(getClass().getResourceAsStream("/simplified sweden.osm")));
overpassUtils.loadRelation(parser, relationshipSweden);
}
public long getRelationshipSweden() {
return relationshipSweden;
}
public void setRelationshipSweden(long relationshipSweden) {
this.relationshipSweden = relationshipSweden;
}
}