/*
* Copyright (C) 2006, 2011.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 or
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
package uk.me.parabola.mkgmap.reader.osm.boundary;
import uk.me.parabola.imgfmt.app.Area;
import uk.me.parabola.mkgmap.reader.osm.Node;
import uk.me.parabola.mkgmap.reader.osm.OsmConverter;
import uk.me.parabola.mkgmap.reader.osm.Relation;
import uk.me.parabola.mkgmap.reader.osm.Way;
import uk.me.parabola.util.Java2DConverter;
public class BoundaryConverter implements OsmConverter {
private final BoundarySaver saver;
public BoundaryConverter(BoundarySaver saver) {
this.saver= saver;
}
@Override
public void convertWay(Way way) {
if (BoundaryElementSaver.isBoundary(way)) {
java.awt.geom.Area boundArea = Java2DConverter.createArea(way.getPoints());
Boundary boundary = new Boundary(boundArea, way.getTagEntryIterator(), "w"+way.getId());
saver.addBoundary(boundary);
}
}
@Override
public void convertNode(Node node) {
}
@Override
public void convertRelation(Relation relation) {
if (relation instanceof BoundaryRelation) {
Boundary boundary = ((BoundaryRelation)relation).getBoundary();
if (boundary!=null)
saver.addBoundary(boundary);
}
}
@Override
public void setBoundingBox(Area bbox) {
}
@Override
public void end() {
}
@Override
public Boolean getDriveOnLeft(){
return null; // unknown
}
}