gpt4 book ai didi

php - mysql 选择最接近特定位置的纬度/经度

转载 作者:行者123 更新时间:2023-11-29 14:37:35 26 4
gpt4 key购买 nike

Possible Duplicate:
Nearest locations with latitude and longitude

我的数据库上有超过 1000 个位置(纬度、经度),我想根据特定位置 a(纬度、经度)选择 5 个最近的位置!谁能告诉我如何做到这一点!我不想进行测试来计算 a 和其他位置之间的所有距离,这会花费太多时间!

这是我想做的,但我不确定!!

    $lat = round (48.89463, 3);
$lng = round (2.33739,2);

$sql=mysql_query("SELECT *
FROM tbl z
WHERE ROUND(z.lat,3) LIKE $lat AND ROUND(z.long,2) LIKE $lng
LIMIT 0,5") or die(mysql_error());
while($row=mysql_fetch_assoc($sql))
{
echo $row[lat].";".$row[long]."<br>";
}

谢谢!

最佳答案

您可以使用great-circle distance .

$lat = round (48.89463, 3);
$lng = round (2.33739,2);

$sql=mysql_query("SELECT *
FROM tbl z
ORDER BY ACOS(COS(RADIANS($lat))*COS(RADIANS(z.lat))*COS(RADIANS(z.long)RADIANS($lng))+SIN(RADIANS($lat))*SIN(RADIANS(z.lat))
WHERE ROUND(z.lat,3) LIKE $lat AND ROUND(z.long,2) LIKE $lng
LIMIT 0,5") or die(mysql_error());
while($row=mysql_fetch_assoc($sql))
{
echo $row[lat].";".$row[long]."<br>";
}

关于php - mysql 选择最接近特定位置的纬度/经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8701449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com