Azure sql serverのtableに場所名とその位置情報を保存している。
現在地からの距離順で場所を表示させる方法。
Azure mobile serviceのtableスクリプトを利用する。
読み取り操作に、以下のスクリプトを入れる。
requestのパラメータとして、現在地の経度と緯度をserver scriptに渡す。
SHOPINFOのGPSLOC列から位置情報を取り出し、距離を計算する。
function read(query, user, request) {
var lat = request.parameters.lat;
var lng = request.parameters.lng;
var sql = "DECLARE @g geography;"+
"SET @g = geography::Point(?,?, 4326);"+
"SELECT *,round(@g.STDistance(GPSLOC),0) as DIST from [dbo].SHOPINFO order by DIST;"
mssql.query(sql,[lat,lng],{success: function(results) {
request.respond(200,results);
}
})
}
アプリから、get methodで以下のURLにアクセスする。
https://abcdef.azure-mobile.net/tables/shopinfo?lat=latitudeFromGps&lng=longitudeFromGps
参考になったページ:http://hatsune.hatenablog.jp/entry/2014/02/06/092155