def testS2LatLong(self): point = Point.from_lat_lng(30, 40) self.assertPointApproxEq(Point(0.663413948169, 0.556670399226, 0.5), point) (lat, lng) = point.to_lat_lng() self.assertApproxEq(30, lat) self.assertApproxEq(40, lng)
def testCutAtClosestPoint(self): poly = Poly() poly.add_point(Point(0, 1, 0).normalize()) poly.add_point(Point(0, 0.5, 0.5).normalize()) poly.add_point(Point(0, 0, 1).normalize()) (before, after) = \ poly.cut_at_closest_point(Point(0, 0.3, 0.7).normalize()) self.assert_(2 == before.get_num_points()) self.assert_(2 == before.get_num_points()) self.assertPointApproxEq(Point(0, 0.707106781187, 0.707106781187), before.get_point(1)) self.assertPointApproxEq(Point(0, 0.393919298579, 0.919145030018), after.get_point(0)) poly = Poly() poly.add_point( Point.from_lat_lng(40.527035999999995, -74.191265999999999)) poly.add_point( Point.from_lat_lng(40.526859999999999, -74.191140000000004)) poly.add_point( Point.from_lat_lng(40.524681000000001, -74.189579999999992)) poly.add_point( Point.from_lat_lng(40.523128999999997, -74.188467000000003)) poly.add_point( Point.from_lat_lng(40.523054999999999, -74.188676000000001)) pattern = Poly() pattern.add_point(Point.from_lat_lng(40.52713, -74.191146000000003)) self.assertApproxEq(14.564268281551, pattern.greedy_poly_match_dist(poly))
def testPolyMatch(self): poly = Poly() poly.add_point(Point(0, 1, 0).normalize()) poly.add_point(Point(0, 0.5, 0.5).normalize()) poly.add_point(Point(0, 0, 1).normalize()) collection = PolyCollection() collection.add_poly(poly) match = collection.find_matching_polys(Point(0, 1, 0), Point(0, 0, 1)) self.assert_(len(match) == 1 and match[0] == poly) match = collection.find_matching_polys(Point(0, 1, 0), Point(0, 1, 0)) self.assert_(len(match) == 0) poly = Poly() poly.add_point(Point.from_lat_lng(45.585212, -122.586136)) poly.add_point(Point.from_lat_lng(45.586654, -122.587595)) collection = PolyCollection() collection.add_poly(poly) match = collection.find_matching_polys( Point.from_lat_lng(45.585212, -122.586136), Point.from_lat_lng(45.586654, -122.587595)) self.assert_(len(match) == 1 and match[0] == poly) match = collection.find_matching_polys( Point.from_lat_lng(45.585219, -122.586136), Point.from_lat_lng(45.586654, -122.587595)) self.assert_(len(match) == 1 and match[0] == poly) self.assertApproxEq(0.0, poly.greedy_poly_match_dist(poly)) match = collection.find_matching_polys( Point.from_lat_lng(45.587212, -122.586136), Point.from_lat_lng(45.586654, -122.587595)) self.assert_(len(match) == 0)
def testGetDistanceMeters(self): point1 = Point.from_lat_lng(40.536895, -74.203033) point2 = Point.from_lat_lng(40.575239, -74.112825) self.assertApproxEq(8732.623770873237, point1.get_distance_meters(point2))