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程序查找具有指定半径的给定纬度和经度(即位置)的周围纬度和纬度值