Здесь он находится в C # (lat и long в радианах):
double CalculateGreatCircleDistance(double lat1, double long1, double lat2, double long2, double radius)
{
return radius * Math.Acos(
Math.Sin(lat1) * Math.Sin(lat2)
+ Math.Cos(lat1) * Math.Cos(lat2) * Math.Cos(long2 - long1));
}
Если ваш lat и long находятся в градусах, разделите их на 180 / PI для преобразования в радианы.
Чтобы поддерживать запросы JSONP , сервер должен будет включить в ответ P
или « Padding ».
jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})
Синтаксическая ошибка "Unexpected token :"
заключается в том, что JSONP анализируется как JavaScript, где {...}
также представляет блоки . Он просто использует JSON и аналогичный синтаксис JavaScript для определения данных, передаваемых глобальному вызову функции.
По умолчанию jQuery будет включать параметр строки запроса callback
с именем функции:
var callback = req.query.callback;
var data = JSON.stringify({
Name : "Tom",
Description : "Hello it's me!"
});
if (callback) {
res.setHeader('Content-Type', 'text/javascript');
res.end(callback + '(' + data + ')');
} else {
res.setHeader('Content-Type', 'application/json');
res.end(data);
}
ExpressJS также включает в себя res.jsonp()
, который уже реализует это условие:
app.get( '/', function( req, res ) {
console.log( 'req received' );
res.jsonp({
Name : "Tom",
Description : "Hello it's me!"
});
});
Вы хотите использовать dataType: «json» вместо «jsonp»