Use actual maximum dimensions that MapWithAI supports

Signed-off-by: Taylor Smock <taylor.smock@kaart.com>
pull/1/head
Taylor Smock 2019-10-28 07:28:38 -06:00
rodzic 21a76831b0
commit e83e363f56
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 625F6A74A3E4311A
2 zmienionych plików z 13 dodań i 5 usunięć

Wyświetl plik

@ -52,7 +52,7 @@ import org.openstreetmap.josm.tools.Utils;
*
*/
public final class MapWithAIDataUtils {
public static final int MAXIMUM_SIDE_DIMENSIONS = 1000; // 1 km
public static final int MAXIMUM_SIDE_DIMENSIONS = 10000; // RapiD is about 1km, max is 10km
private static ForkJoinPool forkJoinPool;
static final Object LAYER_LOCK = new Object();

Wyświetl plik

@ -159,27 +159,35 @@ public class MapWithAIDataUtilsTest {
public void testSplitBounds() {
final BBox bbox = new BBox(0, 0, 0.0001, 0.0001);
List<BBox> bboxes = MapWithAIDataUtils.reduceBBoxSize(bbox);
Assert.assertEquals(1, bboxes.size());
Assert.assertEquals(getExpectedNumberOfBBoxes(bbox), bboxes.size());
checkInBBox(bbox, bboxes);
bbox.add(0.001, 0.001);
bboxes = MapWithAIDataUtils.reduceBBoxSize(bbox);
Assert.assertEquals(1, bboxes.size());
Assert.assertEquals(getExpectedNumberOfBBoxes(bbox), bboxes.size());
checkInBBox(bbox, bboxes);
bbox.add(0.01, 0.01);
bboxes = MapWithAIDataUtils.reduceBBoxSize(bbox);
Assert.assertEquals(4, bboxes.size());
Assert.assertEquals(getExpectedNumberOfBBoxes(bbox), bboxes.size());
checkInBBox(bbox, bboxes);
checkBBoxesConnect(bbox, bboxes);
bbox.add(0.1, 0.1);
bboxes = MapWithAIDataUtils.reduceBBoxSize(bbox);
Assert.assertEquals(144, bboxes.size());
Assert.assertEquals(getExpectedNumberOfBBoxes(bbox), bboxes.size());
checkInBBox(bbox, bboxes);
checkBBoxesConnect(bbox, bboxes);
}
private static int getExpectedNumberOfBBoxes(BBox bbox) {
double width = MapWithAIDataUtils.getWidth(bbox);
double height = MapWithAIDataUtils.getHeight(bbox);
int widthDivisions = (int) Math.ceil(width / MapWithAIDataUtils.MAXIMUM_SIDE_DIMENSIONS);
int heightDivisions = (int) Math.ceil(height / MapWithAIDataUtils.MAXIMUM_SIDE_DIMENSIONS);
return widthDivisions * heightDivisions;
}
private static void checkInBBox(BBox bbox, Collection<BBox> bboxes) {
for (final BBox tBBox : bboxes) {
Assert.assertTrue(bbox.bounds(tBBox));