예제 #1
0
 def test_distance(self):
     from editolido.geolite import rad_to_nm
     geopoint1 = GeoPoint((30, 13))
     geopoint2 = GeoPoint((50, -77))
     self.assertEqual(
         GeoPoint.distance(geopoint1, geopoint2),
         geopoint1.distance_to(geopoint2),
         msg='unit radians'
     )
     self.assertEqual(
         GeoPoint.distance(geopoint1, geopoint2, converter=rad_to_nm),
         geopoint1.distance_to(geopoint2, converter=rad_to_nm)
     )
예제 #2
0
 def test_get_nearest_points(self):
     from editolido.geoindex import GeoGridIndex
     c = GeoPoint((45, 10.5))
     p = GeoPoint((45, 10))  # à 21,23NM
     grid = GeoGridIndex()
     grid.add_point(p)
     nearby = grid.get_nearest_points(c, 20, converter=nm_to_rad)
     self.assertEqual(list(nearby), [])
     nearby = grid.get_nearest_points(c, 23, converter=nm_to_rad)
     self.assertEqual(list(nearby),
                      [(p, c.distance_to(p, converter=rad_to_nm))])
예제 #3
0
 def test_get_nearest_points(self):
     c = GeoPoint((45, 10.5))
     p = GeoPoint((45, 10))  # à 21,23NM
     grid = GeoGridIndex()
     grid.add_point([p.name, float(p.latitude), float(p.longitude)])
     nearby = grid.get_nearest_points(c, 20, converter=nm_to_rad)
     if six.PY2:
         self.assertEqual(list(nearby), [])
     else:
         pass  # TODO
     nearby = grid.get_nearest_points(c, 23, converter=nm_to_rad)
     if six.PY2:
         self.assertEqual(list(nearby),
                          [(p, c.distance_to(p, converter=rad_to_nm))])
     else:
         pass  # TODO
예제 #4
0
 def test_distance_to(self):
     import math
     from editolido.geolite import rad_to_nm, rad_to_km
     geopoint1 = GeoPoint((0, 90))
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint1),
         0, msg="distance to self")
     geopoint2 = GeoPoint((0, -90))
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint2),
         math.pi, msg="points on equator")
     geopoint2 = GeoPoint((90, -90))
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint2),
         math.pi / 2, msg="pole to equator")
     geopoint1 = GeoPoint((0, 179))
     geopoint2 = GeoPoint((0, -179))
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint2),
         2 * math.pi / 180, msg="date line boundary")
     geopoint1 = GeoPoint((0, 1))
     geopoint2 = GeoPoint((0, -1))
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint2),
         2 * math.pi / 180, msg="greenwich boundary")
     geopoint1 = GeoPoint((1, 0))
     geopoint2 = GeoPoint((-1, 0))
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint2),
         2 * math.pi / 180, msg="equator boundary")
     geopoint1 = GeoPoint((30, 13))
     geopoint2 = GeoPoint((50, -77))
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint2, converter=rad_to_nm),
         4051, places=0)
     self.assertAlmostEqual(
         geopoint1.distance_to(geopoint2, converter=rad_to_km),
         7503, places=0)