diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/QuadTree.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/QuadTree.java index 83affd8560c..db07e07ee36 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/QuadTree.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/QuadTree.java @@ -1,12 +1,35 @@ +// ********************************************************************** +// +// +// +// BBN Technologies +// 10 Moulton Street +// Cambridge, MA 02138 +// (617) 873-8000 +// +// Copyright (C) BBNT Solutions LLC. All rights reserved. +// +// +// ********************************************************************** +// +// $Source$ +// $RCSfile$ +// $Revision: 184 $ +// $Date: 2008-09-16 16:17:21 +0200 (Tue, 16 Sep 2008) $ +// $Author: axel.uhl $ +// +// ********************************************************************** + package com.sap.sailing.domain.common.quadtree; import java.io.Serializable; import java.util.Collection; import java.util.Vector; +import com.sap.sailing.domain.common.Bounds; import com.sap.sailing.domain.common.Position; +import com.sap.sailing.domain.common.impl.BoundsImpl; import com.sap.sailing.domain.common.impl.DegreePosition; -import com.sap.sailing.domain.common.quadtree.impl.Bounds; import com.sap.sailing.domain.common.quadtree.impl.QuadTreeNode; /** @@ -25,11 +48,11 @@ public class QuadTree implements Serializable { private QuadTreeNode top; public QuadTree() { - this(new Bounds(new DegreePosition(-90.0, -180.0), new DegreePosition(90.0, 180.0)), 20, QuadTreeNode.NO_MIN_SIZE); + this(new BoundsImpl(new DegreePosition(-90.0, -180.0), new DegreePosition(90.0, 180.0)), 20, QuadTreeNode.NO_MIN_SIZE); } public QuadTree(Position southWest, Position northEast, int maxItems) { - this(new Bounds(southWest, northEast), maxItems, QuadTreeNode.NO_MIN_SIZE); + this(new BoundsImpl(southWest, northEast), maxItems, QuadTreeNode.NO_MIN_SIZE); } public QuadTree(Bounds bounds, int maxItems, double minSize) { @@ -126,8 +149,8 @@ public class QuadTree implements Serializable { // where there might be a smudge overlap for very small // scales. if (rect.getSouthWest().getLngDeg() > rect.getNorthEast().getLngDeg() || (Math.abs(rect.getSouthWest().getLngDeg() - rect.getNorthEast().getLngDeg()) < .001)) { - return getTop().get(new Bounds(rect.getSouthWest(), new DegreePosition(rect.getNorthEast().getLatDeg(), 180)), - getTop().get(new Bounds(new DegreePosition(rect.getSouthWest().getLatDeg(), -180), rect.getNorthEast()), vector)); + return getTop().get(new BoundsImpl(rect.getSouthWest(), new DegreePosition(rect.getNorthEast().getLatDeg(), 180)), + getTop().get(new BoundsImpl(new DegreePosition(rect.getSouthWest().getLatDeg(), -180), rect.getNorthEast()), vector)); } else return getTop().get(rect, vector); } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/Bounds.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/Bounds.java deleted file mode 100644 index 9599f7e5f69..00000000000 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/Bounds.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.sap.sailing.domain.common.quadtree.impl; - -import com.sap.sailing.domain.common.Position; - -public class Bounds { - private final Position southWest; - private final Position northEast; - - public Bounds(Position southWest, Position northEast) { - this.southWest = southWest; - this.northEast = northEast; - } - - public Position getSouthWest() { - return southWest; - } - - public Position getNorthEast() { - return northEast; - } - - public boolean contains(Position p) { - return p.getLatDeg() >= getSouthWest().getLatDeg() && p.getLatDeg() <= getNorthEast().getLatDeg() && - (getNorthEast().getLngDeg() >= getSouthWest().getLngDeg() && p.getLngDeg() >= getSouthWest().getLngDeg() && p.getLngDeg() <= getNorthEast().getLngDeg() || - // cross date line bounds - getNorthEast().getLngDeg() < getSouthWest().getLngDeg() && - (p.getLngDeg() <= 180 && p.getLngDeg() >= getSouthWest().getLngDeg() || - p.getLngDeg() >= -180 && p.getLngDeg() <= getNorthEast().getLngDeg())); - } - - public boolean containsBounds(Bounds rect) { - return this.contains(rect.getSouthWest()) && this.contains(rect.getNorthEast()) || - rect.contains(this.getSouthWest()) && rect.contains(this.getNorthEast()); - } - -} diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/QuadTreeNode.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/QuadTreeNode.java index ee6229d64a6..19ed664bd3e 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/QuadTreeNode.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/QuadTreeNode.java @@ -27,7 +27,9 @@ import java.util.Collection; import java.util.Iterator; import java.util.Vector; +import com.sap.sailing.domain.common.Bounds; import com.sap.sailing.domain.common.Position; +import com.sap.sailing.domain.common.impl.BoundsImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.quadtree.QuadTree; @@ -121,10 +123,10 @@ public class QuadTreeNode implements Serializable { double nsHalf = (bounds.getNorthEast().getLatDeg() + bounds.getSouthWest().getLatDeg()) / 2.0; double ewHalf = (bounds.getNorthEast().getLngDeg() + bounds.getSouthWest().getLngDeg()) / 2.0; children = new QuadTreeNode[4]; - children[NORTHWEST] = new QuadTreeNode(new Bounds(new DegreePosition(nsHalf, bounds.getSouthWest().getLngDeg()), new DegreePosition(bounds.getNorthEast().getLatDeg(), ewHalf)), maxItems); - children[NORTHEAST] = new QuadTreeNode(new Bounds(new DegreePosition(nsHalf, ewHalf), bounds.getNorthEast()), maxItems); - children[SOUTHEAST] = new QuadTreeNode(new Bounds(new DegreePosition(bounds.getSouthWest().getLatDeg(), ewHalf), new DegreePosition(nsHalf, bounds.getNorthEast().getLngDeg())), maxItems); - children[SOUTHWEST] = new QuadTreeNode(new Bounds(bounds.getSouthWest(), new DegreePosition(nsHalf, ewHalf)), maxItems); + children[NORTHWEST] = new QuadTreeNode(new BoundsImpl(new DegreePosition(nsHalf, bounds.getSouthWest().getLngDeg()), new DegreePosition(bounds.getNorthEast().getLatDeg(), ewHalf)), maxItems); + children[NORTHEAST] = new QuadTreeNode(new BoundsImpl(new DegreePosition(nsHalf, ewHalf), bounds.getNorthEast()), maxItems); + children[SOUTHEAST] = new QuadTreeNode(new BoundsImpl(new DegreePosition(bounds.getSouthWest().getLatDeg(), ewHalf), new DegreePosition(nsHalf, bounds.getNorthEast().getLngDeg())), maxItems); + children[SOUTHWEST] = new QuadTreeNode(new BoundsImpl(bounds.getSouthWest(), new DegreePosition(nsHalf, ewHalf)), maxItems); Vector> temp = new Vector>(items); items.removeAllElements(); for (Iterator> i=temp.iterator(); i.hasNext(); ) { @@ -391,13 +393,13 @@ public class QuadTreeNode implements Serializable { if (children == null) { for (Iterator> i=items.iterator(); i.hasNext(); ) { QuadTreeLeaf qtl = i.next(); - if (rect.contains(new DegreePosition(qtl.getPoint().getLatDeg(), qtl.getPoint().getLngDeg()))) { + if (rect.contains(qtl.getPoint())) { vector.add(qtl.getObject()); } } } else { for (int i = 0; i < children.length; i++) { - if (children[i].bounds.containsBounds(rect)) { + if (rect.intersects(children[i].bounds)) { children[i].get(rect, vector); } } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/QuadTreeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/QuadTreeTest.java index 6ceaee8e313..4bf3b931ada 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/QuadTreeTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/QuadTreeTest.java @@ -2,12 +2,24 @@ package com.sap.sailing.domain.test; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import com.sap.sailing.domain.common.Position; +import com.sap.sailing.domain.common.impl.BoundsImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.quadtree.QuadTree; +import com.sap.sailing.domain.test.measurements.Measurement; +import com.sap.sailing.domain.test.measurements.MeasurementCase; +import com.sap.sailing.domain.test.measurements.MeasurementXMLFile; public class QuadTreeTest { private class GLatLngQuadTree extends QuadTree { @@ -21,6 +33,1148 @@ public class QuadTreeTest { super.put(x, x); } } + + private DegreePosition p1; + private DegreePosition p2; + private DegreePosition p3; + private GLatLngQuadTree quadtree; + private static MeasurementXMLFile performanceReport; + private static MeasurementCase performanceReportCase; + + @BeforeClass + public static void setUpMeasurement() { + performanceReport = new MeasurementXMLFile(QuadTreeTest.class); + performanceReportCase = performanceReport.addCase(QuadTreeTest.class.getSimpleName()); + } + + @Before + public void setUp() { + quadtree = new GLatLngQuadTree(new DegreePosition(49, + 7), new DegreePosition(51, 9), /* maxItems */30); + quadtree.put(new DegreePosition(50.88505000000001, 7.995520000000001)); + quadtree.put(new DegreePosition(50.884930000000004, 7.996440000000001)); + quadtree.put(new DegreePosition(50.884840000000004, 7.99666)); + quadtree.put(new DegreePosition(50.8843, 7.997490000000001)); + quadtree.put(new DegreePosition(50.884240000000005, 7.997730000000001)); + quadtree.put(new DegreePosition(50.88423, 7.997980000000001)); + quadtree.put(new DegreePosition(50.8847, 7.999010000000001)); + quadtree.put(new DegreePosition(50.884600000000006, 7.999130000000001)); + quadtree.put(new DegreePosition(50.88448, 7.99938)); + quadtree.put(new DegreePosition(50.88421, 8.00014)); + quadtree.put(new DegreePosition(50.88382000000001, 8.00174)); + quadtree.put(new DegreePosition(50.88355000000001, 8.00263)); + quadtree.put(new DegreePosition(50.883570000000006, 8.00309)); + quadtree.put(new DegreePosition(50.883700000000005, 8.003530000000001)); + quadtree.put(new DegreePosition(50.88212000000001, 8.00539)); + quadtree.put(new DegreePosition(50.881620000000005, 8.006260000000001)); + quadtree.put(new DegreePosition(50.881080000000004, 8.007610000000001)); + quadtree.put(new DegreePosition(50.88103, 8.007900000000001)); + quadtree.put(new DegreePosition(50.88103, 8.009030000000001)); + quadtree.put(new DegreePosition(50.880880000000005, 8.009640000000001)); + quadtree.put(new DegreePosition(50.88047, 8.010860000000001)); + quadtree.put(new DegreePosition(50.880030000000005, 8.012500000000001)); + quadtree.put(new DegreePosition(50.87866, 8.016810000000001)); + quadtree.put(new DegreePosition(50.87832, 8.017790000000002)); + quadtree.put(new DegreePosition(50.878240000000005, 8.01793)); + quadtree.put(new DegreePosition(50.878150000000005, 8.01795)); + quadtree.put(new DegreePosition(50.87803, 8.01782)); + quadtree.put(new DegreePosition(50.87776, 8.01717)); + quadtree.put(new DegreePosition(50.8774, 8.01654)); + quadtree.put(new DegreePosition(50.87709, 8.01622)); + quadtree.put(new DegreePosition(50.87585000000001, 8.013850000000001)); + quadtree.put(new DegreePosition(50.87538000000001, 8.01304)); + quadtree.put(new DegreePosition(50.87402, 8.01111)); + quadtree.put(new DegreePosition(50.87028, 8.003960000000001)); + quadtree.put(new DegreePosition(50.869670000000006, 8.003160000000001)); + quadtree.put(new DegreePosition(50.86925, 8.002780000000001)); + quadtree.put(new DegreePosition(50.86858, 8.00244)); + quadtree.put(new DegreePosition(50.868, 8.002310000000001)); + quadtree.put(new DegreePosition(50.86739000000001, 8.00237)); + quadtree.put(new DegreePosition(50.867070000000005, 8.00248)); + quadtree.put(new DegreePosition(50.86674000000001, 8.00267)); + quadtree.put(new DegreePosition(50.865950000000005, 8.00333)); + quadtree.put(new DegreePosition(50.86545, 8.00398)); + quadtree.put(new DegreePosition(50.86459000000001, 8.0053)); + quadtree.put(new DegreePosition(50.86424, 8.00577)); + quadtree.put(new DegreePosition(50.863870000000006, 8.00618)); + quadtree.put(new DegreePosition(50.86352, 8.0065)); + quadtree.put(new DegreePosition(50.862970000000004, 8.006820000000001)); + quadtree.put(new DegreePosition(50.862370000000006, 8.00703)); + quadtree.put(new DegreePosition(50.86110000000001, 8.00722)); + quadtree.put(new DegreePosition(50.86061, 8.00721)); + quadtree.put(new DegreePosition(50.859860000000005, 8.00711)); + quadtree.put(new DegreePosition(50.85918, 8.006920000000001)); + quadtree.put(new DegreePosition(50.85824, 8.006120000000001)); + quadtree.put(new DegreePosition(50.85784, 8.005640000000001)); + quadtree.put(new DegreePosition(50.85757, 8.0052)); + quadtree.put(new DegreePosition(50.85752, 8.00496)); + quadtree.put(new DegreePosition(50.85752, 8.00463)); + quadtree.put(new DegreePosition(50.85963, 8.00209)); + quadtree.put(new DegreePosition(50.86046, 8.0008)); + quadtree.put(new DegreePosition(50.86081, 8.00008)); + quadtree.put(new DegreePosition(50.86113, 7.999230000000001)); + quadtree.put(new DegreePosition(50.86128, 7.998690000000001)); + quadtree.put(new DegreePosition(50.861430000000006, 7.997870000000001)); + quadtree.put(new DegreePosition(50.86149, 7.99706)); + quadtree.put(new DegreePosition(50.86149, 7.996150000000001)); + quadtree.put(new DegreePosition(50.86144, 7.9955300000000005)); + quadtree.put(new DegreePosition(50.86130000000001, 7.99476)); + quadtree.put(new DegreePosition(50.86106, 7.993900000000001)); + quadtree.put(new DegreePosition(50.860220000000005, 7.991490000000001)); + quadtree.put(new DegreePosition(50.859970000000004, 7.990360000000001)); + quadtree.put(new DegreePosition(50.859930000000006, 7.987780000000001)); + quadtree.put(new DegreePosition(50.859970000000004, 7.98737)); + quadtree.put(new DegreePosition(50.86059, 7.984820000000001)); + quadtree.put(new DegreePosition(50.86065000000001, 7.984260000000001)); + quadtree.put(new DegreePosition(50.860620000000004, 7.98359)); + quadtree.put(new DegreePosition(50.8605, 7.9831900000000005)); + quadtree.put(new DegreePosition(50.860310000000005, 7.98284)); + quadtree.put(new DegreePosition(50.86001, 7.982540000000001)); + quadtree.put(new DegreePosition(50.85971000000001, 7.982450000000001)); + quadtree.put(new DegreePosition(50.859410000000004, 7.98251)); + quadtree.put(new DegreePosition(50.85918, 7.982670000000001)); + quadtree.put(new DegreePosition(50.85898, 7.98291)); + quadtree.put(new DegreePosition(50.858790000000006, 7.983370000000001)); + quadtree.put(new DegreePosition(50.858520000000006, 7.9846)); + quadtree.put(new DegreePosition(50.8584, 7.98488)); + quadtree.put(new DegreePosition(50.858140000000006, 7.9851600000000005)); + quadtree.put(new DegreePosition(50.85756000000001, 7.9855100000000006)); + quadtree.put(new DegreePosition(50.85616, 7.985920000000001)); + quadtree.put(new DegreePosition(50.85548000000001, 7.98603)); + quadtree.put(new DegreePosition(50.85210000000001, 7.9863100000000005)); + quadtree.put(new DegreePosition(50.850970000000004, 7.98662)); + quadtree.put(new DegreePosition(50.849230000000006, 7.98739)); + quadtree.put(new DegreePosition(50.849030000000006, 7.98758)); + quadtree.put(new DegreePosition(50.84798000000001, 7.988300000000001)); + quadtree.put(new DegreePosition(50.84763, 7.988600000000001)); + quadtree.put(new DegreePosition(50.84695000000001, 7.989240000000001)); + quadtree.put(new DegreePosition(50.84591, 7.9903900000000005)); + quadtree.put(new DegreePosition(50.84514, 7.99143)); + quadtree.put(new DegreePosition(50.844370000000005, 7.992660000000001)); + quadtree.put(new DegreePosition(50.84355000000001, 7.994140000000001)); + quadtree.put(new DegreePosition(50.842800000000004, 7.9958800000000005)); + quadtree.put(new DegreePosition(50.84174, 7.99898)); + quadtree.put(new DegreePosition(50.84141, 7.9998700000000005)); + quadtree.put(new DegreePosition(50.84085, 8.00121)); + quadtree.put(new DegreePosition(50.84001000000001, 8.00285)); + quadtree.put(new DegreePosition(50.83823, 8.00586)); + quadtree.put(new DegreePosition(50.83747, 8.00736)); + quadtree.put(new DegreePosition(50.83702, 8.008410000000001)); + quadtree.put(new DegreePosition(50.83662, 8.00956)); + quadtree.put(new DegreePosition(50.83628, 8.01093)); + quadtree.put(new DegreePosition(50.83605000000001, 8.012160000000002)); + quadtree.put(new DegreePosition(50.83545, 8.016810000000001)); + quadtree.put(new DegreePosition(50.83491, 8.01938)); + quadtree.put(new DegreePosition(50.834250000000004, 8.02161)); + quadtree.put(new DegreePosition(50.83332000000001, 8.025210000000001)); + quadtree.put(new DegreePosition(50.8331, 8.0264)); + quadtree.put(new DegreePosition(50.83299, 8.027230000000001)); + quadtree.put(new DegreePosition(50.832890000000006, 8.028220000000001)); + quadtree.put(new DegreePosition(50.832820000000005, 8.0296)); + quadtree.put(new DegreePosition(50.83283, 8.030740000000002)); + quadtree.put(new DegreePosition(50.832950000000004, 8.03252)); + quadtree.put(new DegreePosition(50.833180000000006, 8.034790000000001)); + quadtree.put(new DegreePosition(50.833200000000005, 8.036140000000001)); + quadtree.put(new DegreePosition(50.83316000000001, 8.03739)); + quadtree.put(new DegreePosition(50.83312, 8.03801)); + quadtree.put(new DegreePosition(50.83299, 8.03907)); + quadtree.put(new DegreePosition(50.832730000000005, 8.04087)); + quadtree.put(new DegreePosition(50.83243, 8.042290000000001)); + quadtree.put(new DegreePosition(50.831880000000005, 8.04424)); + quadtree.put(new DegreePosition(50.83072000000001, 8.047070000000001)); + quadtree.put(new DegreePosition(50.8286, 8.051340000000001)); + quadtree.put(new DegreePosition(50.82793, 8.052610000000001)); + quadtree.put(new DegreePosition(50.827650000000006, 8.053410000000001)); + quadtree.put(new DegreePosition(50.827290000000005, 8.054680000000001)); + quadtree.put(new DegreePosition(50.82674, 8.05762)); + quadtree.put(new DegreePosition(50.826620000000005, 8.05882)); + quadtree.put(new DegreePosition(50.826550000000005, 8.06226)); + quadtree.put(new DegreePosition(50.82645, 8.0639)); + quadtree.put(new DegreePosition(50.8263, 8.065420000000001)); + quadtree.put(new DegreePosition(50.82591000000001, 8.06756)); + quadtree.put(new DegreePosition(50.825540000000004, 8.06884)); + quadtree.put(new DegreePosition(50.82486, 8.070490000000001)); + quadtree.put(new DegreePosition(50.82444, 8.07141)); + quadtree.put(new DegreePosition(50.82368, 8.07266)); + quadtree.put(new DegreePosition(50.821760000000005, 8.075130000000001)); + quadtree.put(new DegreePosition(50.821020000000004, 8.07614)); + quadtree.put(new DegreePosition(50.8205, 8.077)); + quadtree.put(new DegreePosition(50.819950000000006, 8.078240000000001)); + quadtree.put(new DegreePosition(50.81955000000001, 8.079450000000001)); + quadtree.put(new DegreePosition(50.819120000000005, 8.08103)); + quadtree.put(new DegreePosition(50.81859000000001, 8.08351)); + quadtree.put(new DegreePosition(50.818130000000004, 8.08783)); + quadtree.put(new DegreePosition(50.81796000000001, 8.088840000000001)); + quadtree.put(new DegreePosition(50.81774000000001, 8.08971)); + quadtree.put(new DegreePosition(50.817420000000006, 8.090670000000001)); + quadtree.put(new DegreePosition(50.81671000000001, 8.09238)); + quadtree.put(new DegreePosition(50.81647, 8.09285)); + quadtree.put(new DegreePosition(50.81557, 8.094370000000001)); + quadtree.put(new DegreePosition(50.814960000000006, 8.09521)); + quadtree.put(new DegreePosition(50.81427000000001, 8.09603)); + quadtree.put(new DegreePosition(50.81369, 8.0966)); + quadtree.put(new DegreePosition(50.81291, 8.09722)); + quadtree.put(new DegreePosition(50.81228, 8.09763)); + quadtree.put(new DegreePosition(50.81022, 8.098590000000002)); + quadtree.put(new DegreePosition(50.80885000000001, 8.098980000000001)); + quadtree.put(new DegreePosition(50.806900000000006, 8.09918)); + quadtree.put(new DegreePosition(50.805350000000004, 8.09904)); + quadtree.put(new DegreePosition(50.804460000000006, 8.098790000000001)); + quadtree.put(new DegreePosition(50.803180000000005, 8.09833)); + quadtree.put(new DegreePosition(50.79974000000001, 8.09685)); + quadtree.put(new DegreePosition(50.798950000000005, 8.09665)); + quadtree.put(new DegreePosition(50.797990000000006, 8.09664)); + quadtree.put(new DegreePosition(50.79683000000001, 8.096760000000002)); + quadtree.put(new DegreePosition(50.795730000000006, 8.09699)); + quadtree.put(new DegreePosition(50.794630000000005, 8.097520000000001)); + quadtree.put(new DegreePosition(50.79238, 8.099340000000002)); + quadtree.put(new DegreePosition(50.79153, 8.10016)); + quadtree.put(new DegreePosition(50.79068, 8.10111)); + quadtree.put(new DegreePosition(50.789970000000004, 8.10195)); + quadtree.put(new DegreePosition(50.78891, 8.103380000000001)); + quadtree.put(new DegreePosition(50.78833, 8.104230000000001)); + quadtree.put(new DegreePosition(50.78759, 8.10539)); + quadtree.put(new DegreePosition(50.786970000000004, 8.10646)); + quadtree.put(new DegreePosition(50.78605, 8.10823)); + quadtree.put(new DegreePosition(50.78566000000001, 8.10905)); + quadtree.put(new DegreePosition(50.784890000000004, 8.11107)); + quadtree.put(new DegreePosition(50.784670000000006, 8.11194)); + quadtree.put(new DegreePosition(50.78437, 8.11344)); + quadtree.put(new DegreePosition(50.784200000000006, 8.11463)); + quadtree.put(new DegreePosition(50.78407000000001, 8.11609)); + quadtree.put(new DegreePosition(50.78407000000001, 8.11761)); + quadtree.put(new DegreePosition(50.78412, 8.118820000000001)); + quadtree.put(new DegreePosition(50.784240000000004, 8.11996)); + quadtree.put(new DegreePosition(50.78457, 8.121500000000001)); + quadtree.put(new DegreePosition(50.785250000000005, 8.12428)); + quadtree.put(new DegreePosition(50.78555, 8.125720000000001)); + quadtree.put(new DegreePosition(50.78586000000001, 8.12766)); + quadtree.put(new DegreePosition(50.786060000000006, 8.129610000000001)); + quadtree.put(new DegreePosition(50.78614, 8.13101)); + quadtree.put(new DegreePosition(50.78609, 8.13326)); + quadtree.put(new DegreePosition(50.78598, 8.13451)); + quadtree.put(new DegreePosition(50.78578, 8.135900000000001)); + quadtree.put(new DegreePosition(50.7854, 8.137880000000001)); + quadtree.put(new DegreePosition(50.78511, 8.13907)); + quadtree.put(new DegreePosition(50.784330000000004, 8.14145)); + quadtree.put(new DegreePosition(50.783840000000005, 8.14282)); + quadtree.put(new DegreePosition(50.78352, 8.143510000000001)); + quadtree.put(new DegreePosition(50.78285, 8.1446)); + quadtree.put(new DegreePosition(50.781650000000006, 8.14638)); + quadtree.put(new DegreePosition(50.781330000000004, 8.146920000000001)); + quadtree.put(new DegreePosition(50.780280000000005, 8.148060000000001)); + quadtree.put(new DegreePosition(50.77908000000001, 8.149090000000001)); + quadtree.put(new DegreePosition(50.7781, 8.14973)); + quadtree.put(new DegreePosition(50.77716, 8.150160000000001)); + quadtree.put(new DegreePosition(50.77579, 8.15053)); + quadtree.put(new DegreePosition(50.773810000000005, 8.150770000000001)); + quadtree.put(new DegreePosition(50.772470000000006, 8.15085)); + quadtree.put(new DegreePosition(50.77046000000001, 8.15074)); + quadtree.put(new DegreePosition(50.76778, 8.15074)); + quadtree.put(new DegreePosition(50.76690000000001, 8.15079)); + quadtree.put(new DegreePosition(50.76615, 8.15093)); + quadtree.put(new DegreePosition(50.76543, 8.15116)); + quadtree.put(new DegreePosition(50.764480000000006, 8.151670000000001)); + quadtree.put(new DegreePosition(50.763690000000004, 8.15222)); + quadtree.put(new DegreePosition(50.76299, 8.152890000000001)); + quadtree.put(new DegreePosition(50.76243, 8.15352)); + quadtree.put(new DegreePosition(50.76185, 8.15432)); + quadtree.put(new DegreePosition(50.761190000000006, 8.15549)); + quadtree.put(new DegreePosition(50.760670000000005, 8.1567)); + quadtree.put(new DegreePosition(50.76019, 8.15832)); + quadtree.put(new DegreePosition(50.759910000000005, 8.15996)); + quadtree.put(new DegreePosition(50.75983, 8.16092)); + quadtree.put(new DegreePosition(50.75974, 8.16243)); + quadtree.put(new DegreePosition(50.759780000000006, 8.164000000000001)); + quadtree.put(new DegreePosition(50.75992, 8.16568)); + quadtree.put(new DegreePosition(50.75997, 8.168050000000001)); + quadtree.put(new DegreePosition(50.75992, 8.16923)); + quadtree.put(new DegreePosition(50.759820000000005, 8.170480000000001)); + quadtree.put(new DegreePosition(50.75959, 8.172130000000001)); + quadtree.put(new DegreePosition(50.759190000000004, 8.17365)); + quadtree.put(new DegreePosition(50.75893000000001, 8.17436)); + quadtree.put(new DegreePosition(50.75638000000001, 8.18037)); + quadtree.put(new DegreePosition(50.755810000000004, 8.181840000000001)); + quadtree.put(new DegreePosition(50.755410000000005, 8.18307)); + quadtree.put(new DegreePosition(50.755160000000004, 8.184000000000001)); + quadtree.put(new DegreePosition(50.75482, 8.185960000000001)); + quadtree.put(new DegreePosition(50.75464, 8.18824)); + quadtree.put(new DegreePosition(50.75457, 8.19096)); + quadtree.put(new DegreePosition(50.754670000000004, 8.193750000000001)); + quadtree.put(new DegreePosition(50.75482, 8.19589)); + quadtree.put(new DegreePosition(50.75533, 8.20124)); + quadtree.put(new DegreePosition(50.75542, 8.202910000000001)); + quadtree.put(new DegreePosition(50.755390000000006, 8.20532)); + quadtree.put(new DegreePosition(50.75526000000001, 8.206850000000001)); + quadtree.put(new DegreePosition(50.75502, 8.20803)); + quadtree.put(new DegreePosition(50.75486, 8.20864)); + quadtree.put(new DegreePosition(50.75448, 8.209750000000001)); + quadtree.put(new DegreePosition(50.75424, 8.210320000000001)); + quadtree.put(new DegreePosition(50.75347000000001, 8.211730000000001)); + quadtree.put(new DegreePosition(50.75301, 8.21236)); + quadtree.put(new DegreePosition(50.75206000000001, 8.213370000000001)); + quadtree.put(new DegreePosition(50.74982000000001, 8.215440000000001)); + quadtree.put(new DegreePosition(50.748900000000006, 8.21657)); + quadtree.put(new DegreePosition(50.74851, 8.21718)); + quadtree.put(new DegreePosition(50.748200000000004, 8.21775)); + quadtree.put(new DegreePosition(50.74777, 8.21879)); + quadtree.put(new DegreePosition(50.7475, 8.21968)); + quadtree.put(new DegreePosition(50.747240000000005, 8.220880000000001)); + quadtree.put(new DegreePosition(50.7471, 8.22189)); + quadtree.put(new DegreePosition(50.74703, 8.222710000000001)); + quadtree.put(new DegreePosition(50.746990000000004, 8.22573)); + quadtree.put(new DegreePosition(50.74696, 8.22653)); + quadtree.put(new DegreePosition(50.74687, 8.22747)); + quadtree.put(new DegreePosition(50.746680000000005, 8.228530000000001)); + quadtree.put(new DegreePosition(50.746410000000004, 8.22976)); + quadtree.put(new DegreePosition(50.74609, 8.23095)); + quadtree.put(new DegreePosition(50.74515, 8.23367)); + quadtree.put(new DegreePosition(50.744620000000005, 8.235650000000001)); + quadtree.put(new DegreePosition(50.744310000000006, 8.237150000000002)); + quadtree.put(new DegreePosition(50.744150000000005, 8.238480000000001)); + quadtree.put(new DegreePosition(50.7441, 8.240540000000001)); + quadtree.put(new DegreePosition(50.74418000000001, 8.24193)); + quadtree.put(new DegreePosition(50.74445000000001, 8.24365)); + quadtree.put(new DegreePosition(50.745020000000004, 8.245940000000001)); + quadtree.put(new DegreePosition(50.74539000000001, 8.24769)); + quadtree.put(new DegreePosition(50.74557, 8.24881)); + quadtree.put(new DegreePosition(50.74562, 8.249590000000001)); + quadtree.put(new DegreePosition(50.7456, 8.250290000000001)); + quadtree.put(new DegreePosition(50.74542, 8.25223)); + quadtree.put(new DegreePosition(50.74519, 8.253340000000001)); + quadtree.put(new DegreePosition(50.7449, 8.2543)); + quadtree.put(new DegreePosition(50.74461, 8.25505)); + quadtree.put(new DegreePosition(50.74306000000001, 8.25831)); + quadtree.put(new DegreePosition(50.74279000000001, 8.25904)); + quadtree.put(new DegreePosition(50.74255, 8.25988)); + quadtree.put(new DegreePosition(50.742270000000005, 8.2612)); + quadtree.put(new DegreePosition(50.74213, 8.262070000000001)); + quadtree.put(new DegreePosition(50.742070000000005, 8.26314)); + quadtree.put(new DegreePosition(50.742090000000005, 8.26567)); + quadtree.put(new DegreePosition(50.741980000000005, 8.26735)); + quadtree.put(new DegreePosition(50.74181, 8.2687)); + quadtree.put(new DegreePosition(50.741670000000006, 8.26931)); + quadtree.put(new DegreePosition(50.741080000000004, 8.27088)); + quadtree.put(new DegreePosition(50.74072, 8.27158)); + quadtree.put(new DegreePosition(50.740030000000004, 8.27257)); + quadtree.put(new DegreePosition(50.73962, 8.273000000000001)); + quadtree.put(new DegreePosition(50.73875, 8.27365)); + quadtree.put(new DegreePosition(50.73783, 8.27405)); + quadtree.put(new DegreePosition(50.73745, 8.27416)); + quadtree.put(new DegreePosition(50.736830000000005, 8.27424)); + quadtree.put(new DegreePosition(50.734120000000004, 8.274090000000001)); + quadtree.put(new DegreePosition(50.73353, 8.27411)); + quadtree.put(new DegreePosition(50.732890000000005, 8.27424)); + quadtree.put(new DegreePosition(50.73174, 8.274790000000001)); + quadtree.put(new DegreePosition(50.73114, 8.27524)); + quadtree.put(new DegreePosition(50.7306, 8.27574)); + quadtree.put(new DegreePosition(50.72831000000001, 8.27865)); + quadtree.put(new DegreePosition(50.727430000000005, 8.279480000000001)); + quadtree.put(new DegreePosition(50.72471, 8.28134)); + quadtree.put(new DegreePosition(50.72368, 8.282210000000001)); + quadtree.put(new DegreePosition(50.7229, 8.28307)); + quadtree.put(new DegreePosition(50.72126, 8.28542)); + quadtree.put(new DegreePosition(50.72023, 8.28669)); + quadtree.put(new DegreePosition(50.71963, 8.28725)); + quadtree.put(new DegreePosition(50.71885, 8.287880000000001)); + quadtree.put(new DegreePosition(50.718120000000006, 8.28832)); + quadtree.put(new DegreePosition(50.7173, 8.2887)); + quadtree.put(new DegreePosition(50.71656, 8.28897)); + quadtree.put(new DegreePosition(50.71553, 8.28916)); + quadtree.put(new DegreePosition(50.71408, 8.28923)); + quadtree.put(new DegreePosition(50.713060000000006, 8.28913)); + quadtree.put(new DegreePosition(50.709050000000005, 8.28805)); + quadtree.put(new DegreePosition(50.70792, 8.28781)); + quadtree.put(new DegreePosition(50.70673000000001, 8.28772)); + quadtree.put(new DegreePosition(50.705130000000004, 8.28782)); + quadtree.put(new DegreePosition(50.70335000000001, 8.28827)); + quadtree.put(new DegreePosition(50.70219, 8.28876)); + quadtree.put(new DegreePosition(50.70096, 8.289520000000001)); + quadtree.put(new DegreePosition(50.697030000000005, 8.29296)); + quadtree.put(new DegreePosition(50.69567000000001, 8.294)); + quadtree.put(new DegreePosition(50.69485, 8.294540000000001)); + quadtree.put(new DegreePosition(50.69411, 8.29495)); + quadtree.put(new DegreePosition(50.6933, 8.295300000000001)); + quadtree.put(new DegreePosition(50.692690000000006, 8.295490000000001)); + quadtree.put(new DegreePosition(50.692040000000006, 8.29561)); + quadtree.put(new DegreePosition(50.69153000000001, 8.29564)); + quadtree.put(new DegreePosition(50.69035, 8.295390000000001)); + quadtree.put(new DegreePosition(50.68981, 8.29517)); + quadtree.put(new DegreePosition(50.68932, 8.2949)); + quadtree.put(new DegreePosition(50.688970000000005, 8.29465)); + quadtree.put(new DegreePosition(50.68847, 8.29418)); + quadtree.put(new DegreePosition(50.687760000000004, 8.293230000000001)); + quadtree.put(new DegreePosition(50.68713, 8.29218)); + quadtree.put(new DegreePosition(50.68657, 8.29096)); + quadtree.put(new DegreePosition(50.68558, 8.289000000000001)); + quadtree.put(new DegreePosition(50.684940000000005, 8.28805)); + quadtree.put(new DegreePosition(50.684430000000006, 8.28739)); + quadtree.put(new DegreePosition(50.682970000000005, 8.2859)); + quadtree.put(new DegreePosition(50.68198, 8.28515)); + quadtree.put(new DegreePosition(50.68065000000001, 8.28434)); + quadtree.put(new DegreePosition(50.679410000000004, 8.28377)); + quadtree.put(new DegreePosition(50.67868000000001, 8.28353)); + quadtree.put(new DegreePosition(50.67734, 8.283330000000001)); + quadtree.put(new DegreePosition(50.676190000000005, 8.28331)); + quadtree.put(new DegreePosition(50.674110000000006, 8.28378)); + quadtree.put(new DegreePosition(50.672760000000004, 8.28443)); + quadtree.put(new DegreePosition(50.67183000000001, 8.28505)); + quadtree.put(new DegreePosition(50.671130000000005, 8.28561)); + quadtree.put(new DegreePosition(50.67058, 8.286140000000001)); + quadtree.put(new DegreePosition(50.66993, 8.28687)); + quadtree.put(new DegreePosition(50.66884, 8.28832)); + quadtree.put(new DegreePosition(50.66789000000001, 8.28984)); + quadtree.put(new DegreePosition(50.667030000000004, 8.291440000000001)); + quadtree.put(new DegreePosition(50.66601000000001, 8.29364)); + quadtree.put(new DegreePosition(50.665350000000004, 8.295240000000002)); + quadtree.put(new DegreePosition(50.66480000000001, 8.29676)); + quadtree.put(new DegreePosition(50.66442000000001, 8.29808)); + quadtree.put(new DegreePosition(50.66405, 8.299660000000001)); + quadtree.put(new DegreePosition(50.663720000000005, 8.30133)); + quadtree.put(new DegreePosition(50.66330000000001, 8.304300000000001)); + quadtree.put(new DegreePosition(50.66290000000001, 8.307960000000001)); + quadtree.put(new DegreePosition(50.662670000000006, 8.309560000000001)); + quadtree.put(new DegreePosition(50.6623, 8.31123)); + quadtree.put(new DegreePosition(50.66174, 8.313260000000001)); + quadtree.put(new DegreePosition(50.660970000000006, 8.315370000000001)); + quadtree.put(new DegreePosition(50.660320000000006, 8.316650000000001)); + quadtree.put(new DegreePosition(50.659740000000006, 8.317590000000001)); + quadtree.put(new DegreePosition(50.65899, 8.318570000000001)); + quadtree.put(new DegreePosition(50.658210000000004, 8.3193)); + quadtree.put(new DegreePosition(50.657070000000004, 8.31994)); + quadtree.put(new DegreePosition(50.65578000000001, 8.320300000000001)); + quadtree.put(new DegreePosition(50.65391, 8.320400000000001)); + quadtree.put(new DegreePosition(50.65328, 8.320500000000001)); + quadtree.put(new DegreePosition(50.65240000000001, 8.32074)); + quadtree.put(new DegreePosition(50.65128000000001, 8.32118)); + quadtree.put(new DegreePosition(50.65091, 8.32137)); + quadtree.put(new DegreePosition(50.6465, 8.32409)); + quadtree.put(new DegreePosition(50.645360000000004, 8.32454)); + quadtree.put(new DegreePosition(50.644740000000006, 8.32469)); + quadtree.put(new DegreePosition(50.64193, 8.32482)); + quadtree.put(new DegreePosition(50.639920000000004, 8.32511)); + quadtree.put(new DegreePosition(50.63812, 8.325650000000001)); + quadtree.put(new DegreePosition(50.63673000000001, 8.326400000000001)); + quadtree.put(new DegreePosition(50.635740000000006, 8.32704)); + quadtree.put(new DegreePosition(50.634570000000004, 8.32797)); + quadtree.put(new DegreePosition(50.63354, 8.32891)); + quadtree.put(new DegreePosition(50.63253, 8.32995)); + quadtree.put(new DegreePosition(50.629650000000005, 8.33336)); + quadtree.put(new DegreePosition(50.62903000000001, 8.33422)); + quadtree.put(new DegreePosition(50.628550000000004, 8.335)); + quadtree.put(new DegreePosition(50.62765, 8.33667)); + quadtree.put(new DegreePosition(50.627250000000004, 8.33755)); + quadtree.put(new DegreePosition(50.626760000000004, 8.33876)); + quadtree.put(new DegreePosition(50.62648, 8.33961)); + quadtree.put(new DegreePosition(50.62586, 8.341890000000001)); + quadtree.put(new DegreePosition(50.62556000000001, 8.34319)); + quadtree.put(new DegreePosition(50.62519, 8.34521)); + quadtree.put(new DegreePosition(50.624990000000004, 8.34656)); + quadtree.put(new DegreePosition(50.62485, 8.34781)); + quadtree.put(new DegreePosition(50.6246, 8.3511)); + quadtree.put(new DegreePosition(50.62435000000001, 8.352910000000001)); + quadtree.put(new DegreePosition(50.624050000000004, 8.3544)); + quadtree.put(new DegreePosition(50.623810000000006, 8.35543)); + quadtree.put(new DegreePosition(50.62366, 8.35593)); + quadtree.put(new DegreePosition(50.622240000000005, 8.359910000000001)); + quadtree.put(new DegreePosition(50.621770000000005, 8.36156)); + quadtree.put(new DegreePosition(50.62156, 8.362480000000001)); + quadtree.put(new DegreePosition(50.621230000000004, 8.3644)); + quadtree.put(new DegreePosition(50.62078, 8.36975)); + quadtree.put(new DegreePosition(50.620520000000006, 8.37114)); + quadtree.put(new DegreePosition(50.620160000000006, 8.37249)); + quadtree.put(new DegreePosition(50.61988, 8.373320000000001)); + quadtree.put(new DegreePosition(50.61932, 8.374690000000001)); + quadtree.put(new DegreePosition(50.61887, 8.375950000000001)); + quadtree.put(new DegreePosition(50.618570000000005, 8.37725)); + quadtree.put(new DegreePosition(50.61827, 8.37898)); + quadtree.put(new DegreePosition(50.618170000000006, 8.380270000000001)); + quadtree.put(new DegreePosition(50.61816, 8.382190000000001)); + quadtree.put(new DegreePosition(50.618520000000004, 8.389460000000001)); + quadtree.put(new DegreePosition(50.618570000000005, 8.39309)); + quadtree.put(new DegreePosition(50.618500000000004, 8.394480000000001)); + quadtree.put(new DegreePosition(50.618410000000004, 8.395470000000001)); + quadtree.put(new DegreePosition(50.61824000000001, 8.39675)); + quadtree.put(new DegreePosition(50.618080000000006, 8.39764)); + quadtree.put(new DegreePosition(50.61777000000001, 8.39906)); + quadtree.put(new DegreePosition(50.61713, 8.40116)); + quadtree.put(new DegreePosition(50.61679, 8.40215)); + quadtree.put(new DegreePosition(50.612660000000005, 8.413)); + quadtree.put(new DegreePosition(50.61168000000001, 8.415470000000001)); + quadtree.put(new DegreePosition(50.611430000000006, 8.41623)); + quadtree.put(new DegreePosition(50.61102, 8.41787)); + quadtree.put(new DegreePosition(50.61056000000001, 8.42032)); + quadtree.put(new DegreePosition(50.61019, 8.4238)); + quadtree.put(new DegreePosition(50.60992, 8.42535)); + quadtree.put(new DegreePosition(50.60947, 8.42707)); + quadtree.put(new DegreePosition(50.60904000000001, 8.42833)); + quadtree.put(new DegreePosition(50.60857000000001, 8.42956)); + quadtree.put(new DegreePosition(50.60792000000001, 8.43158)); + quadtree.put(new DegreePosition(50.60761, 8.432680000000001)); + quadtree.put(new DegreePosition(50.60723, 8.434370000000001)); + quadtree.put(new DegreePosition(50.60701, 8.43645)); + quadtree.put(new DegreePosition(50.60698000000001, 8.43796)); + quadtree.put(new DegreePosition(50.6071, 8.44045)); + quadtree.put(new DegreePosition(50.60718000000001, 8.443100000000001)); + quadtree.put(new DegreePosition(50.60717, 8.444220000000001)); + quadtree.put(new DegreePosition(50.607020000000006, 8.446140000000002)); + quadtree.put(new DegreePosition(50.606770000000004, 8.44772)); + quadtree.put(new DegreePosition(50.60647, 8.44902)); + quadtree.put(new DegreePosition(50.606100000000005, 8.450230000000001)); + quadtree.put(new DegreePosition(50.60551, 8.45195)); + quadtree.put(new DegreePosition(50.605030000000006, 8.45358)); + quadtree.put(new DegreePosition(50.60465000000001, 8.45495)); + quadtree.put(new DegreePosition(50.60445000000001, 8.455950000000001)); + quadtree.put(new DegreePosition(50.60427000000001, 8.457230000000001)); + quadtree.put(new DegreePosition(50.60421, 8.458060000000001)); + quadtree.put(new DegreePosition(50.60419, 8.45945)); + quadtree.put(new DegreePosition(50.6043, 8.46292)); + quadtree.put(new DegreePosition(50.604290000000006, 8.46471)); + quadtree.put(new DegreePosition(50.60416000000001, 8.4664)); + quadtree.put(new DegreePosition(50.603930000000005, 8.468)); + quadtree.put(new DegreePosition(50.603790000000004, 8.46873)); + quadtree.put(new DegreePosition(50.603570000000005, 8.469650000000001)); + quadtree.put(new DegreePosition(50.60318, 8.471)); + quadtree.put(new DegreePosition(50.60242, 8.473030000000001)); + quadtree.put(new DegreePosition(50.60193, 8.474110000000001)); + quadtree.put(new DegreePosition(50.60146, 8.47493)); + quadtree.put(new DegreePosition(50.600730000000006, 8.47606)); + quadtree.put(new DegreePosition(50.599160000000005, 8.478340000000001)); + quadtree.put(new DegreePosition(50.59787000000001, 8.480580000000002)); + quadtree.put(new DegreePosition(50.59725, 8.48202)); + quadtree.put(new DegreePosition(50.59673, 8.48366)); + quadtree.put(new DegreePosition(50.596270000000004, 8.48583)); + quadtree.put(new DegreePosition(50.59617, 8.48643)); + quadtree.put(new DegreePosition(50.596000000000004, 8.48804)); + quadtree.put(new DegreePosition(50.59592000000001, 8.490260000000001)); + quadtree.put(new DegreePosition(50.59588, 8.49361)); + quadtree.put(new DegreePosition(50.59581000000001, 8.49463)); + quadtree.put(new DegreePosition(50.595710000000004, 8.49549)); + quadtree.put(new DegreePosition(50.59539, 8.49712)); + quadtree.put(new DegreePosition(50.59505000000001, 8.49849)); + quadtree.put(new DegreePosition(50.594030000000004, 8.50145)); + quadtree.put(new DegreePosition(50.59357000000001, 8.50289)); + quadtree.put(new DegreePosition(50.593340000000005, 8.50379)); + quadtree.put(new DegreePosition(50.593160000000005, 8.50468)); + quadtree.put(new DegreePosition(50.59292000000001, 8.506120000000001)); + quadtree.put(new DegreePosition(50.59279, 8.50716)); + quadtree.put(new DegreePosition(50.592740000000006, 8.50793)); + quadtree.put(new DegreePosition(50.592740000000006, 8.50988)); + quadtree.put(new DegreePosition(50.59282, 8.51248)); + quadtree.put(new DegreePosition(50.59273, 8.513850000000001)); + quadtree.put(new DegreePosition(50.59245000000001, 8.5157)); + quadtree.put(new DegreePosition(50.592110000000005, 8.51736)); + quadtree.put(new DegreePosition(50.59109, 8.52072)); + quadtree.put(new DegreePosition(50.58995, 8.52393)); + quadtree.put(new DegreePosition(50.58919, 8.525780000000001)); + quadtree.put(new DegreePosition(50.588350000000005, 8.52753)); + quadtree.put(new DegreePosition(50.586940000000006, 8.53031)); + quadtree.put(new DegreePosition(50.585660000000004, 8.5327)); + quadtree.put(new DegreePosition(50.58467, 8.534270000000001)); + quadtree.put(new DegreePosition(50.582950000000004, 8.53668)); + quadtree.put(new DegreePosition(50.58055, 8.539750000000002)); + quadtree.put(new DegreePosition(50.57909, 8.541250000000002)); + quadtree.put(new DegreePosition(50.578230000000005, 8.542060000000001)); + quadtree.put(new DegreePosition(50.57721, 8.542910000000001)); + quadtree.put(new DegreePosition(50.57509, 8.544360000000001)); + quadtree.put(new DegreePosition(50.572190000000006, 8.546000000000001)); + quadtree.put(new DegreePosition(50.56996, 8.54697)); + quadtree.put(new DegreePosition(50.567350000000005, 8.548210000000001)); + quadtree.put(new DegreePosition(50.566590000000005, 8.548670000000001)); + quadtree.put(new DegreePosition(50.565740000000005, 8.5493)); + quadtree.put(new DegreePosition(50.56519, 8.54981)); + quadtree.put(new DegreePosition(50.56466, 8.55035)); + quadtree.put(new DegreePosition(50.56418000000001, 8.551010000000002)); + quadtree.put(new DegreePosition(50.56376, 8.551630000000001)); + quadtree.put(new DegreePosition(50.56293, 8.55311)); + quadtree.put(new DegreePosition(50.56206, 8.55527)); + quadtree.put(new DegreePosition(50.56136000000001, 8.55738)); + quadtree.put(new DegreePosition(50.56071000000001, 8.55915)); + quadtree.put(new DegreePosition(50.560230000000004, 8.560160000000002)); + quadtree.put(new DegreePosition(50.55978, 8.560970000000001)); + quadtree.put(new DegreePosition(50.55922, 8.56179)); + quadtree.put(new DegreePosition(50.558910000000004, 8.56215)); + quadtree.put(new DegreePosition(50.55834, 8.562700000000001)); + quadtree.put(new DegreePosition(50.55731, 8.56347)); + quadtree.put(new DegreePosition(50.55677000000001, 8.56377)); + quadtree.put(new DegreePosition(50.55624, 8.563960000000002)); + quadtree.put(new DegreePosition(50.55556000000001, 8.564110000000001)); + quadtree.put(new DegreePosition(50.55353, 8.564390000000001)); + quadtree.put(new DegreePosition(50.552040000000005, 8.56466)); + quadtree.put(new DegreePosition(50.55109, 8.56494)); + quadtree.put(new DegreePosition(50.550160000000005, 8.56536)); + quadtree.put(new DegreePosition(50.549730000000004, 8.565620000000001)); + quadtree.put(new DegreePosition(50.54919, 8.56601)); + quadtree.put(new DegreePosition(50.548460000000006, 8.56667)); + quadtree.put(new DegreePosition(50.54798, 8.567250000000001)); + quadtree.put(new DegreePosition(50.5469, 8.56872)); + quadtree.put(new DegreePosition(50.54536, 8.57126)); + quadtree.put(new DegreePosition(50.542260000000006, 8.576590000000001)); + quadtree.put(new DegreePosition(50.541430000000005, 8.577720000000001)); + quadtree.put(new DegreePosition(50.540580000000006, 8.57877)); + quadtree.put(new DegreePosition(50.539480000000005, 8.57994)); + quadtree.put(new DegreePosition(50.537870000000005, 8.58139)); + quadtree.put(new DegreePosition(50.53676, 8.582270000000001)); + quadtree.put(new DegreePosition(50.534110000000005, 8.58411)); + quadtree.put(new DegreePosition(50.53333000000001, 8.58478)); + quadtree.put(new DegreePosition(50.53266000000001, 8.585450000000002)); + quadtree.put(new DegreePosition(50.5317, 8.586540000000001)); + quadtree.put(new DegreePosition(50.53099, 8.587610000000002)); + quadtree.put(new DegreePosition(50.53056, 8.58835)); + quadtree.put(new DegreePosition(50.530080000000005, 8.58932)); + quadtree.put(new DegreePosition(50.52947, 8.590900000000001)); + quadtree.put(new DegreePosition(50.529050000000005, 8.592310000000001)); + quadtree.put(new DegreePosition(50.528800000000004, 8.593430000000001)); + quadtree.put(new DegreePosition(50.528620000000004, 8.594510000000001)); + quadtree.put(new DegreePosition(50.52828, 8.597700000000001)); + quadtree.put(new DegreePosition(50.527750000000005, 8.60692)); + quadtree.put(new DegreePosition(50.52731000000001, 8.61212)); + quadtree.put(new DegreePosition(50.526300000000006, 8.62259)); + quadtree.put(new DegreePosition(50.525800000000004, 8.626420000000001)); + quadtree.put(new DegreePosition(50.52514000000001, 8.630510000000001)); + quadtree.put(new DegreePosition(50.52481, 8.63277)); + quadtree.put(new DegreePosition(50.524010000000004, 8.6376)); + quadtree.put(new DegreePosition(50.52364000000001, 8.64067)); + quadtree.put(new DegreePosition(50.522420000000004, 8.645380000000001)); + quadtree.put(new DegreePosition(50.52181, 8.64794)); + quadtree.put(new DegreePosition(50.521530000000006, 8.648950000000001)); + quadtree.put(new DegreePosition(50.52031, 8.654100000000001)); + quadtree.put(new DegreePosition(50.51888, 8.65944)); + quadtree.put(new DegreePosition(50.51749, 8.66398)); + quadtree.put(new DegreePosition(50.51699000000001, 8.66531)); + quadtree.put(new DegreePosition(50.516650000000006, 8.666110000000002)); + quadtree.put(new DegreePosition(50.515150000000006, 8.66932)); + quadtree.put(new DegreePosition(50.5146, 8.67041)); + quadtree.put(new DegreePosition(50.513670000000005, 8.6721)); + quadtree.put(new DegreePosition(50.51285000000001, 8.673440000000001)); + quadtree.put(new DegreePosition(50.511810000000004, 8.674930000000002)); + quadtree.put(new DegreePosition(50.510630000000006, 8.67633)); + quadtree.put(new DegreePosition(50.50940000000001, 8.677700000000002)); + quadtree.put(new DegreePosition(50.508810000000004, 8.67824)); + quadtree.put(new DegreePosition(50.50750000000001, 8.67932)); + quadtree.put(new DegreePosition(50.50681, 8.679810000000002)); + quadtree.put(new DegreePosition(50.50526000000001, 8.680760000000001)); + quadtree.put(new DegreePosition(50.504470000000005, 8.68116)); + quadtree.put(new DegreePosition(50.50274, 8.681830000000001)); + quadtree.put(new DegreePosition(50.50198, 8.682070000000001)); + quadtree.put(new DegreePosition(50.498810000000006, 8.682690000000001)); + quadtree.put(new DegreePosition(50.49728, 8.68313)); + quadtree.put(new DegreePosition(50.49476000000001, 8.68368)); + quadtree.put(new DegreePosition(50.49369, 8.684050000000001)); + quadtree.put(new DegreePosition(50.49269, 8.68449)); + quadtree.put(new DegreePosition(50.49157, 8.68506)); + quadtree.put(new DegreePosition(50.490520000000004, 8.685740000000001)); + quadtree.put(new DegreePosition(50.48989, 8.68622)); + quadtree.put(new DegreePosition(50.48901000000001, 8.686950000000001)); + quadtree.put(new DegreePosition(50.488040000000005, 8.687940000000001)); + quadtree.put(new DegreePosition(50.487010000000005, 8.68913)); + quadtree.put(new DegreePosition(50.48583000000001, 8.69068)); + quadtree.put(new DegreePosition(50.484260000000006, 8.69318)); + quadtree.put(new DegreePosition(50.483340000000005, 8.69505)); + quadtree.put(new DegreePosition(50.48272000000001, 8.69658)); + quadtree.put(new DegreePosition(50.482110000000006, 8.698260000000001)); + quadtree.put(new DegreePosition(50.481390000000005, 8.70049)); + quadtree.put(new DegreePosition(50.48093, 8.70208)); + quadtree.put(new DegreePosition(50.48021000000001, 8.705020000000001)); + quadtree.put(new DegreePosition(50.47822000000001, 8.71437)); + quadtree.put(new DegreePosition(50.477940000000004, 8.715430000000001)); + quadtree.put(new DegreePosition(50.47721000000001, 8.717260000000001)); + quadtree.put(new DegreePosition(50.47652, 8.718820000000001)); + quadtree.put(new DegreePosition(50.476240000000004, 8.71929)); + quadtree.put(new DegreePosition(50.475660000000005, 8.72009)); + quadtree.put(new DegreePosition(50.47426, 8.72159)); + quadtree.put(new DegreePosition(50.47375, 8.722000000000001)); + quadtree.put(new DegreePosition(50.47307000000001, 8.7224)); + quadtree.put(new DegreePosition(50.472390000000004, 8.72273)); + quadtree.put(new DegreePosition(50.47173, 8.72295)); + quadtree.put(new DegreePosition(50.471050000000005, 8.723090000000001)); + quadtree.put(new DegreePosition(50.46989000000001, 8.723080000000001)); + quadtree.put(new DegreePosition(50.46876, 8.72295)); + quadtree.put(new DegreePosition(50.466840000000005, 8.72241)); + quadtree.put(new DegreePosition(50.465230000000005, 8.721820000000001)); + quadtree.put(new DegreePosition(50.46338, 8.72098)); + quadtree.put(new DegreePosition(50.463100000000004, 8.72091)); + quadtree.put(new DegreePosition(50.461200000000005, 8.71997)); + quadtree.put(new DegreePosition(50.46023, 8.71925)); + quadtree.put(new DegreePosition(50.459410000000005, 8.718570000000001)); + quadtree.put(new DegreePosition(50.458600000000004, 8.7178)); + quadtree.put(new DegreePosition(50.45769000000001, 8.716790000000001)); + quadtree.put(new DegreePosition(50.456610000000005, 8.71546)); + quadtree.put(new DegreePosition(50.455490000000005, 8.7139)); + quadtree.put(new DegreePosition(50.45445, 8.712250000000001)); + quadtree.put(new DegreePosition(50.45373000000001, 8.710980000000001)); + quadtree.put(new DegreePosition(50.45327, 8.71006)); + quadtree.put(new DegreePosition(50.45239, 8.70799)); + quadtree.put(new DegreePosition(50.44941000000001, 8.70059)); + quadtree.put(new DegreePosition(50.448820000000005, 8.69945)); + quadtree.put(new DegreePosition(50.448460000000004, 8.69888)); + quadtree.put(new DegreePosition(50.447900000000004, 8.69806)); + quadtree.put(new DegreePosition(50.44698, 8.69688)); + quadtree.put(new DegreePosition(50.44641000000001, 8.6963)); + quadtree.put(new DegreePosition(50.44548, 8.695500000000001)); + quadtree.put(new DegreePosition(50.44501, 8.695160000000001)); + quadtree.put(new DegreePosition(50.44411, 8.69472)); + quadtree.put(new DegreePosition(50.44333, 8.69443)); + quadtree.put(new DegreePosition(50.44202000000001, 8.694180000000001)); + quadtree.put(new DegreePosition(50.44145, 8.694170000000002)); + quadtree.put(new DegreePosition(50.440560000000005, 8.69425)); + quadtree.put(new DegreePosition(50.432640000000006, 8.69574)); + quadtree.put(new DegreePosition(50.42264, 8.697370000000001)); + quadtree.put(new DegreePosition(50.405300000000004, 8.70054)); + quadtree.put(new DegreePosition(50.395720000000004, 8.70219)); + quadtree.put(new DegreePosition(50.391580000000005, 8.70298)); + quadtree.put(new DegreePosition(50.38085, 8.7048)); + quadtree.put(new DegreePosition(50.375750000000004, 8.70561)); + quadtree.put(new DegreePosition(50.374950000000005, 8.70569)); + quadtree.put(new DegreePosition(50.373850000000004, 8.70564)); + quadtree.put(new DegreePosition(50.37259, 8.705400000000001)); + quadtree.put(new DegreePosition(50.37050000000001, 8.70457)); + quadtree.put(new DegreePosition(50.369170000000004, 8.70387)); + quadtree.put(new DegreePosition(50.367610000000006, 8.702910000000001)); + quadtree.put(new DegreePosition(50.36612, 8.7018)); + quadtree.put(new DegreePosition(50.36075, 8.6972)); + quadtree.put(new DegreePosition(50.35831, 8.69533)); + quadtree.put(new DegreePosition(50.356950000000005, 8.69443)); + quadtree.put(new DegreePosition(50.35558, 8.69372)); + quadtree.put(new DegreePosition(50.354400000000005, 8.69335)); + quadtree.put(new DegreePosition(50.35246, 8.69284)); + quadtree.put(new DegreePosition(50.35105, 8.692620000000002)); + quadtree.put(new DegreePosition(50.350170000000006, 8.69257)); + quadtree.put(new DegreePosition(50.34955, 8.692580000000001)); + quadtree.put(new DegreePosition(50.34857, 8.69275)); + quadtree.put(new DegreePosition(50.346230000000006, 8.693470000000001)); + quadtree.put(new DegreePosition(50.341210000000004, 8.69532)); + quadtree.put(new DegreePosition(50.34002, 8.695680000000001)); + quadtree.put(new DegreePosition(50.33867000000001, 8.695910000000001)); + quadtree.put(new DegreePosition(50.33753, 8.69594)); + quadtree.put(new DegreePosition(50.3361, 8.695860000000001)); + quadtree.put(new DegreePosition(50.333580000000005, 8.69542)); + quadtree.put(new DegreePosition(50.32048, 8.69252)); + quadtree.put(new DegreePosition(50.31851, 8.69196)); + quadtree.put(new DegreePosition(50.31781, 8.6917)); + quadtree.put(new DegreePosition(50.31709000000001, 8.69139)); + quadtree.put(new DegreePosition(50.31595, 8.690760000000001)); + quadtree.put(new DegreePosition(50.314600000000006, 8.68979)); + quadtree.put(new DegreePosition(50.31338, 8.68871)); + quadtree.put(new DegreePosition(50.31116, 8.68621)); + quadtree.put(new DegreePosition(50.30666, 8.680890000000002)); + quadtree.put(new DegreePosition(50.3034, 8.67722)); + quadtree.put(new DegreePosition(50.302640000000004, 8.67643)); + quadtree.put(new DegreePosition(50.301930000000006, 8.675830000000001)); + quadtree.put(new DegreePosition(50.30136, 8.675410000000001)); + quadtree.put(new DegreePosition(50.30044, 8.67488)); + quadtree.put(new DegreePosition(50.298860000000005, 8.674140000000001)); + quadtree.put(new DegreePosition(50.29008, 8.67112)); + quadtree.put(new DegreePosition(50.286120000000004, 8.669820000000001)); + quadtree.put(new DegreePosition(50.27376, 8.665550000000001)); + quadtree.put(new DegreePosition(50.26568, 8.662920000000002)); + quadtree.put(new DegreePosition(50.26428000000001, 8.662640000000001)); + quadtree.put(new DegreePosition(50.26334000000001, 8.662560000000001)); + quadtree.put(new DegreePosition(50.248900000000006, 8.662740000000001)); + quadtree.put(new DegreePosition(50.24667, 8.662730000000002)); + quadtree.put(new DegreePosition(50.231930000000006, 8.662970000000001)); + quadtree.put(new DegreePosition(50.21923, 8.6631)); + quadtree.put(new DegreePosition(50.21822, 8.66305)); + quadtree.put(new DegreePosition(50.21732, 8.66291)); + quadtree.put(new DegreePosition(50.216240000000006, 8.66267)); + quadtree.put(new DegreePosition(50.215270000000004, 8.662370000000001)); + quadtree.put(new DegreePosition(50.214200000000005, 8.66192)); + quadtree.put(new DegreePosition(50.21316, 8.661370000000002)); + quadtree.put(new DegreePosition(50.21162, 8.660350000000001)); + quadtree.put(new DegreePosition(50.210660000000004, 8.659600000000001)); + quadtree.put(new DegreePosition(50.209430000000005, 8.65841)); + quadtree.put(new DegreePosition(50.20864, 8.6575)); + quadtree.put(new DegreePosition(50.208090000000006, 8.656830000000001)); + quadtree.put(new DegreePosition(50.206920000000004, 8.65522)); + quadtree.put(new DegreePosition(50.206500000000005, 8.65456)); + quadtree.put(new DegreePosition(50.20488, 8.651760000000001)); + quadtree.put(new DegreePosition(50.203190000000006, 8.649080000000001)); + quadtree.put(new DegreePosition(50.19881, 8.64192)); + quadtree.put(new DegreePosition(50.196600000000004, 8.637440000000002)); + quadtree.put(new DegreePosition(50.188770000000005, 8.6239)); + quadtree.put(new DegreePosition(50.18795, 8.62259)); + quadtree.put(new DegreePosition(50.187070000000006, 8.621360000000001)); + quadtree.put(new DegreePosition(50.18627000000001, 8.6204)); + quadtree.put(new DegreePosition(50.185120000000005, 8.619190000000001)); + quadtree.put(new DegreePosition(50.18388, 8.61808)); + quadtree.put(new DegreePosition(50.182770000000005, 8.61726)); + quadtree.put(new DegreePosition(50.18178, 8.61665)); + quadtree.put(new DegreePosition(50.17159, 8.61101)); + quadtree.put(new DegreePosition(50.16395000000001, 8.606710000000001)); + quadtree.put(new DegreePosition(50.15317, 8.600760000000001)); + quadtree.put(new DegreePosition(50.149210000000004, 8.598640000000001)); + quadtree.put(new DegreePosition(50.14303, 8.59515)); + quadtree.put(new DegreePosition(50.13889, 8.592960000000001)); + quadtree.put(new DegreePosition(50.13496000000001, 8.590810000000001)); + quadtree.put(new DegreePosition(50.1332, 8.590190000000002)); + quadtree.put(new DegreePosition(50.13172, 8.58994)); + quadtree.put(new DegreePosition(50.13055000000001, 8.58993)); + quadtree.put(new DegreePosition(50.129450000000006, 8.59008)); + quadtree.put(new DegreePosition(50.12838000000001, 8.590340000000001)); + quadtree.put(new DegreePosition(50.12713, 8.59083)); + quadtree.put(new DegreePosition(50.12621000000001, 8.591320000000001)); + quadtree.put(new DegreePosition(50.118970000000004, 8.595970000000001)); + quadtree.put(new DegreePosition(50.10857000000001, 8.60274)); + quadtree.put(new DegreePosition(50.105970000000006, 8.604600000000001)); + quadtree.put(new DegreePosition(50.105050000000006, 8.605410000000001)); + quadtree.put(new DegreePosition(50.104200000000006, 8.60622)); + quadtree.put(new DegreePosition(50.10295000000001, 8.607560000000001)); + quadtree.put(new DegreePosition(50.10038, 8.61049)); + quadtree.put(new DegreePosition(50.09879, 8.61238)); + quadtree.put(new DegreePosition(50.09743, 8.61368)); + quadtree.put(new DegreePosition(50.09572000000001, 8.6151)); + quadtree.put(new DegreePosition(50.09489000000001, 8.61561)); + quadtree.put(new DegreePosition(50.093360000000004, 8.616290000000001)); + quadtree.put(new DegreePosition(50.09149000000001, 8.616940000000001)); + quadtree.put(new DegreePosition(50.087880000000006, 8.617780000000002)); + quadtree.put(new DegreePosition(50.08559, 8.618160000000001)); + quadtree.put(new DegreePosition(50.08471, 8.61824)); + quadtree.put(new DegreePosition(50.083000000000006, 8.61814)); + quadtree.put(new DegreePosition(50.081680000000006, 8.617930000000001)); + quadtree.put(new DegreePosition(50.080400000000004, 8.617560000000001)); + quadtree.put(new DegreePosition(50.0797, 8.6173)); + quadtree.put(new DegreePosition(50.07835000000001, 8.61668)); + quadtree.put(new DegreePosition(50.06631, 8.61067)); + quadtree.put(new DegreePosition(50.06239, 8.608640000000001)); + quadtree.put(new DegreePosition(50.05212, 8.60364)); + quadtree.put(new DegreePosition(50.03866000000001, 8.596810000000001)); + quadtree.put(new DegreePosition(50.03486, 8.59505)); + quadtree.put(new DegreePosition(50.033010000000004, 8.5943)); + quadtree.put(new DegreePosition(50.03032, 8.59347)); + quadtree.put(new DegreePosition(50.02763, 8.59284)); + quadtree.put(new DegreePosition(50.025240000000004, 8.59252)); + quadtree.put(new DegreePosition(50.024260000000005, 8.59247)); + quadtree.put(new DegreePosition(50.02208, 8.59247)); + quadtree.put(new DegreePosition(50.020790000000005, 8.592550000000001)); + quadtree.put(new DegreePosition(50.019270000000006, 8.59271)); + quadtree.put(new DegreePosition(50.016510000000004, 8.593240000000002)); + quadtree.put(new DegreePosition(49.983160000000005, 8.60124)); + quadtree.put(new DegreePosition(49.976580000000006, 8.60275)); + quadtree.put(new DegreePosition(49.97316000000001, 8.60363)); + quadtree.put(new DegreePosition(49.96228000000001, 8.60614)); + quadtree.put(new DegreePosition(49.95414, 8.60811)); + quadtree.put(new DegreePosition(49.95309, 8.608310000000001)); + quadtree.put(new DegreePosition(49.95217, 8.60857)); + quadtree.put(new DegreePosition(49.948350000000005, 8.609440000000001)); + quadtree.put(new DegreePosition(49.943200000000004, 8.610750000000001)); + quadtree.put(new DegreePosition(49.941720000000004, 8.611040000000001)); + quadtree.put(new DegreePosition(49.935280000000006, 8.612530000000001)); + quadtree.put(new DegreePosition(49.933550000000004, 8.6128)); + quadtree.put(new DegreePosition(49.93207, 8.612960000000001)); + quadtree.put(new DegreePosition(49.93084, 8.61302)); + quadtree.put(new DegreePosition(49.928740000000005, 8.61299)); + quadtree.put(new DegreePosition(49.926950000000005, 8.61283)); + quadtree.put(new DegreePosition(49.92591, 8.61269)); + quadtree.put(new DegreePosition(49.92389000000001, 8.612260000000001)); + quadtree.put(new DegreePosition(49.92083, 8.6113)); + quadtree.put(new DegreePosition(49.91532, 8.609390000000001)); + quadtree.put(new DegreePosition(49.914170000000006, 8.60905)); + quadtree.put(new DegreePosition(49.91042, 8.60819)); + quadtree.put(new DegreePosition(49.89902000000001, 8.60598)); + quadtree.put(new DegreePosition(49.89663, 8.605450000000001)); + quadtree.put(new DegreePosition(49.887750000000004, 8.603710000000001)); + quadtree.put(new DegreePosition(49.886900000000004, 8.603610000000002)); + quadtree.put(new DegreePosition(49.88288000000001, 8.60288)); + quadtree.put(new DegreePosition(49.87717000000001, 8.60196)); + quadtree.put(new DegreePosition(49.874700000000004, 8.60147)); + quadtree.put(new DegreePosition(49.87281, 8.60119)); + quadtree.put(new DegreePosition(49.870450000000005, 8.60072)); + quadtree.put(new DegreePosition(49.86542000000001, 8.599530000000001)); + quadtree.put(new DegreePosition(49.86164, 8.59872)); + quadtree.put(new DegreePosition(49.861450000000005, 8.59861)); + quadtree.put(new DegreePosition(49.86047000000001, 8.598360000000001)); + quadtree.put(new DegreePosition(49.857470000000006, 8.597240000000001)); + quadtree.put(new DegreePosition(49.85718000000001, 8.59717)); + quadtree.put(new DegreePosition(49.85662000000001, 8.597150000000001)); + quadtree.put(new DegreePosition(49.856350000000006, 8.59721)); + quadtree.put(new DegreePosition(49.85586000000001, 8.59744)); + quadtree.put(new DegreePosition(49.85559000000001, 8.597660000000001)); + quadtree.put(new DegreePosition(49.855250000000005, 8.598090000000001)); + quadtree.put(new DegreePosition(49.854940000000006, 8.59862)); + quadtree.put(new DegreePosition(49.85474000000001, 8.599110000000001)); + quadtree.put(new DegreePosition(49.85452, 8.599860000000001)); + quadtree.put(new DegreePosition(49.85405, 8.60206)); + quadtree.put(new DegreePosition(49.8539, 8.602490000000001)); + quadtree.put(new DegreePosition(49.85325, 8.603750000000002)); + quadtree.put(new DegreePosition(49.851670000000006, 8.605870000000001)); + quadtree.put(new DegreePosition(49.85031000000001, 8.6079)); + quadtree.put(new DegreePosition(49.84915, 8.609850000000002)); + quadtree.put(new DegreePosition(49.846590000000006, 8.61508)); + quadtree.put(new DegreePosition(49.84149000000001, 8.626510000000001)); + quadtree.put(new DegreePosition(49.840500000000006, 8.62828)); + quadtree.put(new DegreePosition(49.839980000000004, 8.62898)); + quadtree.put(new DegreePosition(49.838530000000006, 8.63066)); + quadtree.put(new DegreePosition(49.83744, 8.6317)); + quadtree.put(new DegreePosition(49.83612, 8.632670000000001)); + quadtree.put(new DegreePosition(49.83462, 8.63345)); + quadtree.put(new DegreePosition(49.83399000000001, 8.63371)); + quadtree.put(new DegreePosition(49.832080000000005, 8.63414)); + quadtree.put(new DegreePosition(49.831320000000005, 8.63423)); + quadtree.put(new DegreePosition(49.830540000000006, 8.6342)); + quadtree.put(new DegreePosition(49.82978000000001, 8.63409)); + quadtree.put(new DegreePosition(49.82876, 8.633780000000002)); + quadtree.put(new DegreePosition(49.82734000000001, 8.633180000000001)); + quadtree.put(new DegreePosition(49.82462, 8.63161)); + quadtree.put(new DegreePosition(49.821630000000006, 8.62977)); + quadtree.put(new DegreePosition(49.820370000000004, 8.6292)); + quadtree.put(new DegreePosition(49.81908000000001, 8.62875)); + quadtree.put(new DegreePosition(49.81687, 8.62841)); + quadtree.put(new DegreePosition(49.81134, 8.62866)); + quadtree.put(new DegreePosition(49.81027, 8.62861)); + quadtree.put(new DegreePosition(49.80881, 8.62828)); + quadtree.put(new DegreePosition(49.80682, 8.627690000000001)); + quadtree.put(new DegreePosition(49.80575, 8.62719)); + quadtree.put(new DegreePosition(49.804100000000005, 8.62627)); + quadtree.put(new DegreePosition(49.80192, 8.624780000000001)); + quadtree.put(new DegreePosition(49.79887, 8.622520000000002)); + quadtree.put(new DegreePosition(49.797380000000004, 8.62151)); + quadtree.put(new DegreePosition(49.796110000000006, 8.620750000000001)); + quadtree.put(new DegreePosition(49.79467, 8.62005)); + quadtree.put(new DegreePosition(49.79345000000001, 8.619520000000001)); + quadtree.put(new DegreePosition(49.792060000000006, 8.61903)); + quadtree.put(new DegreePosition(49.79064, 8.61869)); + quadtree.put(new DegreePosition(49.78909, 8.618390000000002)); + quadtree.put(new DegreePosition(49.78412, 8.61762)); + quadtree.put(new DegreePosition(49.78295000000001, 8.61738)); + quadtree.put(new DegreePosition(49.78119, 8.61692)); + quadtree.put(new DegreePosition(49.77975000000001, 8.616380000000001)); + quadtree.put(new DegreePosition(49.778780000000005, 8.61593)); + quadtree.put(new DegreePosition(49.777640000000005, 8.61528)); + quadtree.put(new DegreePosition(49.77610000000001, 8.61415)); + quadtree.put(new DegreePosition(49.77506, 8.613190000000001)); + quadtree.put(new DegreePosition(49.77357000000001, 8.611600000000001)); + quadtree.put(new DegreePosition(49.77299000000001, 8.61087)); + quadtree.put(new DegreePosition(49.770830000000004, 8.607850000000001)); + quadtree.put(new DegreePosition(49.76859, 8.604610000000001)); + quadtree.put(new DegreePosition(49.768170000000005, 8.60405)); + quadtree.put(new DegreePosition(49.76608, 8.60152)); + quadtree.put(new DegreePosition(49.764790000000005, 8.60018)); + quadtree.put(new DegreePosition(49.762150000000005, 8.59793)); + quadtree.put(new DegreePosition(49.76151, 8.597430000000001)); + quadtree.put(new DegreePosition(49.76024, 8.59665)); + quadtree.put(new DegreePosition(49.757780000000004, 8.59553)); + quadtree.put(new DegreePosition(49.756260000000005, 8.59491)); + quadtree.put(new DegreePosition(49.75267, 8.59369)); + quadtree.put(new DegreePosition(49.75119, 8.593290000000001)); + quadtree.put(new DegreePosition(49.74869, 8.59272)); + quadtree.put(new DegreePosition(49.745580000000004, 8.592160000000002)); + quadtree.put(new DegreePosition(49.742180000000005, 8.59171)); + quadtree.put(new DegreePosition(49.739290000000004, 8.59154)); + quadtree.put(new DegreePosition(49.735220000000005, 8.591550000000002)); + quadtree.put(new DegreePosition(49.73221, 8.59176)); + quadtree.put(new DegreePosition(49.72905, 8.59223)); + quadtree.put(new DegreePosition(49.72579, 8.592830000000001)); + quadtree.put(new DegreePosition(49.722390000000004, 8.59373)); + quadtree.put(new DegreePosition(49.715450000000004, 8.59572)); + quadtree.put(new DegreePosition(49.705760000000005, 8.599260000000001)); + quadtree.put(new DegreePosition(49.6989, 8.602160000000001)); + quadtree.put(new DegreePosition(49.698060000000005, 8.602400000000001)); + quadtree.put(new DegreePosition(49.695820000000005, 8.602820000000001)); + quadtree.put(new DegreePosition(49.693780000000004, 8.602960000000001)); + quadtree.put(new DegreePosition(49.69301, 8.602960000000001)); + quadtree.put(new DegreePosition(49.6916, 8.602860000000002)); + quadtree.put(new DegreePosition(49.69035, 8.602640000000001)); + quadtree.put(new DegreePosition(49.689150000000005, 8.60234)); + quadtree.put(new DegreePosition(49.68645, 8.60135)); + quadtree.put(new DegreePosition(49.68348, 8.600140000000001)); + quadtree.put(new DegreePosition(49.68186000000001, 8.599680000000001)); + quadtree.put(new DegreePosition(49.67985, 8.599250000000001)); + quadtree.put(new DegreePosition(49.678070000000005, 8.59914)); + quadtree.put(new DegreePosition(49.676970000000004, 8.599160000000001)); + quadtree.put(new DegreePosition(49.67475, 8.59946)); + quadtree.put(new DegreePosition(49.672610000000006, 8.60003)); + quadtree.put(new DegreePosition(49.669450000000005, 8.6013)); + quadtree.put(new DegreePosition(49.667790000000004, 8.60214)); + quadtree.put(new DegreePosition(49.6655, 8.60356)); + quadtree.put(new DegreePosition(49.66145, 8.60621)); + quadtree.put(new DegreePosition(49.65959, 8.607330000000001)); + quadtree.put(new DegreePosition(49.657700000000006, 8.6083)); + quadtree.put(new DegreePosition(49.65603, 8.60891)); + quadtree.put(new DegreePosition(49.65431, 8.609340000000001)); + quadtree.put(new DegreePosition(49.65194, 8.60959)); + quadtree.put(new DegreePosition(49.649770000000004, 8.609620000000001)); + quadtree.put(new DegreePosition(49.64312, 8.609250000000001)); + quadtree.put(new DegreePosition(49.64190000000001, 8.60926)); + quadtree.put(new DegreePosition(49.64029000000001, 8.609380000000002)); + quadtree.put(new DegreePosition(49.63906, 8.609530000000001)); + quadtree.put(new DegreePosition(49.63758000000001, 8.60983)); + quadtree.put(new DegreePosition(49.63456000000001, 8.610570000000001)); + quadtree.put(new DegreePosition(49.632870000000004, 8.61125)); + quadtree.put(new DegreePosition(49.630630000000004, 8.612340000000001)); + quadtree.put(new DegreePosition(49.62894000000001, 8.61344)); + quadtree.put(new DegreePosition(49.627930000000006, 8.61416)); + quadtree.put(new DegreePosition(49.62348, 8.61804)); + quadtree.put(new DegreePosition(49.622220000000006, 8.61931)); + quadtree.put(new DegreePosition(49.618030000000005, 8.623240000000001)); + quadtree.put(new DegreePosition(49.6152, 8.6256)); + quadtree.put(new DegreePosition(49.61211, 8.627540000000002)); + quadtree.put(new DegreePosition(49.61057, 8.62833)); + quadtree.put(new DegreePosition(49.60898, 8.62899)); + quadtree.put(new DegreePosition(49.607150000000004, 8.629620000000001)); + quadtree.put(new DegreePosition(49.604940000000006, 8.630170000000001)); + quadtree.put(new DegreePosition(49.603770000000004, 8.63035)); + quadtree.put(new DegreePosition(49.60065, 8.630640000000001)); + quadtree.put(new DegreePosition(49.59897, 8.63086)); + quadtree.put(new DegreePosition(49.59581000000001, 8.63113)); + quadtree.put(new DegreePosition(49.59308000000001, 8.63165)); + quadtree.put(new DegreePosition(49.59147, 8.63212)); + quadtree.put(new DegreePosition(49.58559, 8.634110000000002)); + quadtree.put(new DegreePosition(49.58408000000001, 8.634540000000001)); + quadtree.put(new DegreePosition(49.582060000000006, 8.635010000000001)); + quadtree.put(new DegreePosition(49.580670000000005, 8.635200000000001)); + quadtree.put(new DegreePosition(49.57885, 8.635330000000002)); + quadtree.put(new DegreePosition(49.57715, 8.63531)); + quadtree.put(new DegreePosition(49.57417, 8.6349)); + quadtree.put(new DegreePosition(49.572190000000006, 8.63455)); + quadtree.put(new DegreePosition(49.570730000000005, 8.63413)); + quadtree.put(new DegreePosition(49.568430000000006, 8.6333)); + quadtree.put(new DegreePosition(49.565090000000005, 8.63171)); + quadtree.put(new DegreePosition(49.560050000000004, 8.62922)); + quadtree.put(new DegreePosition(49.55922, 8.62894)); + quadtree.put(new DegreePosition(49.55603000000001, 8.628010000000002)); + quadtree.put(new DegreePosition(49.55425, 8.62767)); + quadtree.put(new DegreePosition(49.55111, 8.62743)); + quadtree.put(new DegreePosition(49.548930000000006, 8.62748)); + quadtree.put(new DegreePosition(49.548120000000004, 8.62757)); + quadtree.put(new DegreePosition(49.54666, 8.62784)); + quadtree.put(new DegreePosition(49.54466000000001, 8.62827)); + quadtree.put(new DegreePosition(49.54215000000001, 8.62898)); + quadtree.put(new DegreePosition(49.539440000000006, 8.62991)); + quadtree.put(new DegreePosition(49.537850000000006, 8.63052)); + quadtree.put(new DegreePosition(49.52872000000001, 8.63442)); + quadtree.put(new DegreePosition(49.527300000000004, 8.63508)); + quadtree.put(new DegreePosition(49.52526, 8.635860000000001)); + quadtree.put(new DegreePosition(49.52337000000001, 8.636510000000001)); + quadtree.put(new DegreePosition(49.52058, 8.637360000000001)); + quadtree.put(new DegreePosition(49.518550000000005, 8.637910000000002)); + quadtree.put(new DegreePosition(49.51503, 8.638770000000001)); + quadtree.put(new DegreePosition(49.51098, 8.639330000000001)); + quadtree.put(new DegreePosition(49.50845, 8.63959)); + quadtree.put(new DegreePosition(49.50417, 8.639740000000002)); + quadtree.put(new DegreePosition(49.499810000000004, 8.63963)); + quadtree.put(new DegreePosition(49.49546, 8.63912)); + quadtree.put(new DegreePosition(49.49306000000001, 8.638910000000001)); + quadtree.put(new DegreePosition(49.490320000000004, 8.638760000000001)); + quadtree.put(new DegreePosition(49.48669, 8.63865)); + quadtree.put(new DegreePosition(49.484480000000005, 8.638760000000001)); + quadtree.put(new DegreePosition(49.48073, 8.639330000000001)); + quadtree.put(new DegreePosition(49.4776, 8.640130000000001)); + quadtree.put(new DegreePosition(49.476310000000005, 8.64052)); + quadtree.put(new DegreePosition(49.468500000000006, 8.64342)); + quadtree.put(new DegreePosition(49.464470000000006, 8.64483)); + quadtree.put(new DegreePosition(49.461290000000005, 8.64577)); + quadtree.put(new DegreePosition(49.458690000000004, 8.64629)); + quadtree.put(new DegreePosition(49.457530000000006, 8.646460000000001)); + quadtree.put(new DegreePosition(49.455380000000005, 8.64666)); + quadtree.put(new DegreePosition(49.453050000000005, 8.64668)); + quadtree.put(new DegreePosition(49.451750000000004, 8.64661)); + quadtree.put(new DegreePosition(49.450430000000004, 8.64647)); + quadtree.put(new DegreePosition(49.44711, 8.64578)); + quadtree.put(new DegreePosition(49.445350000000005, 8.6453)); + quadtree.put(new DegreePosition(49.44398, 8.64478)); + quadtree.put(new DegreePosition(49.44091, 8.64338)); + quadtree.put(new DegreePosition(49.439840000000004, 8.64282)); + quadtree.put(new DegreePosition(49.438340000000004, 8.64193)); + quadtree.put(new DegreePosition(49.43139000000001, 8.63724)); + quadtree.put(new DegreePosition(49.42933000000001, 8.636080000000002)); + quadtree.put(new DegreePosition(49.427890000000005, 8.63537)); + quadtree.put(new DegreePosition(49.426460000000006, 8.634820000000001)); + quadtree.put(new DegreePosition(49.42436000000001, 8.634160000000001)); + quadtree.put(new DegreePosition(49.422200000000004, 8.63371)); + quadtree.put(new DegreePosition(49.42033000000001, 8.633500000000002)); + quadtree.put(new DegreePosition(49.41946, 8.63347)); + quadtree.put(new DegreePosition(49.41798000000001, 8.63348)); + quadtree.put(new DegreePosition(49.415710000000004, 8.633700000000001)); + quadtree.put(new DegreePosition(49.41463, 8.6339)); + quadtree.put(new DegreePosition(49.412670000000006, 8.63437)); + quadtree.put(new DegreePosition(49.411120000000004, 8.6349)); + quadtree.put(new DegreePosition(49.40739000000001, 8.636330000000001)); + quadtree.put(new DegreePosition(49.40572, 8.636800000000001)); + quadtree.put(new DegreePosition(49.39164, 8.63865)); + quadtree.put(new DegreePosition(49.39021, 8.63879)); + quadtree.put(new DegreePosition(49.38855, 8.638720000000001)); + quadtree.put(new DegreePosition(49.38721, 8.638480000000001)); + quadtree.put(new DegreePosition(49.38656, 8.638290000000001)); + quadtree.put(new DegreePosition(49.38440000000001, 8.63746)); + quadtree.put(new DegreePosition(49.37805, 8.63387)); + quadtree.put(new DegreePosition(49.376940000000005, 8.63334)); + quadtree.put(new DegreePosition(49.376000000000005, 8.63297)); + quadtree.put(new DegreePosition(49.37500000000001, 8.63269)); + quadtree.put(new DegreePosition(49.373780000000004, 8.632480000000001)); + quadtree.put(new DegreePosition(49.36988, 8.63222)); + quadtree.put(new DegreePosition(49.36872, 8.632190000000001)); + quadtree.put(new DegreePosition(49.364360000000005, 8.631910000000001)); + quadtree.put(new DegreePosition(49.35228000000001, 8.63127)); + quadtree.put(new DegreePosition(49.34911, 8.631160000000001)); + quadtree.put(new DegreePosition(49.33944, 8.63067)); + quadtree.put(new DegreePosition(49.31497, 8.62917)); + quadtree.put(new DegreePosition(49.312200000000004, 8.62892)); + quadtree.put(new DegreePosition(49.31073000000001, 8.628670000000001)); + quadtree.put(new DegreePosition(49.303380000000004, 8.626940000000001)); + quadtree.put(new DegreePosition(49.30293, 8.62654)); + quadtree.put(new DegreePosition(49.30285000000001, 8.62644)); + quadtree.put(new DegreePosition(49.302690000000005, 8.62608)); + quadtree.put(new DegreePosition(49.30268, 8.62584)); + quadtree.put(new DegreePosition(49.30299, 8.62268)); + quadtree.put(new DegreePosition(49.30303000000001, 8.622010000000001)); + quadtree.put(new DegreePosition(49.30299, 8.621730000000001)); + quadtree.put(new DegreePosition(49.30293, 8.6216)); + quadtree.put(new DegreePosition(49.30274000000001, 8.62147)); + quadtree.put(new DegreePosition(49.30238000000001, 8.62139)); + quadtree.put(new DegreePosition(49.302290000000006, 8.621310000000001)); + quadtree.put(new DegreePosition(49.301950000000005, 8.62127)); + quadtree.put(new DegreePosition(49.30187, 8.62279)); + quadtree.put(new DegreePosition(49.30172, 8.62456)); + quadtree.put(new DegreePosition(49.30134, 8.62697)); + quadtree.put(new DegreePosition(49.30116, 8.627690000000001)); + quadtree.put(new DegreePosition(49.30053, 8.629800000000001)); + quadtree.put(new DegreePosition(49.299820000000004, 8.63142)); + quadtree.put(new DegreePosition(49.29916, 8.6327)); + quadtree.put(new DegreePosition(49.299530000000004, 8.63279)); + quadtree.put(new DegreePosition(49.30006, 8.63272)); + quadtree.put(new DegreePosition(49.30068000000001, 8.63277)); + quadtree.put(new DegreePosition(49.30082, 8.63283)); + quadtree.put(new DegreePosition(49.301050000000004, 8.633040000000001)); + quadtree.put(new DegreePosition(49.300340000000006, 8.634780000000001)); + quadtree.put(new DegreePosition(49.29995, 8.63593)); + quadtree.put(new DegreePosition(49.299690000000005, 8.63723)); + quadtree.put(new DegreePosition(49.299600000000005, 8.638200000000001)); + quadtree.put(new DegreePosition(49.29963, 8.63973)); + quadtree.put(new DegreePosition(49.299710000000005, 8.64104)); + quadtree.put(new DegreePosition(49.29831, 8.643080000000001)); + quadtree.put(new DegreePosition(49.29796, 8.64334)); + quadtree.put(new DegreePosition(49.297920000000005, 8.643450000000001)); + quadtree.put(new DegreePosition(49.297920000000005, 8.643590000000001)); + quadtree.put(new DegreePosition(49.29798, 8.64389)); + quadtree.put(new DegreePosition(49.299420000000005, 8.646180000000001)); + quadtree.put(new DegreePosition(49.299580000000006, 8.64652)); + quadtree.put(new DegreePosition(49.29955, 8.646640000000001)); + quadtree.put(new DegreePosition(49.29957, 8.64677)); + quadtree.put(new DegreePosition(49.299710000000005, 8.64681)); + quadtree.put(new DegreePosition(49.29977, 8.646730000000002)); + quadtree.put(new DegreePosition(49.299780000000005, 8.646640000000001)); + quadtree.put(new DegreePosition(49.299690000000005, 8.64648)); + quadtree.put(new DegreePosition(49.2997, 8.64638)); + quadtree.put(new DegreePosition(49.29992000000001, 8.64586)); + quadtree.put(new DegreePosition(49.29995, 8.64563)); + quadtree.put(new DegreePosition(49.300790000000006, 8.644)); + quadtree.put(new DegreePosition(49.301120000000004, 8.643650000000001)); + quadtree.put(new DegreePosition(49.301390000000005, 8.64348)); + quadtree.put(new DegreePosition(49.30283000000001, 8.642980000000001)); + quadtree.put(new DegreePosition(49.30346, 8.642560000000001)); + quadtree.put(new DegreePosition(49.30378, 8.64241)); + quadtree.put(new DegreePosition(49.309740000000005, 8.64105)); + quadtree.put(new DegreePosition(49.309760000000004, 8.64207)); + quadtree.put(new DegreePosition(49.309140000000006, 8.64212)); + quadtree.put(new DegreePosition(49.309140000000006, 8.643880000000001)); + quadtree.put(new DegreePosition(49.30917, 8.64403)); + quadtree.put(new DegreePosition(49.30923000000001, 8.644110000000001)); + quadtree.put(new DegreePosition(49.30937, 8.644110000000001)); + + p1 = new DegreePosition(50.47498691278631, 8.701171875); + p2 = new DegreePosition(50.47149085139956, 8.7066650390625); + p3 = new DegreePosition(50.47848271564207, 8.7066650390625); + } @Test public void testNoNPEDuringSecondPutInSameLeaf() { @@ -63,1132 +1217,6 @@ public class QuadTreeTest { @Test public void testDistance() { - GLatLngQuadTree quadtree = new GLatLngQuadTree(new DegreePosition(49.29, - 7.9), new DegreePosition(50.88506, 8.75), /* maxItems */30); - quadtree.put(new DegreePosition(50.88505000000001, 7.995520000000001)); - quadtree.put(new DegreePosition(50.884930000000004, 7.996440000000001)); - quadtree.put(new DegreePosition(50.884840000000004, 7.99666)); - quadtree.put(new DegreePosition(50.8843, 7.997490000000001)); - quadtree.put(new DegreePosition(50.884240000000005, 7.997730000000001)); - quadtree.put(new DegreePosition(50.88423, 7.997980000000001)); - quadtree.put(new DegreePosition(50.8847, 7.999010000000001)); - quadtree.put(new DegreePosition(50.884600000000006, 7.999130000000001)); - quadtree.put(new DegreePosition(50.88448, 7.99938)); - quadtree.put(new DegreePosition(50.88421, 8.00014)); - quadtree.put(new DegreePosition(50.88382000000001, 8.00174)); - quadtree.put(new DegreePosition(50.88355000000001, 8.00263)); - quadtree.put(new DegreePosition(50.883570000000006, 8.00309)); - quadtree.put(new DegreePosition(50.883700000000005, 8.003530000000001)); - quadtree.put(new DegreePosition(50.88212000000001, 8.00539)); - quadtree.put(new DegreePosition(50.881620000000005, 8.006260000000001)); - quadtree.put(new DegreePosition(50.881080000000004, 8.007610000000001)); - quadtree.put(new DegreePosition(50.88103, 8.007900000000001)); - quadtree.put(new DegreePosition(50.88103, 8.009030000000001)); - quadtree.put(new DegreePosition(50.880880000000005, 8.009640000000001)); - quadtree.put(new DegreePosition(50.88047, 8.010860000000001)); - quadtree.put(new DegreePosition(50.880030000000005, 8.012500000000001)); - quadtree.put(new DegreePosition(50.87866, 8.016810000000001)); - quadtree.put(new DegreePosition(50.87832, 8.017790000000002)); - quadtree.put(new DegreePosition(50.878240000000005, 8.01793)); - quadtree.put(new DegreePosition(50.878150000000005, 8.01795)); - quadtree.put(new DegreePosition(50.87803, 8.01782)); - quadtree.put(new DegreePosition(50.87776, 8.01717)); - quadtree.put(new DegreePosition(50.8774, 8.01654)); - quadtree.put(new DegreePosition(50.87709, 8.01622)); - quadtree.put(new DegreePosition(50.87585000000001, 8.013850000000001)); - quadtree.put(new DegreePosition(50.87538000000001, 8.01304)); - quadtree.put(new DegreePosition(50.87402, 8.01111)); - quadtree.put(new DegreePosition(50.87028, 8.003960000000001)); - quadtree.put(new DegreePosition(50.869670000000006, 8.003160000000001)); - quadtree.put(new DegreePosition(50.86925, 8.002780000000001)); - quadtree.put(new DegreePosition(50.86858, 8.00244)); - quadtree.put(new DegreePosition(50.868, 8.002310000000001)); - quadtree.put(new DegreePosition(50.86739000000001, 8.00237)); - quadtree.put(new DegreePosition(50.867070000000005, 8.00248)); - quadtree.put(new DegreePosition(50.86674000000001, 8.00267)); - quadtree.put(new DegreePosition(50.865950000000005, 8.00333)); - quadtree.put(new DegreePosition(50.86545, 8.00398)); - quadtree.put(new DegreePosition(50.86459000000001, 8.0053)); - quadtree.put(new DegreePosition(50.86424, 8.00577)); - quadtree.put(new DegreePosition(50.863870000000006, 8.00618)); - quadtree.put(new DegreePosition(50.86352, 8.0065)); - quadtree.put(new DegreePosition(50.862970000000004, 8.006820000000001)); - quadtree.put(new DegreePosition(50.862370000000006, 8.00703)); - quadtree.put(new DegreePosition(50.86110000000001, 8.00722)); - quadtree.put(new DegreePosition(50.86061, 8.00721)); - quadtree.put(new DegreePosition(50.859860000000005, 8.00711)); - quadtree.put(new DegreePosition(50.85918, 8.006920000000001)); - quadtree.put(new DegreePosition(50.85824, 8.006120000000001)); - quadtree.put(new DegreePosition(50.85784, 8.005640000000001)); - quadtree.put(new DegreePosition(50.85757, 8.0052)); - quadtree.put(new DegreePosition(50.85752, 8.00496)); - quadtree.put(new DegreePosition(50.85752, 8.00463)); - quadtree.put(new DegreePosition(50.85963, 8.00209)); - quadtree.put(new DegreePosition(50.86046, 8.0008)); - quadtree.put(new DegreePosition(50.86081, 8.00008)); - quadtree.put(new DegreePosition(50.86113, 7.999230000000001)); - quadtree.put(new DegreePosition(50.86128, 7.998690000000001)); - quadtree.put(new DegreePosition(50.861430000000006, 7.997870000000001)); - quadtree.put(new DegreePosition(50.86149, 7.99706)); - quadtree.put(new DegreePosition(50.86149, 7.996150000000001)); - quadtree.put(new DegreePosition(50.86144, 7.9955300000000005)); - quadtree.put(new DegreePosition(50.86130000000001, 7.99476)); - quadtree.put(new DegreePosition(50.86106, 7.993900000000001)); - quadtree.put(new DegreePosition(50.860220000000005, 7.991490000000001)); - quadtree.put(new DegreePosition(50.859970000000004, 7.990360000000001)); - quadtree.put(new DegreePosition(50.859930000000006, 7.987780000000001)); - quadtree.put(new DegreePosition(50.859970000000004, 7.98737)); - quadtree.put(new DegreePosition(50.86059, 7.984820000000001)); - quadtree.put(new DegreePosition(50.86065000000001, 7.984260000000001)); - quadtree.put(new DegreePosition(50.860620000000004, 7.98359)); - quadtree.put(new DegreePosition(50.8605, 7.9831900000000005)); - quadtree.put(new DegreePosition(50.860310000000005, 7.98284)); - quadtree.put(new DegreePosition(50.86001, 7.982540000000001)); - quadtree.put(new DegreePosition(50.85971000000001, 7.982450000000001)); - quadtree.put(new DegreePosition(50.859410000000004, 7.98251)); - quadtree.put(new DegreePosition(50.85918, 7.982670000000001)); - quadtree.put(new DegreePosition(50.85898, 7.98291)); - quadtree.put(new DegreePosition(50.858790000000006, 7.983370000000001)); - quadtree.put(new DegreePosition(50.858520000000006, 7.9846)); - quadtree.put(new DegreePosition(50.8584, 7.98488)); - quadtree.put(new DegreePosition(50.858140000000006, 7.9851600000000005)); - quadtree.put(new DegreePosition(50.85756000000001, 7.9855100000000006)); - quadtree.put(new DegreePosition(50.85616, 7.985920000000001)); - quadtree.put(new DegreePosition(50.85548000000001, 7.98603)); - quadtree.put(new DegreePosition(50.85210000000001, 7.9863100000000005)); - quadtree.put(new DegreePosition(50.850970000000004, 7.98662)); - quadtree.put(new DegreePosition(50.849230000000006, 7.98739)); - quadtree.put(new DegreePosition(50.849030000000006, 7.98758)); - quadtree.put(new DegreePosition(50.84798000000001, 7.988300000000001)); - quadtree.put(new DegreePosition(50.84763, 7.988600000000001)); - quadtree.put(new DegreePosition(50.84695000000001, 7.989240000000001)); - quadtree.put(new DegreePosition(50.84591, 7.9903900000000005)); - quadtree.put(new DegreePosition(50.84514, 7.99143)); - quadtree.put(new DegreePosition(50.844370000000005, 7.992660000000001)); - quadtree.put(new DegreePosition(50.84355000000001, 7.994140000000001)); - quadtree.put(new DegreePosition(50.842800000000004, 7.9958800000000005)); - quadtree.put(new DegreePosition(50.84174, 7.99898)); - quadtree.put(new DegreePosition(50.84141, 7.9998700000000005)); - quadtree.put(new DegreePosition(50.84085, 8.00121)); - quadtree.put(new DegreePosition(50.84001000000001, 8.00285)); - quadtree.put(new DegreePosition(50.83823, 8.00586)); - quadtree.put(new DegreePosition(50.83747, 8.00736)); - quadtree.put(new DegreePosition(50.83702, 8.008410000000001)); - quadtree.put(new DegreePosition(50.83662, 8.00956)); - quadtree.put(new DegreePosition(50.83628, 8.01093)); - quadtree.put(new DegreePosition(50.83605000000001, 8.012160000000002)); - quadtree.put(new DegreePosition(50.83545, 8.016810000000001)); - quadtree.put(new DegreePosition(50.83491, 8.01938)); - quadtree.put(new DegreePosition(50.834250000000004, 8.02161)); - quadtree.put(new DegreePosition(50.83332000000001, 8.025210000000001)); - quadtree.put(new DegreePosition(50.8331, 8.0264)); - quadtree.put(new DegreePosition(50.83299, 8.027230000000001)); - quadtree.put(new DegreePosition(50.832890000000006, 8.028220000000001)); - quadtree.put(new DegreePosition(50.832820000000005, 8.0296)); - quadtree.put(new DegreePosition(50.83283, 8.030740000000002)); - quadtree.put(new DegreePosition(50.832950000000004, 8.03252)); - quadtree.put(new DegreePosition(50.833180000000006, 8.034790000000001)); - quadtree.put(new DegreePosition(50.833200000000005, 8.036140000000001)); - quadtree.put(new DegreePosition(50.83316000000001, 8.03739)); - quadtree.put(new DegreePosition(50.83312, 8.03801)); - quadtree.put(new DegreePosition(50.83299, 8.03907)); - quadtree.put(new DegreePosition(50.832730000000005, 8.04087)); - quadtree.put(new DegreePosition(50.83243, 8.042290000000001)); - quadtree.put(new DegreePosition(50.831880000000005, 8.04424)); - quadtree.put(new DegreePosition(50.83072000000001, 8.047070000000001)); - quadtree.put(new DegreePosition(50.8286, 8.051340000000001)); - quadtree.put(new DegreePosition(50.82793, 8.052610000000001)); - quadtree.put(new DegreePosition(50.827650000000006, 8.053410000000001)); - quadtree.put(new DegreePosition(50.827290000000005, 8.054680000000001)); - quadtree.put(new DegreePosition(50.82674, 8.05762)); - quadtree.put(new DegreePosition(50.826620000000005, 8.05882)); - quadtree.put(new DegreePosition(50.826550000000005, 8.06226)); - quadtree.put(new DegreePosition(50.82645, 8.0639)); - quadtree.put(new DegreePosition(50.8263, 8.065420000000001)); - quadtree.put(new DegreePosition(50.82591000000001, 8.06756)); - quadtree.put(new DegreePosition(50.825540000000004, 8.06884)); - quadtree.put(new DegreePosition(50.82486, 8.070490000000001)); - quadtree.put(new DegreePosition(50.82444, 8.07141)); - quadtree.put(new DegreePosition(50.82368, 8.07266)); - quadtree.put(new DegreePosition(50.821760000000005, 8.075130000000001)); - quadtree.put(new DegreePosition(50.821020000000004, 8.07614)); - quadtree.put(new DegreePosition(50.8205, 8.077)); - quadtree.put(new DegreePosition(50.819950000000006, 8.078240000000001)); - quadtree.put(new DegreePosition(50.81955000000001, 8.079450000000001)); - quadtree.put(new DegreePosition(50.819120000000005, 8.08103)); - quadtree.put(new DegreePosition(50.81859000000001, 8.08351)); - quadtree.put(new DegreePosition(50.818130000000004, 8.08783)); - quadtree.put(new DegreePosition(50.81796000000001, 8.088840000000001)); - quadtree.put(new DegreePosition(50.81774000000001, 8.08971)); - quadtree.put(new DegreePosition(50.817420000000006, 8.090670000000001)); - quadtree.put(new DegreePosition(50.81671000000001, 8.09238)); - quadtree.put(new DegreePosition(50.81647, 8.09285)); - quadtree.put(new DegreePosition(50.81557, 8.094370000000001)); - quadtree.put(new DegreePosition(50.814960000000006, 8.09521)); - quadtree.put(new DegreePosition(50.81427000000001, 8.09603)); - quadtree.put(new DegreePosition(50.81369, 8.0966)); - quadtree.put(new DegreePosition(50.81291, 8.09722)); - quadtree.put(new DegreePosition(50.81228, 8.09763)); - quadtree.put(new DegreePosition(50.81022, 8.098590000000002)); - quadtree.put(new DegreePosition(50.80885000000001, 8.098980000000001)); - quadtree.put(new DegreePosition(50.806900000000006, 8.09918)); - quadtree.put(new DegreePosition(50.805350000000004, 8.09904)); - quadtree.put(new DegreePosition(50.804460000000006, 8.098790000000001)); - quadtree.put(new DegreePosition(50.803180000000005, 8.09833)); - quadtree.put(new DegreePosition(50.79974000000001, 8.09685)); - quadtree.put(new DegreePosition(50.798950000000005, 8.09665)); - quadtree.put(new DegreePosition(50.797990000000006, 8.09664)); - quadtree.put(new DegreePosition(50.79683000000001, 8.096760000000002)); - quadtree.put(new DegreePosition(50.795730000000006, 8.09699)); - quadtree.put(new DegreePosition(50.794630000000005, 8.097520000000001)); - quadtree.put(new DegreePosition(50.79238, 8.099340000000002)); - quadtree.put(new DegreePosition(50.79153, 8.10016)); - quadtree.put(new DegreePosition(50.79068, 8.10111)); - quadtree.put(new DegreePosition(50.789970000000004, 8.10195)); - quadtree.put(new DegreePosition(50.78891, 8.103380000000001)); - quadtree.put(new DegreePosition(50.78833, 8.104230000000001)); - quadtree.put(new DegreePosition(50.78759, 8.10539)); - quadtree.put(new DegreePosition(50.786970000000004, 8.10646)); - quadtree.put(new DegreePosition(50.78605, 8.10823)); - quadtree.put(new DegreePosition(50.78566000000001, 8.10905)); - quadtree.put(new DegreePosition(50.784890000000004, 8.11107)); - quadtree.put(new DegreePosition(50.784670000000006, 8.11194)); - quadtree.put(new DegreePosition(50.78437, 8.11344)); - quadtree.put(new DegreePosition(50.784200000000006, 8.11463)); - quadtree.put(new DegreePosition(50.78407000000001, 8.11609)); - quadtree.put(new DegreePosition(50.78407000000001, 8.11761)); - quadtree.put(new DegreePosition(50.78412, 8.118820000000001)); - quadtree.put(new DegreePosition(50.784240000000004, 8.11996)); - quadtree.put(new DegreePosition(50.78457, 8.121500000000001)); - quadtree.put(new DegreePosition(50.785250000000005, 8.12428)); - quadtree.put(new DegreePosition(50.78555, 8.125720000000001)); - quadtree.put(new DegreePosition(50.78586000000001, 8.12766)); - quadtree.put(new DegreePosition(50.786060000000006, 8.129610000000001)); - quadtree.put(new DegreePosition(50.78614, 8.13101)); - quadtree.put(new DegreePosition(50.78609, 8.13326)); - quadtree.put(new DegreePosition(50.78598, 8.13451)); - quadtree.put(new DegreePosition(50.78578, 8.135900000000001)); - quadtree.put(new DegreePosition(50.7854, 8.137880000000001)); - quadtree.put(new DegreePosition(50.78511, 8.13907)); - quadtree.put(new DegreePosition(50.784330000000004, 8.14145)); - quadtree.put(new DegreePosition(50.783840000000005, 8.14282)); - quadtree.put(new DegreePosition(50.78352, 8.143510000000001)); - quadtree.put(new DegreePosition(50.78285, 8.1446)); - quadtree.put(new DegreePosition(50.781650000000006, 8.14638)); - quadtree.put(new DegreePosition(50.781330000000004, 8.146920000000001)); - quadtree.put(new DegreePosition(50.780280000000005, 8.148060000000001)); - quadtree.put(new DegreePosition(50.77908000000001, 8.149090000000001)); - quadtree.put(new DegreePosition(50.7781, 8.14973)); - quadtree.put(new DegreePosition(50.77716, 8.150160000000001)); - quadtree.put(new DegreePosition(50.77579, 8.15053)); - quadtree.put(new DegreePosition(50.773810000000005, 8.150770000000001)); - quadtree.put(new DegreePosition(50.772470000000006, 8.15085)); - quadtree.put(new DegreePosition(50.77046000000001, 8.15074)); - quadtree.put(new DegreePosition(50.76778, 8.15074)); - quadtree.put(new DegreePosition(50.76690000000001, 8.15079)); - quadtree.put(new DegreePosition(50.76615, 8.15093)); - quadtree.put(new DegreePosition(50.76543, 8.15116)); - quadtree.put(new DegreePosition(50.764480000000006, 8.151670000000001)); - quadtree.put(new DegreePosition(50.763690000000004, 8.15222)); - quadtree.put(new DegreePosition(50.76299, 8.152890000000001)); - quadtree.put(new DegreePosition(50.76243, 8.15352)); - quadtree.put(new DegreePosition(50.76185, 8.15432)); - quadtree.put(new DegreePosition(50.761190000000006, 8.15549)); - quadtree.put(new DegreePosition(50.760670000000005, 8.1567)); - quadtree.put(new DegreePosition(50.76019, 8.15832)); - quadtree.put(new DegreePosition(50.759910000000005, 8.15996)); - quadtree.put(new DegreePosition(50.75983, 8.16092)); - quadtree.put(new DegreePosition(50.75974, 8.16243)); - quadtree.put(new DegreePosition(50.759780000000006, 8.164000000000001)); - quadtree.put(new DegreePosition(50.75992, 8.16568)); - quadtree.put(new DegreePosition(50.75997, 8.168050000000001)); - quadtree.put(new DegreePosition(50.75992, 8.16923)); - quadtree.put(new DegreePosition(50.759820000000005, 8.170480000000001)); - quadtree.put(new DegreePosition(50.75959, 8.172130000000001)); - quadtree.put(new DegreePosition(50.759190000000004, 8.17365)); - quadtree.put(new DegreePosition(50.75893000000001, 8.17436)); - quadtree.put(new DegreePosition(50.75638000000001, 8.18037)); - quadtree.put(new DegreePosition(50.755810000000004, 8.181840000000001)); - quadtree.put(new DegreePosition(50.755410000000005, 8.18307)); - quadtree.put(new DegreePosition(50.755160000000004, 8.184000000000001)); - quadtree.put(new DegreePosition(50.75482, 8.185960000000001)); - quadtree.put(new DegreePosition(50.75464, 8.18824)); - quadtree.put(new DegreePosition(50.75457, 8.19096)); - quadtree.put(new DegreePosition(50.754670000000004, 8.193750000000001)); - quadtree.put(new DegreePosition(50.75482, 8.19589)); - quadtree.put(new DegreePosition(50.75533, 8.20124)); - quadtree.put(new DegreePosition(50.75542, 8.202910000000001)); - quadtree.put(new DegreePosition(50.755390000000006, 8.20532)); - quadtree.put(new DegreePosition(50.75526000000001, 8.206850000000001)); - quadtree.put(new DegreePosition(50.75502, 8.20803)); - quadtree.put(new DegreePosition(50.75486, 8.20864)); - quadtree.put(new DegreePosition(50.75448, 8.209750000000001)); - quadtree.put(new DegreePosition(50.75424, 8.210320000000001)); - quadtree.put(new DegreePosition(50.75347000000001, 8.211730000000001)); - quadtree.put(new DegreePosition(50.75301, 8.21236)); - quadtree.put(new DegreePosition(50.75206000000001, 8.213370000000001)); - quadtree.put(new DegreePosition(50.74982000000001, 8.215440000000001)); - quadtree.put(new DegreePosition(50.748900000000006, 8.21657)); - quadtree.put(new DegreePosition(50.74851, 8.21718)); - quadtree.put(new DegreePosition(50.748200000000004, 8.21775)); - quadtree.put(new DegreePosition(50.74777, 8.21879)); - quadtree.put(new DegreePosition(50.7475, 8.21968)); - quadtree.put(new DegreePosition(50.747240000000005, 8.220880000000001)); - quadtree.put(new DegreePosition(50.7471, 8.22189)); - quadtree.put(new DegreePosition(50.74703, 8.222710000000001)); - quadtree.put(new DegreePosition(50.746990000000004, 8.22573)); - quadtree.put(new DegreePosition(50.74696, 8.22653)); - quadtree.put(new DegreePosition(50.74687, 8.22747)); - quadtree.put(new DegreePosition(50.746680000000005, 8.228530000000001)); - quadtree.put(new DegreePosition(50.746410000000004, 8.22976)); - quadtree.put(new DegreePosition(50.74609, 8.23095)); - quadtree.put(new DegreePosition(50.74515, 8.23367)); - quadtree.put(new DegreePosition(50.744620000000005, 8.235650000000001)); - quadtree.put(new DegreePosition(50.744310000000006, 8.237150000000002)); - quadtree.put(new DegreePosition(50.744150000000005, 8.238480000000001)); - quadtree.put(new DegreePosition(50.7441, 8.240540000000001)); - quadtree.put(new DegreePosition(50.74418000000001, 8.24193)); - quadtree.put(new DegreePosition(50.74445000000001, 8.24365)); - quadtree.put(new DegreePosition(50.745020000000004, 8.245940000000001)); - quadtree.put(new DegreePosition(50.74539000000001, 8.24769)); - quadtree.put(new DegreePosition(50.74557, 8.24881)); - quadtree.put(new DegreePosition(50.74562, 8.249590000000001)); - quadtree.put(new DegreePosition(50.7456, 8.250290000000001)); - quadtree.put(new DegreePosition(50.74542, 8.25223)); - quadtree.put(new DegreePosition(50.74519, 8.253340000000001)); - quadtree.put(new DegreePosition(50.7449, 8.2543)); - quadtree.put(new DegreePosition(50.74461, 8.25505)); - quadtree.put(new DegreePosition(50.74306000000001, 8.25831)); - quadtree.put(new DegreePosition(50.74279000000001, 8.25904)); - quadtree.put(new DegreePosition(50.74255, 8.25988)); - quadtree.put(new DegreePosition(50.742270000000005, 8.2612)); - quadtree.put(new DegreePosition(50.74213, 8.262070000000001)); - quadtree.put(new DegreePosition(50.742070000000005, 8.26314)); - quadtree.put(new DegreePosition(50.742090000000005, 8.26567)); - quadtree.put(new DegreePosition(50.741980000000005, 8.26735)); - quadtree.put(new DegreePosition(50.74181, 8.2687)); - quadtree.put(new DegreePosition(50.741670000000006, 8.26931)); - quadtree.put(new DegreePosition(50.741080000000004, 8.27088)); - quadtree.put(new DegreePosition(50.74072, 8.27158)); - quadtree.put(new DegreePosition(50.740030000000004, 8.27257)); - quadtree.put(new DegreePosition(50.73962, 8.273000000000001)); - quadtree.put(new DegreePosition(50.73875, 8.27365)); - quadtree.put(new DegreePosition(50.73783, 8.27405)); - quadtree.put(new DegreePosition(50.73745, 8.27416)); - quadtree.put(new DegreePosition(50.736830000000005, 8.27424)); - quadtree.put(new DegreePosition(50.734120000000004, 8.274090000000001)); - quadtree.put(new DegreePosition(50.73353, 8.27411)); - quadtree.put(new DegreePosition(50.732890000000005, 8.27424)); - quadtree.put(new DegreePosition(50.73174, 8.274790000000001)); - quadtree.put(new DegreePosition(50.73114, 8.27524)); - quadtree.put(new DegreePosition(50.7306, 8.27574)); - quadtree.put(new DegreePosition(50.72831000000001, 8.27865)); - quadtree.put(new DegreePosition(50.727430000000005, 8.279480000000001)); - quadtree.put(new DegreePosition(50.72471, 8.28134)); - quadtree.put(new DegreePosition(50.72368, 8.282210000000001)); - quadtree.put(new DegreePosition(50.7229, 8.28307)); - quadtree.put(new DegreePosition(50.72126, 8.28542)); - quadtree.put(new DegreePosition(50.72023, 8.28669)); - quadtree.put(new DegreePosition(50.71963, 8.28725)); - quadtree.put(new DegreePosition(50.71885, 8.287880000000001)); - quadtree.put(new DegreePosition(50.718120000000006, 8.28832)); - quadtree.put(new DegreePosition(50.7173, 8.2887)); - quadtree.put(new DegreePosition(50.71656, 8.28897)); - quadtree.put(new DegreePosition(50.71553, 8.28916)); - quadtree.put(new DegreePosition(50.71408, 8.28923)); - quadtree.put(new DegreePosition(50.713060000000006, 8.28913)); - quadtree.put(new DegreePosition(50.709050000000005, 8.28805)); - quadtree.put(new DegreePosition(50.70792, 8.28781)); - quadtree.put(new DegreePosition(50.70673000000001, 8.28772)); - quadtree.put(new DegreePosition(50.705130000000004, 8.28782)); - quadtree.put(new DegreePosition(50.70335000000001, 8.28827)); - quadtree.put(new DegreePosition(50.70219, 8.28876)); - quadtree.put(new DegreePosition(50.70096, 8.289520000000001)); - quadtree.put(new DegreePosition(50.697030000000005, 8.29296)); - quadtree.put(new DegreePosition(50.69567000000001, 8.294)); - quadtree.put(new DegreePosition(50.69485, 8.294540000000001)); - quadtree.put(new DegreePosition(50.69411, 8.29495)); - quadtree.put(new DegreePosition(50.6933, 8.295300000000001)); - quadtree.put(new DegreePosition(50.692690000000006, 8.295490000000001)); - quadtree.put(new DegreePosition(50.692040000000006, 8.29561)); - quadtree.put(new DegreePosition(50.69153000000001, 8.29564)); - quadtree.put(new DegreePosition(50.69035, 8.295390000000001)); - quadtree.put(new DegreePosition(50.68981, 8.29517)); - quadtree.put(new DegreePosition(50.68932, 8.2949)); - quadtree.put(new DegreePosition(50.688970000000005, 8.29465)); - quadtree.put(new DegreePosition(50.68847, 8.29418)); - quadtree.put(new DegreePosition(50.687760000000004, 8.293230000000001)); - quadtree.put(new DegreePosition(50.68713, 8.29218)); - quadtree.put(new DegreePosition(50.68657, 8.29096)); - quadtree.put(new DegreePosition(50.68558, 8.289000000000001)); - quadtree.put(new DegreePosition(50.684940000000005, 8.28805)); - quadtree.put(new DegreePosition(50.684430000000006, 8.28739)); - quadtree.put(new DegreePosition(50.682970000000005, 8.2859)); - quadtree.put(new DegreePosition(50.68198, 8.28515)); - quadtree.put(new DegreePosition(50.68065000000001, 8.28434)); - quadtree.put(new DegreePosition(50.679410000000004, 8.28377)); - quadtree.put(new DegreePosition(50.67868000000001, 8.28353)); - quadtree.put(new DegreePosition(50.67734, 8.283330000000001)); - quadtree.put(new DegreePosition(50.676190000000005, 8.28331)); - quadtree.put(new DegreePosition(50.674110000000006, 8.28378)); - quadtree.put(new DegreePosition(50.672760000000004, 8.28443)); - quadtree.put(new DegreePosition(50.67183000000001, 8.28505)); - quadtree.put(new DegreePosition(50.671130000000005, 8.28561)); - quadtree.put(new DegreePosition(50.67058, 8.286140000000001)); - quadtree.put(new DegreePosition(50.66993, 8.28687)); - quadtree.put(new DegreePosition(50.66884, 8.28832)); - quadtree.put(new DegreePosition(50.66789000000001, 8.28984)); - quadtree.put(new DegreePosition(50.667030000000004, 8.291440000000001)); - quadtree.put(new DegreePosition(50.66601000000001, 8.29364)); - quadtree.put(new DegreePosition(50.665350000000004, 8.295240000000002)); - quadtree.put(new DegreePosition(50.66480000000001, 8.29676)); - quadtree.put(new DegreePosition(50.66442000000001, 8.29808)); - quadtree.put(new DegreePosition(50.66405, 8.299660000000001)); - quadtree.put(new DegreePosition(50.663720000000005, 8.30133)); - quadtree.put(new DegreePosition(50.66330000000001, 8.304300000000001)); - quadtree.put(new DegreePosition(50.66290000000001, 8.307960000000001)); - quadtree.put(new DegreePosition(50.662670000000006, 8.309560000000001)); - quadtree.put(new DegreePosition(50.6623, 8.31123)); - quadtree.put(new DegreePosition(50.66174, 8.313260000000001)); - quadtree.put(new DegreePosition(50.660970000000006, 8.315370000000001)); - quadtree.put(new DegreePosition(50.660320000000006, 8.316650000000001)); - quadtree.put(new DegreePosition(50.659740000000006, 8.317590000000001)); - quadtree.put(new DegreePosition(50.65899, 8.318570000000001)); - quadtree.put(new DegreePosition(50.658210000000004, 8.3193)); - quadtree.put(new DegreePosition(50.657070000000004, 8.31994)); - quadtree.put(new DegreePosition(50.65578000000001, 8.320300000000001)); - quadtree.put(new DegreePosition(50.65391, 8.320400000000001)); - quadtree.put(new DegreePosition(50.65328, 8.320500000000001)); - quadtree.put(new DegreePosition(50.65240000000001, 8.32074)); - quadtree.put(new DegreePosition(50.65128000000001, 8.32118)); - quadtree.put(new DegreePosition(50.65091, 8.32137)); - quadtree.put(new DegreePosition(50.6465, 8.32409)); - quadtree.put(new DegreePosition(50.645360000000004, 8.32454)); - quadtree.put(new DegreePosition(50.644740000000006, 8.32469)); - quadtree.put(new DegreePosition(50.64193, 8.32482)); - quadtree.put(new DegreePosition(50.639920000000004, 8.32511)); - quadtree.put(new DegreePosition(50.63812, 8.325650000000001)); - quadtree.put(new DegreePosition(50.63673000000001, 8.326400000000001)); - quadtree.put(new DegreePosition(50.635740000000006, 8.32704)); - quadtree.put(new DegreePosition(50.634570000000004, 8.32797)); - quadtree.put(new DegreePosition(50.63354, 8.32891)); - quadtree.put(new DegreePosition(50.63253, 8.32995)); - quadtree.put(new DegreePosition(50.629650000000005, 8.33336)); - quadtree.put(new DegreePosition(50.62903000000001, 8.33422)); - quadtree.put(new DegreePosition(50.628550000000004, 8.335)); - quadtree.put(new DegreePosition(50.62765, 8.33667)); - quadtree.put(new DegreePosition(50.627250000000004, 8.33755)); - quadtree.put(new DegreePosition(50.626760000000004, 8.33876)); - quadtree.put(new DegreePosition(50.62648, 8.33961)); - quadtree.put(new DegreePosition(50.62586, 8.341890000000001)); - quadtree.put(new DegreePosition(50.62556000000001, 8.34319)); - quadtree.put(new DegreePosition(50.62519, 8.34521)); - quadtree.put(new DegreePosition(50.624990000000004, 8.34656)); - quadtree.put(new DegreePosition(50.62485, 8.34781)); - quadtree.put(new DegreePosition(50.6246, 8.3511)); - quadtree.put(new DegreePosition(50.62435000000001, 8.352910000000001)); - quadtree.put(new DegreePosition(50.624050000000004, 8.3544)); - quadtree.put(new DegreePosition(50.623810000000006, 8.35543)); - quadtree.put(new DegreePosition(50.62366, 8.35593)); - quadtree.put(new DegreePosition(50.622240000000005, 8.359910000000001)); - quadtree.put(new DegreePosition(50.621770000000005, 8.36156)); - quadtree.put(new DegreePosition(50.62156, 8.362480000000001)); - quadtree.put(new DegreePosition(50.621230000000004, 8.3644)); - quadtree.put(new DegreePosition(50.62078, 8.36975)); - quadtree.put(new DegreePosition(50.620520000000006, 8.37114)); - quadtree.put(new DegreePosition(50.620160000000006, 8.37249)); - quadtree.put(new DegreePosition(50.61988, 8.373320000000001)); - quadtree.put(new DegreePosition(50.61932, 8.374690000000001)); - quadtree.put(new DegreePosition(50.61887, 8.375950000000001)); - quadtree.put(new DegreePosition(50.618570000000005, 8.37725)); - quadtree.put(new DegreePosition(50.61827, 8.37898)); - quadtree.put(new DegreePosition(50.618170000000006, 8.380270000000001)); - quadtree.put(new DegreePosition(50.61816, 8.382190000000001)); - quadtree.put(new DegreePosition(50.618520000000004, 8.389460000000001)); - quadtree.put(new DegreePosition(50.618570000000005, 8.39309)); - quadtree.put(new DegreePosition(50.618500000000004, 8.394480000000001)); - quadtree.put(new DegreePosition(50.618410000000004, 8.395470000000001)); - quadtree.put(new DegreePosition(50.61824000000001, 8.39675)); - quadtree.put(new DegreePosition(50.618080000000006, 8.39764)); - quadtree.put(new DegreePosition(50.61777000000001, 8.39906)); - quadtree.put(new DegreePosition(50.61713, 8.40116)); - quadtree.put(new DegreePosition(50.61679, 8.40215)); - quadtree.put(new DegreePosition(50.612660000000005, 8.413)); - quadtree.put(new DegreePosition(50.61168000000001, 8.415470000000001)); - quadtree.put(new DegreePosition(50.611430000000006, 8.41623)); - quadtree.put(new DegreePosition(50.61102, 8.41787)); - quadtree.put(new DegreePosition(50.61056000000001, 8.42032)); - quadtree.put(new DegreePosition(50.61019, 8.4238)); - quadtree.put(new DegreePosition(50.60992, 8.42535)); - quadtree.put(new DegreePosition(50.60947, 8.42707)); - quadtree.put(new DegreePosition(50.60904000000001, 8.42833)); - quadtree.put(new DegreePosition(50.60857000000001, 8.42956)); - quadtree.put(new DegreePosition(50.60792000000001, 8.43158)); - quadtree.put(new DegreePosition(50.60761, 8.432680000000001)); - quadtree.put(new DegreePosition(50.60723, 8.434370000000001)); - quadtree.put(new DegreePosition(50.60701, 8.43645)); - quadtree.put(new DegreePosition(50.60698000000001, 8.43796)); - quadtree.put(new DegreePosition(50.6071, 8.44045)); - quadtree.put(new DegreePosition(50.60718000000001, 8.443100000000001)); - quadtree.put(new DegreePosition(50.60717, 8.444220000000001)); - quadtree.put(new DegreePosition(50.607020000000006, 8.446140000000002)); - quadtree.put(new DegreePosition(50.606770000000004, 8.44772)); - quadtree.put(new DegreePosition(50.60647, 8.44902)); - quadtree.put(new DegreePosition(50.606100000000005, 8.450230000000001)); - quadtree.put(new DegreePosition(50.60551, 8.45195)); - quadtree.put(new DegreePosition(50.605030000000006, 8.45358)); - quadtree.put(new DegreePosition(50.60465000000001, 8.45495)); - quadtree.put(new DegreePosition(50.60445000000001, 8.455950000000001)); - quadtree.put(new DegreePosition(50.60427000000001, 8.457230000000001)); - quadtree.put(new DegreePosition(50.60421, 8.458060000000001)); - quadtree.put(new DegreePosition(50.60419, 8.45945)); - quadtree.put(new DegreePosition(50.6043, 8.46292)); - quadtree.put(new DegreePosition(50.604290000000006, 8.46471)); - quadtree.put(new DegreePosition(50.60416000000001, 8.4664)); - quadtree.put(new DegreePosition(50.603930000000005, 8.468)); - quadtree.put(new DegreePosition(50.603790000000004, 8.46873)); - quadtree.put(new DegreePosition(50.603570000000005, 8.469650000000001)); - quadtree.put(new DegreePosition(50.60318, 8.471)); - quadtree.put(new DegreePosition(50.60242, 8.473030000000001)); - quadtree.put(new DegreePosition(50.60193, 8.474110000000001)); - quadtree.put(new DegreePosition(50.60146, 8.47493)); - quadtree.put(new DegreePosition(50.600730000000006, 8.47606)); - quadtree.put(new DegreePosition(50.599160000000005, 8.478340000000001)); - quadtree.put(new DegreePosition(50.59787000000001, 8.480580000000002)); - quadtree.put(new DegreePosition(50.59725, 8.48202)); - quadtree.put(new DegreePosition(50.59673, 8.48366)); - quadtree.put(new DegreePosition(50.596270000000004, 8.48583)); - quadtree.put(new DegreePosition(50.59617, 8.48643)); - quadtree.put(new DegreePosition(50.596000000000004, 8.48804)); - quadtree.put(new DegreePosition(50.59592000000001, 8.490260000000001)); - quadtree.put(new DegreePosition(50.59588, 8.49361)); - quadtree.put(new DegreePosition(50.59581000000001, 8.49463)); - quadtree.put(new DegreePosition(50.595710000000004, 8.49549)); - quadtree.put(new DegreePosition(50.59539, 8.49712)); - quadtree.put(new DegreePosition(50.59505000000001, 8.49849)); - quadtree.put(new DegreePosition(50.594030000000004, 8.50145)); - quadtree.put(new DegreePosition(50.59357000000001, 8.50289)); - quadtree.put(new DegreePosition(50.593340000000005, 8.50379)); - quadtree.put(new DegreePosition(50.593160000000005, 8.50468)); - quadtree.put(new DegreePosition(50.59292000000001, 8.506120000000001)); - quadtree.put(new DegreePosition(50.59279, 8.50716)); - quadtree.put(new DegreePosition(50.592740000000006, 8.50793)); - quadtree.put(new DegreePosition(50.592740000000006, 8.50988)); - quadtree.put(new DegreePosition(50.59282, 8.51248)); - quadtree.put(new DegreePosition(50.59273, 8.513850000000001)); - quadtree.put(new DegreePosition(50.59245000000001, 8.5157)); - quadtree.put(new DegreePosition(50.592110000000005, 8.51736)); - quadtree.put(new DegreePosition(50.59109, 8.52072)); - quadtree.put(new DegreePosition(50.58995, 8.52393)); - quadtree.put(new DegreePosition(50.58919, 8.525780000000001)); - quadtree.put(new DegreePosition(50.588350000000005, 8.52753)); - quadtree.put(new DegreePosition(50.586940000000006, 8.53031)); - quadtree.put(new DegreePosition(50.585660000000004, 8.5327)); - quadtree.put(new DegreePosition(50.58467, 8.534270000000001)); - quadtree.put(new DegreePosition(50.582950000000004, 8.53668)); - quadtree.put(new DegreePosition(50.58055, 8.539750000000002)); - quadtree.put(new DegreePosition(50.57909, 8.541250000000002)); - quadtree.put(new DegreePosition(50.578230000000005, 8.542060000000001)); - quadtree.put(new DegreePosition(50.57721, 8.542910000000001)); - quadtree.put(new DegreePosition(50.57509, 8.544360000000001)); - quadtree.put(new DegreePosition(50.572190000000006, 8.546000000000001)); - quadtree.put(new DegreePosition(50.56996, 8.54697)); - quadtree.put(new DegreePosition(50.567350000000005, 8.548210000000001)); - quadtree.put(new DegreePosition(50.566590000000005, 8.548670000000001)); - quadtree.put(new DegreePosition(50.565740000000005, 8.5493)); - quadtree.put(new DegreePosition(50.56519, 8.54981)); - quadtree.put(new DegreePosition(50.56466, 8.55035)); - quadtree.put(new DegreePosition(50.56418000000001, 8.551010000000002)); - quadtree.put(new DegreePosition(50.56376, 8.551630000000001)); - quadtree.put(new DegreePosition(50.56293, 8.55311)); - quadtree.put(new DegreePosition(50.56206, 8.55527)); - quadtree.put(new DegreePosition(50.56136000000001, 8.55738)); - quadtree.put(new DegreePosition(50.56071000000001, 8.55915)); - quadtree.put(new DegreePosition(50.560230000000004, 8.560160000000002)); - quadtree.put(new DegreePosition(50.55978, 8.560970000000001)); - quadtree.put(new DegreePosition(50.55922, 8.56179)); - quadtree.put(new DegreePosition(50.558910000000004, 8.56215)); - quadtree.put(new DegreePosition(50.55834, 8.562700000000001)); - quadtree.put(new DegreePosition(50.55731, 8.56347)); - quadtree.put(new DegreePosition(50.55677000000001, 8.56377)); - quadtree.put(new DegreePosition(50.55624, 8.563960000000002)); - quadtree.put(new DegreePosition(50.55556000000001, 8.564110000000001)); - quadtree.put(new DegreePosition(50.55353, 8.564390000000001)); - quadtree.put(new DegreePosition(50.552040000000005, 8.56466)); - quadtree.put(new DegreePosition(50.55109, 8.56494)); - quadtree.put(new DegreePosition(50.550160000000005, 8.56536)); - quadtree.put(new DegreePosition(50.549730000000004, 8.565620000000001)); - quadtree.put(new DegreePosition(50.54919, 8.56601)); - quadtree.put(new DegreePosition(50.548460000000006, 8.56667)); - quadtree.put(new DegreePosition(50.54798, 8.567250000000001)); - quadtree.put(new DegreePosition(50.5469, 8.56872)); - quadtree.put(new DegreePosition(50.54536, 8.57126)); - quadtree.put(new DegreePosition(50.542260000000006, 8.576590000000001)); - quadtree.put(new DegreePosition(50.541430000000005, 8.577720000000001)); - quadtree.put(new DegreePosition(50.540580000000006, 8.57877)); - quadtree.put(new DegreePosition(50.539480000000005, 8.57994)); - quadtree.put(new DegreePosition(50.537870000000005, 8.58139)); - quadtree.put(new DegreePosition(50.53676, 8.582270000000001)); - quadtree.put(new DegreePosition(50.534110000000005, 8.58411)); - quadtree.put(new DegreePosition(50.53333000000001, 8.58478)); - quadtree.put(new DegreePosition(50.53266000000001, 8.585450000000002)); - quadtree.put(new DegreePosition(50.5317, 8.586540000000001)); - quadtree.put(new DegreePosition(50.53099, 8.587610000000002)); - quadtree.put(new DegreePosition(50.53056, 8.58835)); - quadtree.put(new DegreePosition(50.530080000000005, 8.58932)); - quadtree.put(new DegreePosition(50.52947, 8.590900000000001)); - quadtree.put(new DegreePosition(50.529050000000005, 8.592310000000001)); - quadtree.put(new DegreePosition(50.528800000000004, 8.593430000000001)); - quadtree.put(new DegreePosition(50.528620000000004, 8.594510000000001)); - quadtree.put(new DegreePosition(50.52828, 8.597700000000001)); - quadtree.put(new DegreePosition(50.527750000000005, 8.60692)); - quadtree.put(new DegreePosition(50.52731000000001, 8.61212)); - quadtree.put(new DegreePosition(50.526300000000006, 8.62259)); - quadtree.put(new DegreePosition(50.525800000000004, 8.626420000000001)); - quadtree.put(new DegreePosition(50.52514000000001, 8.630510000000001)); - quadtree.put(new DegreePosition(50.52481, 8.63277)); - quadtree.put(new DegreePosition(50.524010000000004, 8.6376)); - quadtree.put(new DegreePosition(50.52364000000001, 8.64067)); - quadtree.put(new DegreePosition(50.522420000000004, 8.645380000000001)); - quadtree.put(new DegreePosition(50.52181, 8.64794)); - quadtree.put(new DegreePosition(50.521530000000006, 8.648950000000001)); - quadtree.put(new DegreePosition(50.52031, 8.654100000000001)); - quadtree.put(new DegreePosition(50.51888, 8.65944)); - quadtree.put(new DegreePosition(50.51749, 8.66398)); - quadtree.put(new DegreePosition(50.51699000000001, 8.66531)); - quadtree.put(new DegreePosition(50.516650000000006, 8.666110000000002)); - quadtree.put(new DegreePosition(50.515150000000006, 8.66932)); - quadtree.put(new DegreePosition(50.5146, 8.67041)); - quadtree.put(new DegreePosition(50.513670000000005, 8.6721)); - quadtree.put(new DegreePosition(50.51285000000001, 8.673440000000001)); - quadtree.put(new DegreePosition(50.511810000000004, 8.674930000000002)); - quadtree.put(new DegreePosition(50.510630000000006, 8.67633)); - quadtree.put(new DegreePosition(50.50940000000001, 8.677700000000002)); - quadtree.put(new DegreePosition(50.508810000000004, 8.67824)); - quadtree.put(new DegreePosition(50.50750000000001, 8.67932)); - quadtree.put(new DegreePosition(50.50681, 8.679810000000002)); - quadtree.put(new DegreePosition(50.50526000000001, 8.680760000000001)); - quadtree.put(new DegreePosition(50.504470000000005, 8.68116)); - quadtree.put(new DegreePosition(50.50274, 8.681830000000001)); - quadtree.put(new DegreePosition(50.50198, 8.682070000000001)); - quadtree.put(new DegreePosition(50.498810000000006, 8.682690000000001)); - quadtree.put(new DegreePosition(50.49728, 8.68313)); - quadtree.put(new DegreePosition(50.49476000000001, 8.68368)); - quadtree.put(new DegreePosition(50.49369, 8.684050000000001)); - quadtree.put(new DegreePosition(50.49269, 8.68449)); - quadtree.put(new DegreePosition(50.49157, 8.68506)); - quadtree.put(new DegreePosition(50.490520000000004, 8.685740000000001)); - quadtree.put(new DegreePosition(50.48989, 8.68622)); - quadtree.put(new DegreePosition(50.48901000000001, 8.686950000000001)); - quadtree.put(new DegreePosition(50.488040000000005, 8.687940000000001)); - quadtree.put(new DegreePosition(50.487010000000005, 8.68913)); - quadtree.put(new DegreePosition(50.48583000000001, 8.69068)); - quadtree.put(new DegreePosition(50.484260000000006, 8.69318)); - quadtree.put(new DegreePosition(50.483340000000005, 8.69505)); - quadtree.put(new DegreePosition(50.48272000000001, 8.69658)); - quadtree.put(new DegreePosition(50.482110000000006, 8.698260000000001)); - quadtree.put(new DegreePosition(50.481390000000005, 8.70049)); - quadtree.put(new DegreePosition(50.48093, 8.70208)); - quadtree.put(new DegreePosition(50.48021000000001, 8.705020000000001)); - quadtree.put(new DegreePosition(50.47822000000001, 8.71437)); - quadtree.put(new DegreePosition(50.477940000000004, 8.715430000000001)); - quadtree.put(new DegreePosition(50.47721000000001, 8.717260000000001)); - quadtree.put(new DegreePosition(50.47652, 8.718820000000001)); - quadtree.put(new DegreePosition(50.476240000000004, 8.71929)); - quadtree.put(new DegreePosition(50.475660000000005, 8.72009)); - quadtree.put(new DegreePosition(50.47426, 8.72159)); - quadtree.put(new DegreePosition(50.47375, 8.722000000000001)); - quadtree.put(new DegreePosition(50.47307000000001, 8.7224)); - quadtree.put(new DegreePosition(50.472390000000004, 8.72273)); - quadtree.put(new DegreePosition(50.47173, 8.72295)); - quadtree.put(new DegreePosition(50.471050000000005, 8.723090000000001)); - quadtree.put(new DegreePosition(50.46989000000001, 8.723080000000001)); - quadtree.put(new DegreePosition(50.46876, 8.72295)); - quadtree.put(new DegreePosition(50.466840000000005, 8.72241)); - quadtree.put(new DegreePosition(50.465230000000005, 8.721820000000001)); - quadtree.put(new DegreePosition(50.46338, 8.72098)); - quadtree.put(new DegreePosition(50.463100000000004, 8.72091)); - quadtree.put(new DegreePosition(50.461200000000005, 8.71997)); - quadtree.put(new DegreePosition(50.46023, 8.71925)); - quadtree.put(new DegreePosition(50.459410000000005, 8.718570000000001)); - quadtree.put(new DegreePosition(50.458600000000004, 8.7178)); - quadtree.put(new DegreePosition(50.45769000000001, 8.716790000000001)); - quadtree.put(new DegreePosition(50.456610000000005, 8.71546)); - quadtree.put(new DegreePosition(50.455490000000005, 8.7139)); - quadtree.put(new DegreePosition(50.45445, 8.712250000000001)); - quadtree.put(new DegreePosition(50.45373000000001, 8.710980000000001)); - quadtree.put(new DegreePosition(50.45327, 8.71006)); - quadtree.put(new DegreePosition(50.45239, 8.70799)); - quadtree.put(new DegreePosition(50.44941000000001, 8.70059)); - quadtree.put(new DegreePosition(50.448820000000005, 8.69945)); - quadtree.put(new DegreePosition(50.448460000000004, 8.69888)); - quadtree.put(new DegreePosition(50.447900000000004, 8.69806)); - quadtree.put(new DegreePosition(50.44698, 8.69688)); - quadtree.put(new DegreePosition(50.44641000000001, 8.6963)); - quadtree.put(new DegreePosition(50.44548, 8.695500000000001)); - quadtree.put(new DegreePosition(50.44501, 8.695160000000001)); - quadtree.put(new DegreePosition(50.44411, 8.69472)); - quadtree.put(new DegreePosition(50.44333, 8.69443)); - quadtree.put(new DegreePosition(50.44202000000001, 8.694180000000001)); - quadtree.put(new DegreePosition(50.44145, 8.694170000000002)); - quadtree.put(new DegreePosition(50.440560000000005, 8.69425)); - quadtree.put(new DegreePosition(50.432640000000006, 8.69574)); - quadtree.put(new DegreePosition(50.42264, 8.697370000000001)); - quadtree.put(new DegreePosition(50.405300000000004, 8.70054)); - quadtree.put(new DegreePosition(50.395720000000004, 8.70219)); - quadtree.put(new DegreePosition(50.391580000000005, 8.70298)); - quadtree.put(new DegreePosition(50.38085, 8.7048)); - quadtree.put(new DegreePosition(50.375750000000004, 8.70561)); - quadtree.put(new DegreePosition(50.374950000000005, 8.70569)); - quadtree.put(new DegreePosition(50.373850000000004, 8.70564)); - quadtree.put(new DegreePosition(50.37259, 8.705400000000001)); - quadtree.put(new DegreePosition(50.37050000000001, 8.70457)); - quadtree.put(new DegreePosition(50.369170000000004, 8.70387)); - quadtree.put(new DegreePosition(50.367610000000006, 8.702910000000001)); - quadtree.put(new DegreePosition(50.36612, 8.7018)); - quadtree.put(new DegreePosition(50.36075, 8.6972)); - quadtree.put(new DegreePosition(50.35831, 8.69533)); - quadtree.put(new DegreePosition(50.356950000000005, 8.69443)); - quadtree.put(new DegreePosition(50.35558, 8.69372)); - quadtree.put(new DegreePosition(50.354400000000005, 8.69335)); - quadtree.put(new DegreePosition(50.35246, 8.69284)); - quadtree.put(new DegreePosition(50.35105, 8.692620000000002)); - quadtree.put(new DegreePosition(50.350170000000006, 8.69257)); - quadtree.put(new DegreePosition(50.34955, 8.692580000000001)); - quadtree.put(new DegreePosition(50.34857, 8.69275)); - quadtree.put(new DegreePosition(50.346230000000006, 8.693470000000001)); - quadtree.put(new DegreePosition(50.341210000000004, 8.69532)); - quadtree.put(new DegreePosition(50.34002, 8.695680000000001)); - quadtree.put(new DegreePosition(50.33867000000001, 8.695910000000001)); - quadtree.put(new DegreePosition(50.33753, 8.69594)); - quadtree.put(new DegreePosition(50.3361, 8.695860000000001)); - quadtree.put(new DegreePosition(50.333580000000005, 8.69542)); - quadtree.put(new DegreePosition(50.32048, 8.69252)); - quadtree.put(new DegreePosition(50.31851, 8.69196)); - quadtree.put(new DegreePosition(50.31781, 8.6917)); - quadtree.put(new DegreePosition(50.31709000000001, 8.69139)); - quadtree.put(new DegreePosition(50.31595, 8.690760000000001)); - quadtree.put(new DegreePosition(50.314600000000006, 8.68979)); - quadtree.put(new DegreePosition(50.31338, 8.68871)); - quadtree.put(new DegreePosition(50.31116, 8.68621)); - quadtree.put(new DegreePosition(50.30666, 8.680890000000002)); - quadtree.put(new DegreePosition(50.3034, 8.67722)); - quadtree.put(new DegreePosition(50.302640000000004, 8.67643)); - quadtree.put(new DegreePosition(50.301930000000006, 8.675830000000001)); - quadtree.put(new DegreePosition(50.30136, 8.675410000000001)); - quadtree.put(new DegreePosition(50.30044, 8.67488)); - quadtree.put(new DegreePosition(50.298860000000005, 8.674140000000001)); - quadtree.put(new DegreePosition(50.29008, 8.67112)); - quadtree.put(new DegreePosition(50.286120000000004, 8.669820000000001)); - quadtree.put(new DegreePosition(50.27376, 8.665550000000001)); - quadtree.put(new DegreePosition(50.26568, 8.662920000000002)); - quadtree.put(new DegreePosition(50.26428000000001, 8.662640000000001)); - quadtree.put(new DegreePosition(50.26334000000001, 8.662560000000001)); - quadtree.put(new DegreePosition(50.248900000000006, 8.662740000000001)); - quadtree.put(new DegreePosition(50.24667, 8.662730000000002)); - quadtree.put(new DegreePosition(50.231930000000006, 8.662970000000001)); - quadtree.put(new DegreePosition(50.21923, 8.6631)); - quadtree.put(new DegreePosition(50.21822, 8.66305)); - quadtree.put(new DegreePosition(50.21732, 8.66291)); - quadtree.put(new DegreePosition(50.216240000000006, 8.66267)); - quadtree.put(new DegreePosition(50.215270000000004, 8.662370000000001)); - quadtree.put(new DegreePosition(50.214200000000005, 8.66192)); - quadtree.put(new DegreePosition(50.21316, 8.661370000000002)); - quadtree.put(new DegreePosition(50.21162, 8.660350000000001)); - quadtree.put(new DegreePosition(50.210660000000004, 8.659600000000001)); - quadtree.put(new DegreePosition(50.209430000000005, 8.65841)); - quadtree.put(new DegreePosition(50.20864, 8.6575)); - quadtree.put(new DegreePosition(50.208090000000006, 8.656830000000001)); - quadtree.put(new DegreePosition(50.206920000000004, 8.65522)); - quadtree.put(new DegreePosition(50.206500000000005, 8.65456)); - quadtree.put(new DegreePosition(50.20488, 8.651760000000001)); - quadtree.put(new DegreePosition(50.203190000000006, 8.649080000000001)); - quadtree.put(new DegreePosition(50.19881, 8.64192)); - quadtree.put(new DegreePosition(50.196600000000004, 8.637440000000002)); - quadtree.put(new DegreePosition(50.188770000000005, 8.6239)); - quadtree.put(new DegreePosition(50.18795, 8.62259)); - quadtree.put(new DegreePosition(50.187070000000006, 8.621360000000001)); - quadtree.put(new DegreePosition(50.18627000000001, 8.6204)); - quadtree.put(new DegreePosition(50.185120000000005, 8.619190000000001)); - quadtree.put(new DegreePosition(50.18388, 8.61808)); - quadtree.put(new DegreePosition(50.182770000000005, 8.61726)); - quadtree.put(new DegreePosition(50.18178, 8.61665)); - quadtree.put(new DegreePosition(50.17159, 8.61101)); - quadtree.put(new DegreePosition(50.16395000000001, 8.606710000000001)); - quadtree.put(new DegreePosition(50.15317, 8.600760000000001)); - quadtree.put(new DegreePosition(50.149210000000004, 8.598640000000001)); - quadtree.put(new DegreePosition(50.14303, 8.59515)); - quadtree.put(new DegreePosition(50.13889, 8.592960000000001)); - quadtree.put(new DegreePosition(50.13496000000001, 8.590810000000001)); - quadtree.put(new DegreePosition(50.1332, 8.590190000000002)); - quadtree.put(new DegreePosition(50.13172, 8.58994)); - quadtree.put(new DegreePosition(50.13055000000001, 8.58993)); - quadtree.put(new DegreePosition(50.129450000000006, 8.59008)); - quadtree.put(new DegreePosition(50.12838000000001, 8.590340000000001)); - quadtree.put(new DegreePosition(50.12713, 8.59083)); - quadtree.put(new DegreePosition(50.12621000000001, 8.591320000000001)); - quadtree.put(new DegreePosition(50.118970000000004, 8.595970000000001)); - quadtree.put(new DegreePosition(50.10857000000001, 8.60274)); - quadtree.put(new DegreePosition(50.105970000000006, 8.604600000000001)); - quadtree.put(new DegreePosition(50.105050000000006, 8.605410000000001)); - quadtree.put(new DegreePosition(50.104200000000006, 8.60622)); - quadtree.put(new DegreePosition(50.10295000000001, 8.607560000000001)); - quadtree.put(new DegreePosition(50.10038, 8.61049)); - quadtree.put(new DegreePosition(50.09879, 8.61238)); - quadtree.put(new DegreePosition(50.09743, 8.61368)); - quadtree.put(new DegreePosition(50.09572000000001, 8.6151)); - quadtree.put(new DegreePosition(50.09489000000001, 8.61561)); - quadtree.put(new DegreePosition(50.093360000000004, 8.616290000000001)); - quadtree.put(new DegreePosition(50.09149000000001, 8.616940000000001)); - quadtree.put(new DegreePosition(50.087880000000006, 8.617780000000002)); - quadtree.put(new DegreePosition(50.08559, 8.618160000000001)); - quadtree.put(new DegreePosition(50.08471, 8.61824)); - quadtree.put(new DegreePosition(50.083000000000006, 8.61814)); - quadtree.put(new DegreePosition(50.081680000000006, 8.617930000000001)); - quadtree.put(new DegreePosition(50.080400000000004, 8.617560000000001)); - quadtree.put(new DegreePosition(50.0797, 8.6173)); - quadtree.put(new DegreePosition(50.07835000000001, 8.61668)); - quadtree.put(new DegreePosition(50.06631, 8.61067)); - quadtree.put(new DegreePosition(50.06239, 8.608640000000001)); - quadtree.put(new DegreePosition(50.05212, 8.60364)); - quadtree.put(new DegreePosition(50.03866000000001, 8.596810000000001)); - quadtree.put(new DegreePosition(50.03486, 8.59505)); - quadtree.put(new DegreePosition(50.033010000000004, 8.5943)); - quadtree.put(new DegreePosition(50.03032, 8.59347)); - quadtree.put(new DegreePosition(50.02763, 8.59284)); - quadtree.put(new DegreePosition(50.025240000000004, 8.59252)); - quadtree.put(new DegreePosition(50.024260000000005, 8.59247)); - quadtree.put(new DegreePosition(50.02208, 8.59247)); - quadtree.put(new DegreePosition(50.020790000000005, 8.592550000000001)); - quadtree.put(new DegreePosition(50.019270000000006, 8.59271)); - quadtree.put(new DegreePosition(50.016510000000004, 8.593240000000002)); - quadtree.put(new DegreePosition(49.983160000000005, 8.60124)); - quadtree.put(new DegreePosition(49.976580000000006, 8.60275)); - quadtree.put(new DegreePosition(49.97316000000001, 8.60363)); - quadtree.put(new DegreePosition(49.96228000000001, 8.60614)); - quadtree.put(new DegreePosition(49.95414, 8.60811)); - quadtree.put(new DegreePosition(49.95309, 8.608310000000001)); - quadtree.put(new DegreePosition(49.95217, 8.60857)); - quadtree.put(new DegreePosition(49.948350000000005, 8.609440000000001)); - quadtree.put(new DegreePosition(49.943200000000004, 8.610750000000001)); - quadtree.put(new DegreePosition(49.941720000000004, 8.611040000000001)); - quadtree.put(new DegreePosition(49.935280000000006, 8.612530000000001)); - quadtree.put(new DegreePosition(49.933550000000004, 8.6128)); - quadtree.put(new DegreePosition(49.93207, 8.612960000000001)); - quadtree.put(new DegreePosition(49.93084, 8.61302)); - quadtree.put(new DegreePosition(49.928740000000005, 8.61299)); - quadtree.put(new DegreePosition(49.926950000000005, 8.61283)); - quadtree.put(new DegreePosition(49.92591, 8.61269)); - quadtree.put(new DegreePosition(49.92389000000001, 8.612260000000001)); - quadtree.put(new DegreePosition(49.92083, 8.6113)); - quadtree.put(new DegreePosition(49.91532, 8.609390000000001)); - quadtree.put(new DegreePosition(49.914170000000006, 8.60905)); - quadtree.put(new DegreePosition(49.91042, 8.60819)); - quadtree.put(new DegreePosition(49.89902000000001, 8.60598)); - quadtree.put(new DegreePosition(49.89663, 8.605450000000001)); - quadtree.put(new DegreePosition(49.887750000000004, 8.603710000000001)); - quadtree.put(new DegreePosition(49.886900000000004, 8.603610000000002)); - quadtree.put(new DegreePosition(49.88288000000001, 8.60288)); - quadtree.put(new DegreePosition(49.87717000000001, 8.60196)); - quadtree.put(new DegreePosition(49.874700000000004, 8.60147)); - quadtree.put(new DegreePosition(49.87281, 8.60119)); - quadtree.put(new DegreePosition(49.870450000000005, 8.60072)); - quadtree.put(new DegreePosition(49.86542000000001, 8.599530000000001)); - quadtree.put(new DegreePosition(49.86164, 8.59872)); - quadtree.put(new DegreePosition(49.861450000000005, 8.59861)); - quadtree.put(new DegreePosition(49.86047000000001, 8.598360000000001)); - quadtree.put(new DegreePosition(49.857470000000006, 8.597240000000001)); - quadtree.put(new DegreePosition(49.85718000000001, 8.59717)); - quadtree.put(new DegreePosition(49.85662000000001, 8.597150000000001)); - quadtree.put(new DegreePosition(49.856350000000006, 8.59721)); - quadtree.put(new DegreePosition(49.85586000000001, 8.59744)); - quadtree.put(new DegreePosition(49.85559000000001, 8.597660000000001)); - quadtree.put(new DegreePosition(49.855250000000005, 8.598090000000001)); - quadtree.put(new DegreePosition(49.854940000000006, 8.59862)); - quadtree.put(new DegreePosition(49.85474000000001, 8.599110000000001)); - quadtree.put(new DegreePosition(49.85452, 8.599860000000001)); - quadtree.put(new DegreePosition(49.85405, 8.60206)); - quadtree.put(new DegreePosition(49.8539, 8.602490000000001)); - quadtree.put(new DegreePosition(49.85325, 8.603750000000002)); - quadtree.put(new DegreePosition(49.851670000000006, 8.605870000000001)); - quadtree.put(new DegreePosition(49.85031000000001, 8.6079)); - quadtree.put(new DegreePosition(49.84915, 8.609850000000002)); - quadtree.put(new DegreePosition(49.846590000000006, 8.61508)); - quadtree.put(new DegreePosition(49.84149000000001, 8.626510000000001)); - quadtree.put(new DegreePosition(49.840500000000006, 8.62828)); - quadtree.put(new DegreePosition(49.839980000000004, 8.62898)); - quadtree.put(new DegreePosition(49.838530000000006, 8.63066)); - quadtree.put(new DegreePosition(49.83744, 8.6317)); - quadtree.put(new DegreePosition(49.83612, 8.632670000000001)); - quadtree.put(new DegreePosition(49.83462, 8.63345)); - quadtree.put(new DegreePosition(49.83399000000001, 8.63371)); - quadtree.put(new DegreePosition(49.832080000000005, 8.63414)); - quadtree.put(new DegreePosition(49.831320000000005, 8.63423)); - quadtree.put(new DegreePosition(49.830540000000006, 8.6342)); - quadtree.put(new DegreePosition(49.82978000000001, 8.63409)); - quadtree.put(new DegreePosition(49.82876, 8.633780000000002)); - quadtree.put(new DegreePosition(49.82734000000001, 8.633180000000001)); - quadtree.put(new DegreePosition(49.82462, 8.63161)); - quadtree.put(new DegreePosition(49.821630000000006, 8.62977)); - quadtree.put(new DegreePosition(49.820370000000004, 8.6292)); - quadtree.put(new DegreePosition(49.81908000000001, 8.62875)); - quadtree.put(new DegreePosition(49.81687, 8.62841)); - quadtree.put(new DegreePosition(49.81134, 8.62866)); - quadtree.put(new DegreePosition(49.81027, 8.62861)); - quadtree.put(new DegreePosition(49.80881, 8.62828)); - quadtree.put(new DegreePosition(49.80682, 8.627690000000001)); - quadtree.put(new DegreePosition(49.80575, 8.62719)); - quadtree.put(new DegreePosition(49.804100000000005, 8.62627)); - quadtree.put(new DegreePosition(49.80192, 8.624780000000001)); - quadtree.put(new DegreePosition(49.79887, 8.622520000000002)); - quadtree.put(new DegreePosition(49.797380000000004, 8.62151)); - quadtree.put(new DegreePosition(49.796110000000006, 8.620750000000001)); - quadtree.put(new DegreePosition(49.79467, 8.62005)); - quadtree.put(new DegreePosition(49.79345000000001, 8.619520000000001)); - quadtree.put(new DegreePosition(49.792060000000006, 8.61903)); - quadtree.put(new DegreePosition(49.79064, 8.61869)); - quadtree.put(new DegreePosition(49.78909, 8.618390000000002)); - quadtree.put(new DegreePosition(49.78412, 8.61762)); - quadtree.put(new DegreePosition(49.78295000000001, 8.61738)); - quadtree.put(new DegreePosition(49.78119, 8.61692)); - quadtree.put(new DegreePosition(49.77975000000001, 8.616380000000001)); - quadtree.put(new DegreePosition(49.778780000000005, 8.61593)); - quadtree.put(new DegreePosition(49.777640000000005, 8.61528)); - quadtree.put(new DegreePosition(49.77610000000001, 8.61415)); - quadtree.put(new DegreePosition(49.77506, 8.613190000000001)); - quadtree.put(new DegreePosition(49.77357000000001, 8.611600000000001)); - quadtree.put(new DegreePosition(49.77299000000001, 8.61087)); - quadtree.put(new DegreePosition(49.770830000000004, 8.607850000000001)); - quadtree.put(new DegreePosition(49.76859, 8.604610000000001)); - quadtree.put(new DegreePosition(49.768170000000005, 8.60405)); - quadtree.put(new DegreePosition(49.76608, 8.60152)); - quadtree.put(new DegreePosition(49.764790000000005, 8.60018)); - quadtree.put(new DegreePosition(49.762150000000005, 8.59793)); - quadtree.put(new DegreePosition(49.76151, 8.597430000000001)); - quadtree.put(new DegreePosition(49.76024, 8.59665)); - quadtree.put(new DegreePosition(49.757780000000004, 8.59553)); - quadtree.put(new DegreePosition(49.756260000000005, 8.59491)); - quadtree.put(new DegreePosition(49.75267, 8.59369)); - quadtree.put(new DegreePosition(49.75119, 8.593290000000001)); - quadtree.put(new DegreePosition(49.74869, 8.59272)); - quadtree.put(new DegreePosition(49.745580000000004, 8.592160000000002)); - quadtree.put(new DegreePosition(49.742180000000005, 8.59171)); - quadtree.put(new DegreePosition(49.739290000000004, 8.59154)); - quadtree.put(new DegreePosition(49.735220000000005, 8.591550000000002)); - quadtree.put(new DegreePosition(49.73221, 8.59176)); - quadtree.put(new DegreePosition(49.72905, 8.59223)); - quadtree.put(new DegreePosition(49.72579, 8.592830000000001)); - quadtree.put(new DegreePosition(49.722390000000004, 8.59373)); - quadtree.put(new DegreePosition(49.715450000000004, 8.59572)); - quadtree.put(new DegreePosition(49.705760000000005, 8.599260000000001)); - quadtree.put(new DegreePosition(49.6989, 8.602160000000001)); - quadtree.put(new DegreePosition(49.698060000000005, 8.602400000000001)); - quadtree.put(new DegreePosition(49.695820000000005, 8.602820000000001)); - quadtree.put(new DegreePosition(49.693780000000004, 8.602960000000001)); - quadtree.put(new DegreePosition(49.69301, 8.602960000000001)); - quadtree.put(new DegreePosition(49.6916, 8.602860000000002)); - quadtree.put(new DegreePosition(49.69035, 8.602640000000001)); - quadtree.put(new DegreePosition(49.689150000000005, 8.60234)); - quadtree.put(new DegreePosition(49.68645, 8.60135)); - quadtree.put(new DegreePosition(49.68348, 8.600140000000001)); - quadtree.put(new DegreePosition(49.68186000000001, 8.599680000000001)); - quadtree.put(new DegreePosition(49.67985, 8.599250000000001)); - quadtree.put(new DegreePosition(49.678070000000005, 8.59914)); - quadtree.put(new DegreePosition(49.676970000000004, 8.599160000000001)); - quadtree.put(new DegreePosition(49.67475, 8.59946)); - quadtree.put(new DegreePosition(49.672610000000006, 8.60003)); - quadtree.put(new DegreePosition(49.669450000000005, 8.6013)); - quadtree.put(new DegreePosition(49.667790000000004, 8.60214)); - quadtree.put(new DegreePosition(49.6655, 8.60356)); - quadtree.put(new DegreePosition(49.66145, 8.60621)); - quadtree.put(new DegreePosition(49.65959, 8.607330000000001)); - quadtree.put(new DegreePosition(49.657700000000006, 8.6083)); - quadtree.put(new DegreePosition(49.65603, 8.60891)); - quadtree.put(new DegreePosition(49.65431, 8.609340000000001)); - quadtree.put(new DegreePosition(49.65194, 8.60959)); - quadtree.put(new DegreePosition(49.649770000000004, 8.609620000000001)); - quadtree.put(new DegreePosition(49.64312, 8.609250000000001)); - quadtree.put(new DegreePosition(49.64190000000001, 8.60926)); - quadtree.put(new DegreePosition(49.64029000000001, 8.609380000000002)); - quadtree.put(new DegreePosition(49.63906, 8.609530000000001)); - quadtree.put(new DegreePosition(49.63758000000001, 8.60983)); - quadtree.put(new DegreePosition(49.63456000000001, 8.610570000000001)); - quadtree.put(new DegreePosition(49.632870000000004, 8.61125)); - quadtree.put(new DegreePosition(49.630630000000004, 8.612340000000001)); - quadtree.put(new DegreePosition(49.62894000000001, 8.61344)); - quadtree.put(new DegreePosition(49.627930000000006, 8.61416)); - quadtree.put(new DegreePosition(49.62348, 8.61804)); - quadtree.put(new DegreePosition(49.622220000000006, 8.61931)); - quadtree.put(new DegreePosition(49.618030000000005, 8.623240000000001)); - quadtree.put(new DegreePosition(49.6152, 8.6256)); - quadtree.put(new DegreePosition(49.61211, 8.627540000000002)); - quadtree.put(new DegreePosition(49.61057, 8.62833)); - quadtree.put(new DegreePosition(49.60898, 8.62899)); - quadtree.put(new DegreePosition(49.607150000000004, 8.629620000000001)); - quadtree.put(new DegreePosition(49.604940000000006, 8.630170000000001)); - quadtree.put(new DegreePosition(49.603770000000004, 8.63035)); - quadtree.put(new DegreePosition(49.60065, 8.630640000000001)); - quadtree.put(new DegreePosition(49.59897, 8.63086)); - quadtree.put(new DegreePosition(49.59581000000001, 8.63113)); - quadtree.put(new DegreePosition(49.59308000000001, 8.63165)); - quadtree.put(new DegreePosition(49.59147, 8.63212)); - quadtree.put(new DegreePosition(49.58559, 8.634110000000002)); - quadtree.put(new DegreePosition(49.58408000000001, 8.634540000000001)); - quadtree.put(new DegreePosition(49.582060000000006, 8.635010000000001)); - quadtree.put(new DegreePosition(49.580670000000005, 8.635200000000001)); - quadtree.put(new DegreePosition(49.57885, 8.635330000000002)); - quadtree.put(new DegreePosition(49.57715, 8.63531)); - quadtree.put(new DegreePosition(49.57417, 8.6349)); - quadtree.put(new DegreePosition(49.572190000000006, 8.63455)); - quadtree.put(new DegreePosition(49.570730000000005, 8.63413)); - quadtree.put(new DegreePosition(49.568430000000006, 8.6333)); - quadtree.put(new DegreePosition(49.565090000000005, 8.63171)); - quadtree.put(new DegreePosition(49.560050000000004, 8.62922)); - quadtree.put(new DegreePosition(49.55922, 8.62894)); - quadtree.put(new DegreePosition(49.55603000000001, 8.628010000000002)); - quadtree.put(new DegreePosition(49.55425, 8.62767)); - quadtree.put(new DegreePosition(49.55111, 8.62743)); - quadtree.put(new DegreePosition(49.548930000000006, 8.62748)); - quadtree.put(new DegreePosition(49.548120000000004, 8.62757)); - quadtree.put(new DegreePosition(49.54666, 8.62784)); - quadtree.put(new DegreePosition(49.54466000000001, 8.62827)); - quadtree.put(new DegreePosition(49.54215000000001, 8.62898)); - quadtree.put(new DegreePosition(49.539440000000006, 8.62991)); - quadtree.put(new DegreePosition(49.537850000000006, 8.63052)); - quadtree.put(new DegreePosition(49.52872000000001, 8.63442)); - quadtree.put(new DegreePosition(49.527300000000004, 8.63508)); - quadtree.put(new DegreePosition(49.52526, 8.635860000000001)); - quadtree.put(new DegreePosition(49.52337000000001, 8.636510000000001)); - quadtree.put(new DegreePosition(49.52058, 8.637360000000001)); - quadtree.put(new DegreePosition(49.518550000000005, 8.637910000000002)); - quadtree.put(new DegreePosition(49.51503, 8.638770000000001)); - quadtree.put(new DegreePosition(49.51098, 8.639330000000001)); - quadtree.put(new DegreePosition(49.50845, 8.63959)); - quadtree.put(new DegreePosition(49.50417, 8.639740000000002)); - quadtree.put(new DegreePosition(49.499810000000004, 8.63963)); - quadtree.put(new DegreePosition(49.49546, 8.63912)); - quadtree.put(new DegreePosition(49.49306000000001, 8.638910000000001)); - quadtree.put(new DegreePosition(49.490320000000004, 8.638760000000001)); - quadtree.put(new DegreePosition(49.48669, 8.63865)); - quadtree.put(new DegreePosition(49.484480000000005, 8.638760000000001)); - quadtree.put(new DegreePosition(49.48073, 8.639330000000001)); - quadtree.put(new DegreePosition(49.4776, 8.640130000000001)); - quadtree.put(new DegreePosition(49.476310000000005, 8.64052)); - quadtree.put(new DegreePosition(49.468500000000006, 8.64342)); - quadtree.put(new DegreePosition(49.464470000000006, 8.64483)); - quadtree.put(new DegreePosition(49.461290000000005, 8.64577)); - quadtree.put(new DegreePosition(49.458690000000004, 8.64629)); - quadtree.put(new DegreePosition(49.457530000000006, 8.646460000000001)); - quadtree.put(new DegreePosition(49.455380000000005, 8.64666)); - quadtree.put(new DegreePosition(49.453050000000005, 8.64668)); - quadtree.put(new DegreePosition(49.451750000000004, 8.64661)); - quadtree.put(new DegreePosition(49.450430000000004, 8.64647)); - quadtree.put(new DegreePosition(49.44711, 8.64578)); - quadtree.put(new DegreePosition(49.445350000000005, 8.6453)); - quadtree.put(new DegreePosition(49.44398, 8.64478)); - quadtree.put(new DegreePosition(49.44091, 8.64338)); - quadtree.put(new DegreePosition(49.439840000000004, 8.64282)); - quadtree.put(new DegreePosition(49.438340000000004, 8.64193)); - quadtree.put(new DegreePosition(49.43139000000001, 8.63724)); - quadtree.put(new DegreePosition(49.42933000000001, 8.636080000000002)); - quadtree.put(new DegreePosition(49.427890000000005, 8.63537)); - quadtree.put(new DegreePosition(49.426460000000006, 8.634820000000001)); - quadtree.put(new DegreePosition(49.42436000000001, 8.634160000000001)); - quadtree.put(new DegreePosition(49.422200000000004, 8.63371)); - quadtree.put(new DegreePosition(49.42033000000001, 8.633500000000002)); - quadtree.put(new DegreePosition(49.41946, 8.63347)); - quadtree.put(new DegreePosition(49.41798000000001, 8.63348)); - quadtree.put(new DegreePosition(49.415710000000004, 8.633700000000001)); - quadtree.put(new DegreePosition(49.41463, 8.6339)); - quadtree.put(new DegreePosition(49.412670000000006, 8.63437)); - quadtree.put(new DegreePosition(49.411120000000004, 8.6349)); - quadtree.put(new DegreePosition(49.40739000000001, 8.636330000000001)); - quadtree.put(new DegreePosition(49.40572, 8.636800000000001)); - quadtree.put(new DegreePosition(49.39164, 8.63865)); - quadtree.put(new DegreePosition(49.39021, 8.63879)); - quadtree.put(new DegreePosition(49.38855, 8.638720000000001)); - quadtree.put(new DegreePosition(49.38721, 8.638480000000001)); - quadtree.put(new DegreePosition(49.38656, 8.638290000000001)); - quadtree.put(new DegreePosition(49.38440000000001, 8.63746)); - quadtree.put(new DegreePosition(49.37805, 8.63387)); - quadtree.put(new DegreePosition(49.376940000000005, 8.63334)); - quadtree.put(new DegreePosition(49.376000000000005, 8.63297)); - quadtree.put(new DegreePosition(49.37500000000001, 8.63269)); - quadtree.put(new DegreePosition(49.373780000000004, 8.632480000000001)); - quadtree.put(new DegreePosition(49.36988, 8.63222)); - quadtree.put(new DegreePosition(49.36872, 8.632190000000001)); - quadtree.put(new DegreePosition(49.364360000000005, 8.631910000000001)); - quadtree.put(new DegreePosition(49.35228000000001, 8.63127)); - quadtree.put(new DegreePosition(49.34911, 8.631160000000001)); - quadtree.put(new DegreePosition(49.33944, 8.63067)); - quadtree.put(new DegreePosition(49.31497, 8.62917)); - quadtree.put(new DegreePosition(49.312200000000004, 8.62892)); - quadtree.put(new DegreePosition(49.31073000000001, 8.628670000000001)); - quadtree.put(new DegreePosition(49.303380000000004, 8.626940000000001)); - quadtree.put(new DegreePosition(49.30293, 8.62654)); - quadtree.put(new DegreePosition(49.30285000000001, 8.62644)); - quadtree.put(new DegreePosition(49.302690000000005, 8.62608)); - quadtree.put(new DegreePosition(49.30268, 8.62584)); - quadtree.put(new DegreePosition(49.30299, 8.62268)); - quadtree.put(new DegreePosition(49.30303000000001, 8.622010000000001)); - quadtree.put(new DegreePosition(49.30299, 8.621730000000001)); - quadtree.put(new DegreePosition(49.30293, 8.6216)); - quadtree.put(new DegreePosition(49.30274000000001, 8.62147)); - quadtree.put(new DegreePosition(49.30238000000001, 8.62139)); - quadtree.put(new DegreePosition(49.302290000000006, 8.621310000000001)); - quadtree.put(new DegreePosition(49.301950000000005, 8.62127)); - quadtree.put(new DegreePosition(49.30187, 8.62279)); - quadtree.put(new DegreePosition(49.30172, 8.62456)); - quadtree.put(new DegreePosition(49.30134, 8.62697)); - quadtree.put(new DegreePosition(49.30116, 8.627690000000001)); - quadtree.put(new DegreePosition(49.30053, 8.629800000000001)); - quadtree.put(new DegreePosition(49.299820000000004, 8.63142)); - quadtree.put(new DegreePosition(49.29916, 8.6327)); - quadtree.put(new DegreePosition(49.299530000000004, 8.63279)); - quadtree.put(new DegreePosition(49.30006, 8.63272)); - quadtree.put(new DegreePosition(49.30068000000001, 8.63277)); - quadtree.put(new DegreePosition(49.30082, 8.63283)); - quadtree.put(new DegreePosition(49.301050000000004, 8.633040000000001)); - quadtree.put(new DegreePosition(49.300340000000006, 8.634780000000001)); - quadtree.put(new DegreePosition(49.29995, 8.63593)); - quadtree.put(new DegreePosition(49.299690000000005, 8.63723)); - quadtree.put(new DegreePosition(49.299600000000005, 8.638200000000001)); - quadtree.put(new DegreePosition(49.29963, 8.63973)); - quadtree.put(new DegreePosition(49.299710000000005, 8.64104)); - quadtree.put(new DegreePosition(49.29831, 8.643080000000001)); - quadtree.put(new DegreePosition(49.29796, 8.64334)); - quadtree.put(new DegreePosition(49.297920000000005, 8.643450000000001)); - quadtree.put(new DegreePosition(49.297920000000005, 8.643590000000001)); - quadtree.put(new DegreePosition(49.29798, 8.64389)); - quadtree.put(new DegreePosition(49.299420000000005, 8.646180000000001)); - quadtree.put(new DegreePosition(49.299580000000006, 8.64652)); - quadtree.put(new DegreePosition(49.29955, 8.646640000000001)); - quadtree.put(new DegreePosition(49.29957, 8.64677)); - quadtree.put(new DegreePosition(49.299710000000005, 8.64681)); - quadtree.put(new DegreePosition(49.29977, 8.646730000000002)); - quadtree.put(new DegreePosition(49.299780000000005, 8.646640000000001)); - quadtree.put(new DegreePosition(49.299690000000005, 8.64648)); - quadtree.put(new DegreePosition(49.2997, 8.64638)); - quadtree.put(new DegreePosition(49.29992000000001, 8.64586)); - quadtree.put(new DegreePosition(49.29995, 8.64563)); - quadtree.put(new DegreePosition(49.300790000000006, 8.644)); - quadtree.put(new DegreePosition(49.301120000000004, 8.643650000000001)); - quadtree.put(new DegreePosition(49.301390000000005, 8.64348)); - quadtree.put(new DegreePosition(49.30283000000001, 8.642980000000001)); - quadtree.put(new DegreePosition(49.30346, 8.642560000000001)); - quadtree.put(new DegreePosition(49.30378, 8.64241)); - quadtree.put(new DegreePosition(49.309740000000005, 8.64105)); - quadtree.put(new DegreePosition(49.309760000000004, 8.64207)); - quadtree.put(new DegreePosition(49.309140000000006, 8.64212)); - quadtree.put(new DegreePosition(49.309140000000006, 8.643880000000001)); - quadtree.put(new DegreePosition(49.30917, 8.64403)); - quadtree.put(new DegreePosition(49.30923000000001, 8.644110000000001)); - quadtree.put(new DegreePosition(49.30937, 8.644110000000001)); - - Position p1 = new DegreePosition(50.47498691278631, 8.701171875); - Position p2 = new DegreePosition(50.47149085139956, 8.7066650390625); - Position p3 = new DegreePosition(50.47848271564207, 8.7066650390625); - double maxDistance = 0.06242236766906711; Position p1Nearest = quadtree.get(p1, maxDistance); Position p2Nearest = quadtree.get(p2, maxDistance); @@ -1198,4 +1226,85 @@ public class QuadTreeTest { assertNotNull(p3Nearest); } + @Test + public void testNearest() { + double maxDistance = 0.06242236766906711; + Position p1Nearest = quadtree.get(p1, maxDistance); + Position p2Nearest = quadtree.get(p2, maxDistance); + Position p3Nearest = quadtree.get(p3, maxDistance); + assertSame(getNearestByApproximateDistance(p1), p1Nearest); + assertSame(getNearestByApproximateDistance(p2), p2Nearest); + assertSame(getNearestByApproximateDistance(p3), p3Nearest); + } + + private double approximateDistance(Position p1, Position p2) { + double dLat = p2.getLatDeg() - p1.getLatDeg(); + double dLon = p2.getLngDeg() - p1.getLngDeg(); + return Math.sqrt(dLat*dLat + dLon*dLon); + } + + private Position getNearestByApproximateDistance(Position pos) { + double minDistance = Double.MAX_VALUE; + Position nearestByDistance = null; + for (final Position p : quadtree.get(new BoundsImpl(new DegreePosition(-90, -180), new DegreePosition(90, 180)))) { // get all + if (approximateDistance(p, pos) < minDistance) { + nearestByDistance = p; + minDistance = approximateDistance(p, pos); + } + } + return nearestByDistance; + } + + @Test + public void testTooFarAwayProducesEmptyResults() { + double maxDistance = 0.06242236766906711; + Position p1Nearest = quadtree.get(new DegreePosition(0, 0), maxDistance); + assertNull(p1Nearest); + } + + @Test + public void measureLookupNearestPerformance() { + long start = System.currentTimeMillis(); + final int ITERATIONS = 100000; + for (int i=0; i positions = new ArrayList<>(); + for (int i=0; i