Получить местоположение в виде широты и долготы из географии в мобильных службах Azure.

Я сохранил широту и долготу для своих точек, как напечатал Географию. Я создал собственный 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
},

Я пытался изменить сценарий sql из пользовательского API для применения к операции чтения, но я не знаю, как изменить запрос в сценарии операции чтения. Я пытался успешно работать после выполнения запроса, но уже слишком поздно. Кто-нибудь может помочь мне с этим?


person Libor Zapletal    schedule 19.09.2013    source источник


Ответы (1)


Я нашел решение своей проблемы:

function read(query, user, request) {
  var queryString = "SELECT id, title, description, category, city, street, price, startdate, enddate, location.Lat latitude, location.Long longitude FROM Action";   
  mssql.query(queryString, { 
                success: function(results) { 
                     request.respond(statusCodes.OK, results); 
                } 
          }); 
}

Я попробовал это как первый вариант, прежде чем задал вопрос, но я попробовал это с помощью этой строки:

var mssql = request.service.mssql;

Но затем я нашел пример без этой строки, но с объектом mssql, и он работает.

person Libor Zapletal    schedule 19.09.2013
comment
Ты прав. mssql — это глобальная переменная в скриптах таблиц, но в пользовательских API нет глобальных переменных, поэтому вам нужно получить к ним доступ через объект request.service. - person carlosfigueira; 19.09.2013