Geography で入力したポイントの緯度と経度を保存しました。カスタム API を作成し、次のコードで最も近いポイントを取得できます。
exports.get = function(request, response) {
var lat = request.query.latitude.replace(",",".");
var lng = request.query.longitude.replace(",",".");
var limit = +request.query.limit;
if (!limit) limit = 20;
console.log('Filtr: lat - %s, lng - %s, limit - %s', lat, lng, limit);
var mssql = request.service.mssql;
var queryString = "SELECT TOP (?) id, title, description, category, city, street, price, startdate, enddate, location.Lat latitude, location.Long longitude, location.STDistance(geography::Point(?, ?, 4326)) AS distance FROM Action ORDER BY distance"
mssql.query(queryString, [limit, lat, lng], {
success: function(results) {
request.respond(statusCodes.OK, results);
}
});
};
しかし、すべてのポイントを取得したいのですが、その方法がわかりません。今、スクリプト操作を読んだばかりのとき:
function read(query, user, request) {
request.execute();
}
私は自分のオブジェクトでこれを取得します:
"location":{
"0":230,
"1":16,
"2":0,
"3":0,
"4":1,
"5":12,
"6":67,
"7":203,
"8":186,
"9":127,
"10":44,
"11":190,
"12":72,
"13":64,
"14":70,
"15":64,
"16":133,
"17":35,
"18":72,
"19":169,
"20":48,
"21":64,
"length":22
},
カスタム API から SQL スクリプトを変更して読み取り操作に適用しようとしていましたが、読み取り操作スクリプトでクエリを変更する方法がわかりません。リクエストを実行した後、成功して作業しようとしていましたが、手遅れです。誰でもこれで私を助けることができますか?