use of uk.me.parabola.mkgmap.filters.PolygonSubdivSizeSplitterFilter in project mkgmap by openstreetmap.
the class MapArea method addPolygons.
/**
* Add the polygons
* @param src The map data.
* @param resolution The current resolution of the layer.
*/
private void addPolygons(MapDataSource src, final int resolution) {
MapFilterChain chain = new MapFilterChain() {
public void doFilter(MapElement element) {
MapShape shape = (MapShape) element;
addShape(shape);
}
};
PolygonSubdivSizeSplitterFilter filter = new PolygonSubdivSizeSplitterFilter();
FilterConfig config = new FilterConfig();
config.setResolution(resolution);
config.setBounds(bounds);
filter.init(config);
for (MapShape s : src.getShapes()) {
if (s.getMaxResolution() < resolution)
continue;
if (splitPolygonsIntoArea || this.bounds.isEmpty() || this.bounds.contains(s.getBounds()))
// if splitPolygonsIntoArea, don't want to have other splitting as well.
// PolygonSubdivSizeSplitterFilter is a bit drastic - filters by both size and number of points
// so use splitPolygonsIntoArea logic for this as well. This is fine as long as there
// aren't bits of the shape outside the initial area.
addShape(s);
else
filter.doFilter(s, chain);
}
}
Aggregations