Android 使用Azure移动服务的服务器端脚本读取数据

Android 使用Azure移动服务的服务器端脚本读取数据,android,azure-mobile-services,haversine,Android,Azure Mobile Services,Haversine,大家好,我有一个android应用程序,它使用Azure移动服务来存储数据。我有一个涉及哈弗森算法的查询。该查询非常有效,因为它可以获得相对于插入到算法中的经度和纬度最近的餐厅位置。但是我不知道如何使用这个查询。我应该在android应用程序中使用它,还是应该使用服务器端脚本。查询如下 Select * from ( SELECT *,( 6371 * acos( cos( radians(BOurGuest.Restaurants.latitude) ) * cos( radians(

大家好,我有一个android应用程序,它使用Azure移动服务来存储数据。我有一个涉及哈弗森算法的查询。该查询非常有效,因为它可以获得相对于插入到算法中的经度和纬度最近的餐厅位置。但是我不知道如何使用这个查询。我应该在android应用程序中使用它,还是应该使用服务器端脚本。查询如下

Select * from
(
 SELECT *,( 6371 * acos( cos( radians(BOurGuest.Restaurants.latitude) ) *    cos( radians( -6.391252 ) )
 * cos( radians( 53.284412 ) - radians(BOurGuest.Restaurants.longitude) ) +
 sin( radians(BOurGuest.Restaurants.latitude) ) * sin( radians( -6.391252 ) ) ) ) 
 AS Distance FROM BOurGuest.Restaurants
) as inner_table
WHERE Distance < 5;

如果我在应用程序中使用查询或将其用作服务器端脚本,有人能告诉我如何操作吗。

Azure Mobile Services目前还没有内置对地理数据类型的支持,但是,您可以轻松解决此问题。如果您使用的是JavaScript后端,则需要使用MSSQL模块来执行自定义SQL语句或创建存储过程并调用这些语句。您可以使用这种方法将地理数据类型保存到数据库中,因为Azure SQL数据库支持地理。然后,您可以使用相同的模块来执行上面的SQL语句。或者,如果您使用的是.NET后端,您将具有调用自定义SQL的相同功能,但也应该能够使用实体框架来处理地理类型

您可以在此处看到如何执行此操作的完整演示: