使用mysql和php计算两个位置之间的距离
我正在使用MIT AppInventor开发一个应用程序。从应用程序中,我将当前位置纬度和经度发送到php。我有一个mysql表,它存储完整的地址,包括lat和long。这是问题所在使用mysql和php计算两个位置之间的距离,php,mysql,Php,Mysql,我正在使用MIT AppInventor开发一个应用程序。从应用程序中,我将当前位置纬度和经度发送到php。我有一个mysql表,它存储完整的地址,包括lat和long。这是问题所在 $sSQL= "SELECT *,(((acos(sin((".$lat1."*pi()/180)) * sin((latitude*pi()/180))+cos((".$lat1."*pi()/180)) * cos((latitude*pi()/180)) * cos(((".$long1."- longitu
$sSQL= "SELECT *,(((acos(sin((".$lat1."*pi()/180)) * sin((latitude*pi()/180))+cos((".$lat1."*pi()/180)) * cos((latitude*pi()/180)) * cos(((".$long1."- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) as distance_var FROM DIVE_LOC HAVING distance_loc < 5 ORDER BY distance LIMIT 0 , 20";
比较结果,下面是输出
$sSQL= "SELECT *,(((acos(sin((".$lat1."*pi()/180)) * sin((latitude*pi()/180))+cos((".$lat1."*pi()/180)) * cos((latitude*pi()/180)) * cos(((".$long1."- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) as distance_var FROM DIVE_LOC HAVING distance_loc < 5 ORDER BY distance LIMIT 0 , 20";
PHP value - 0.32493112554566 # mySQL value -0.320931017946721
PHP value - 0.49010759578908 # mySQL value -0.49327293708344117
PHP value - 0.49010759578908 # mySQL value -0.49327293708344117
PHP value - 0.65728970497002 # mySQL value -0.6598218485814622
PHP value - 0.88521338025908 # mySQL value -0.8844764825185991
PHP value - 1.1443186694143 # mySQL value -1.1438416915550529.
我只是想知道这些值是否存在差异。两者不可能完全相同 这个怎么样。这可能是由于php中用于计算的float或double数据类型和mysql中使用的另一种数据类型造成的。首先将单位转换为英里,然后再转换为公里,这真的很奇怪。为什么不全程使用公里数呢?这个怎么样。这可能是由于php中用于计算的float或double数据类型和mysql中使用的另一种数据类型造成的。首先将单位转换为英里,然后再转换为公里,这真的很奇怪。为什么不全程使用km?
$sSQL= "SELECT *,(((acos(sin((".$lat1."*pi()/180)) * sin((latitude*pi()/180))+cos((".$lat1."*pi()/180)) * cos((latitude*pi()/180)) * cos(((".$long1."- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) as distance_var FROM DIVE_LOC HAVING distance_loc < 5 ORDER BY distance LIMIT 0 , 20";