通过 Azure 移动服务使用服务器端脚本读取数据

reading data using a server side script with Azure Mobile Services

大家好,我有一个 android 应用程序,它使用 Azure 移动服务来存储数据。我有一个涉及 haversine 算法的查询。该查询非常有效,因为它获得了相对于插入算法的经度和纬度最近的餐厅位置。但是我不知道如何使用查询。我应该在 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 移动服务目前没有内置对地理数据类型的支持,但是,您可以轻松解决这个问题。如果您使用 JavaScript 后端,您将需要使用 MSSQL 模块来执行自定义 SQL 语句(或创建存储过程并调用它们)。您可以使用这种方法将地理数据类型保存到数据库中(因为 Azure SQL 数据库确实支持地理)。然后,您可以使用相同的模块来执行上面的 SQL 语句。或者,如果您使用的是 .NET 后端,您将具有调用自定义 SQL 的相同能力,但也应该能够使用 Entity Framework 来处理地理类型。

您可以在此处查看有关如何执行此操作的完整演示:https://code.msdn.microsoft.com/windowsapps/Geolocation-sample-end-to-5d9ee245