Ejemplo n.º 1
0
 @Override
 public MapElement getReduced(int detail, float range) {
   // draw everything on detail 0
   if (detail == 0) {
     return this;
   }
   // determine bounding box, discard too small areas
   Bounds bounds = new Bounds(nodes[0].getPos(), 0);
   for (Node node : nodes) {
     bounds.extend(node.getLatitude(), node.getLongitude());
   }
   if (bounds.getHeight() + bounds.getWidth() < range) {
     return null;
   }
   // return simplified area
   Area result = new Area(name, wayInfo);
   result.setNodes(Street.simplifyNodes(nodes, range / 2));
   if (result.nodes.length <= MIN_REDUCTION_NODES && nodes.length > MIN_REDUCTION_NODES) {
     return null;
   }
   return (result.nodes.length == nodes.length) ? this : result;
 }