Sql server MSSQL server 2013内置方法,返回给定纬度和经度的地球位置点
我是MSSQL服务器的新手,我已经将数据库从postgres更改为MSSQL 服务器2013。在此之前,我在Django(python)中使用了原始查询 应用程序和将my db更改为mssql后 postgres不在mssql sevrer中退出。那有什么建筑吗 在mssql服务器中的功能类似于ll_到_接地和接地距离 django中的GenericViewSet,其中添加了ORM的原始查询 为了使用存储过程解决我的问题,我创建了一个存储过程 过程,然后在django代码中执行它,这解决了 问题Sql server MSSQL server 2013内置方法,返回给定纬度和经度的地球位置点,sql-server,django,postgresql,Sql Server,Django,Postgresql,我是MSSQL服务器的新手,我已经将数据库从postgres更改为MSSQL 服务器2013。在此之前,我在Django(python)中使用了原始查询 应用程序和将my db更改为mssql后 postgres不在mssql sevrer中退出。那有什么建筑吗 在mssql服务器中的功能类似于ll_到_接地和接地距离 django中的GenericViewSet,其中添加了ORM的原始查询 为了使用存储过程解决我的问题,我创建了一个存储过程 过程,然后在django代码中执行它,这解决了 问题
def list(self, request):
'''docstring'''
params = request.data
distance_range = params['range'] * 1609.34 if 'range' in params and params['range'] else 2 * 1609.34
queryset = ValetAt.objects.raw('''
SELECT valetat.id, earth_distance(ll_to_earth({},{}), ll_to_earth(valetat.latitude, valetat.longitude)) as distance FROM valetat WHERE earth_box(ll_to_earth({},{}),{}) @> ll_to_earth(valetat.latitude, valetat.longitude) ORDER BY distance ASC;
'''.format(params["latitude"], params["longitude"], params["latitude"], params["longitude"], distance_range))
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
def list(self, request):
params = request.data
dist_range = param['range'] * 1609.34 if 'range' in params and params['range'] else 2 * 1609.34
que = User.objects.raw('''execute calDistanceEx @RADIUS = {}, @LAT = {}, @LONG = {}, @USER_ID={}, @GEO1 = NULL;'''.format(dist_range , params["lat"], params["long"], userId))
serializer = self.get_serializer(que, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)