code: def great_circle_distance(self, other):
          
          distance_latitude = math.radians(abs(self.latitude - other.latitude))
          distance_longitude = math.radians(abs(self.longitude - other.longitude))
          a = math.sin(distance_latitude / 2) * math.sin(distance_latitude / 2) \
              + math.cos(math.radians(self.latitude)) \
                * math.cos(math.radians(other.latitude)) \
                * math.sin(distance_longitude / 2) \
                * math.sin(distance_longitude / 2)
          c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
          return GeoPoint.EARTH_RADIUS_METERS * c
docs: Return the great-circle distance, in meters, from this geographic
          coordinates to the specified other point, i.e., the shortest distance
          over the earth’s surface, ‘as-the-crow-flies’ distance between the
          points, ignoring any natural elevations of the ground.
  
          Haversine formula::
  
            R = earth’s radius (mean radius = 6,371km)
            Δlat = lat2 − lat1
            Δlong = long2 − long1
            a = sin²(Δlat / 2) + cos(lat1).cos(lat2).sin²(Δlong/2)
            c = 2.atan2(√a, √(1−a))
            d = R.c
  
          @param other: a ``GeoPoint`` instance.
  
          @return: the great-circle distance, in meters, between this geographic
              coordinates to the specified other point.