嗨,我做了很多尝试,但我不知道为什么要haversine()
在x上保存时出现以下错误:undefined Variable Haversine
。唯一有效的方法是当我将Haversine函数放入函数中时
class GetRide(APIView):
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
def haversine(lat1, lng1, lat2, lng2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
"""
# convert decimal degrees to radians
lng1, lat1, lng2, lat2 = map(radians, [lng1, lat1, lng2, lat2])
# haversine formula
dlng = lng2 - lng1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlng/2)**2
c = 2 * asin(sqrt(a))
km = 6367 * c
return km
def get(self, request, route_id):
d_route = Route.objects.get(id=route_id)
p_routes = Route.objects.all()
for route in p_routes:
x = haversine(d_route.origin_lat,d_route.origin_lng, route.origin_lat, route.origin_lng )
if ( x < 3):
new_route = 0
return Response(new_route,status=status.HTTP_200_OK)
线:
def haversine(lat1, lng1, lat2, lng2):
应该:
def haversine(self, lat1, lng1, lat2, lng2):
和线:
x = haversine(d_route.origin_lat,d_route.origin_lng, route.origin_lat, route.origin_lng )
应该:
x = self.haversine(d_route.origin_lat,d_route.origin_lng, route.origin_lat, route.origin_lng )
那是因为它们都存在于内部,Class
所有函数都应该缩进到Class
。不知道它是否粘贴错误,或者实际上是否看起来像.py文件中的样子。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句