javascript - 在ajax函数中返回更少

标签 javascript php jquery ajax

我有一个问题,整晚都在试图解决,但我没有在任何地方找到任何信息,希望你能帮助我。

我在 ajax 中有一个函数返回 php 数组中所有用户的纬度和经度,它运行起来非常酷,但我需要获取这些数据并将其包含在另一个函数中,该函数计算主坐标与所有返回值的距离来自银行的坐标

此功能也运行良好,我的问题是我需要获取这些值并进行比较以查看哪个是最短距离,但是当我尝试仅检索最低值时,它会返回所有计算出的值

它在我的控制台中返回这些数字

用于计算数据库中2个注册用户的经纬度的距离

0.38103420280036954 1.1341204506826572

但他们应该只返回 0.38103420280036954 数字是函数的最小数字。

我不知道该怎么办我整晚都在寻找和尝试但没有成功。

这是我的javascript代码

$.ajax({


  type : 'POST',
  data : formula,
  url : 'http://10.0.0.119/melleve/statusorig2.php',
  success : function(data){


    var retorno = JSON.parse(data);




$.each(retorno, function (index, value) {

  var latitude = value.latitude;
  var longitude = value.longitude;







var lat1 = -22.8650697;
var lat2 = latitude;

var long1 = -43.287510499999996;
var long2 = longitude;

var radlat1 = Math.PI * lat1/180;
var radlat2 = Math.PI * lat2/180;
var theta = long1 - long2;
var radtheta = Math.PI * theta/180;
var dist = Math.sin(radlat1)*Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist);

dist = dist * 180/Math.PI;
dist = dist * 60 * 1.1515;


var finaldist = dist * 1.609344;


var numeros = [finaldist];
var ok = Math.min.apply(Math, numeros);

console.log(ok);







});






  },
  error: function(jqXHR, textStatus, errorThrown){
    //debugger;
  }
  //,complete: function(jqXHR, textStatus){
   // debugger;
  //}

})

这是我的php

$carmodel = $_POST['carmodel'];



 $sql = "SELECT * FROM cadast_moto WHERE carmodel = '$carmodel'"; 

$result = $conn->query($sql);

$encode = array();

while ($res = $result->fetch_array()) {

$arr = array('idmoto' => $res['idmoto'], 'nomemoto' => $res['nomemoto'], 'latitude' => $res['latitude'], 'longitude' => $res['longitude']);


$encode[] = $arr;

//echo (json_encode($arr));

}

最佳答案

您正在打印 $.each 中的最小值,这意味着它将被多次调用。此外,您的数组仅包含一个元素 numeros = [finaldist]。你可能想要这样的东西:

var distances = $.map(arrayOfValues, function(value) { 
   /* do calcualation for one longitude latitude pair */
   return finaldist;
});

var smallestNumber = Math.min.apply(Math, distances);

如果您不熟悉 jQuery.map,您可以阅读它 here .

关于javascript - 在ajax函数中返回更少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793350/

相关文章:

Javascript SOAP 响应解析元素

jquery - 如何在加载页面时禁用 anchor 跳转

javascript - 将所有出现的/字符替换为字符串

php - 清理用户提交的文本以使其良好且可读?

php - python和php可以访问同一个mysqldb吗?

php - 为什么 Chrome 会在我的 xlsx 文件末尾添加两个选项卡,这样做会损坏文件?

javascript - 可以在不使用 "for=id"的情况下将标签与复选框相关联吗?

javascript - 优化 Jade 包装

javascript - 使用具有多个 View 和小模型的主干

javascript - 手动设置 pan.x 和 pan.y 时对 svg pan 进行动画处理