PHP SQL查询以查找纬度和经度的给定半径内的所有零售商
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP SQL查询以查找纬度和经度的给定半径内的所有零售商相关的知识,希望对你有一定的参考价值。
function retailerSearch($latitude, $longitude, $radius){
$latitude = (int)$latitude;
$longitude = (int)$longitude;
$radius = (int)$radius;
$degree = '69.17032342863616';
$dpmLAT = (1 / $degree);
$radiusLAT = ($dpmLAT * $radius);
$minLAT = ($latitude - $radiusLAT);
$maxLAT = ($latitude + $radiusLAT);
$mpdLNG = ($degree * cos($latitude * (pi / 180)));
$dpmLNG = (1 / $mpdLNG);
$radiusLNG = ($dpmLNG * $radius);
$minLNG = ($longitude - $radiusLNG);
$maxLNG = ($longitude + $radiusLNG);
$subQuery = "
SELECT
`retail_id`
FROM
`retail_locations`
WHERE
`latitude` BETWEEN {$minLAT} AND {$maxLAT}
AND
`longitude` BETWEEN {$minLNG} AND {$maxLNG}
";
$query = "
SELECT
*
FROM
`retail_items`
WHERE
`id` = (
{$subQuery}
)
";
echo $query;
}
以上是关于PHP SQL查询以查找纬度和经度的给定半径内的所有零售商的主要内容,如果未能解决你的问题,请参考以下文章
SQL查询位置半径内的总点数
从给定位置(经度、纬度)的 Y 半径内查找 X 的所有值
从R中的已知中心点查找半径内的纬度/经度
如何计算半径内的最大和最小纬度和经度值?
python:使用纬度和经度查找提供位置半径内的位置的优雅方法
使用java程序查找具有指定半径的给定纬度和经度(即位置)的周围纬度和纬度值