@Test public void testZeroDivergence() { NicGeoPoint point1 = new XYPoint(50721776, 7061692); point1.setDivergence(0.0); NicGeoPoint point2 = new XYPoint(50721859, 7061444); point2.setDivergence(5.245503270998597E-4); NicGeoPoint point3 = new XYPoint(50721817, 7061446); point3.setDivergence(0.0012848408659920096); distanceSet = new TreeSet<NicGeoPoint>(); distanceSet.add(point1); distanceSet.add(point2); distanceSet.add(point3); NicGeoPoint pointResult = interpolator.interpolatePosition(distanceSet); assertTrue(pointResult.getX()!=0.0); assertTrue(pointResult.getY()!=0.0); }
@Override public T interpolatePosition(final SortedSet<T> points) { if (points.size() == 0) { return pointFactory.newPoint(); } float normalizationFactor = 0; float x = 0; float y = 0; for (final T point : points) { if (point.getDivergence() == 0.0) { return point; } final double weight = 1 / point.getDivergence(); normalizationFactor += weight; x += weight * point.getX(); y += weight * point.getY(); } x = x / normalizationFactor; y = y / normalizationFactor; return getResultingPoint(x, y); }
ReciprocalInterpolation implements PositionInterpolator<T> { @Override public T interpolatePosition(final SortedSet<T> points) { if (points.size() == 0) { return pointFactory.newPoint(); } float normalizationFactor = 0; float x = 0; float y = 0; for (final T point : points) { if (point.getDivergence() == 0.0) { return point; } final double weight = 1 / point.getDivergence(); normalizationFactor += weight; x += weight * point.getX(); y += weight * point.getY(); } x = x / normalizationFactor; y = y / normalizationFactor; return getResultingPoint(x, y); } }
ReciprocalInterpolation implements PositionInterpolator<T> { @Override public T interpolatePosition(final SortedSet<T> points) { if (points.size() == 0) { return pointFactory.newPoint(); } float normalizationFactor = 0; float x = 0; float y = 0; for (final T point : points) { if (point.getDivergence() == 0.0) { return point; } final double weight = 1 / point.getDivergence(); normalizationFactor += weight; x += weight * point.getX(); y += weight * point.getY(); } x = x / normalizationFactor; y = y / normalizationFactor; return getResultingPoint(x, y); } ReciprocalInterpolation(final PointFactory<T> factory); }
ReciprocalInterpolation implements PositionInterpolator<T> { @Override public T interpolatePosition(final SortedSet<T> points) { if (points.size() == 0) { return pointFactory.newPoint(); } float normalizationFactor = 0; float x = 0; float y = 0; for (final T point : points) { if (point.getDivergence() == 0.0) { return point; } final double weight = 1 / point.getDivergence(); normalizationFactor += weight; x += weight * point.getX(); y += weight * point.getY(); } x = x / normalizationFactor; y = y / normalizationFactor; return getResultingPoint(x, y); } ReciprocalInterpolation(final PointFactory<T> factory); @Override T interpolatePosition(final SortedSet<T> points); }
ReciprocalInterpolation implements PositionInterpolator<T> { @Override public T interpolatePosition(final SortedSet<T> points) { if (points.size() == 0) { return pointFactory.newPoint(); } float normalizationFactor = 0; float x = 0; float y = 0; for (final T point : points) { if (point.getDivergence() == 0.0) { return point; } final double weight = 1 / point.getDivergence(); normalizationFactor += weight; x += weight * point.getX(); y += weight * point.getY(); } x = x / normalizationFactor; y = y / normalizationFactor; return getResultingPoint(x, y); } ReciprocalInterpolation(final PointFactory<T> factory); @Override T interpolatePosition(final SortedSet<T> points);  }