如何在PHP中使用当前位置找到最近的地方图像?

时间:2016-01-19 09:51:55

标签: javascript php

我有一个数据库,其中有一些商店,其纬度和经度位于当前位置。所以根据我输入的当前(纬度,纬度)位置,我想得到一些半径范围内的物品清单,如1公里,5公里等?

3 个答案:

答案 0 :(得分:1)

您可以使用 MySQL 查询从数据库记录中获取所有结果(纬度,经度和距离),如下所示:

SELECT latitude, longitude, SQRT(
    POW(69.1 * (latitude - [startlat]), 2) +
    POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM TableName HAVING distance < 5 ORDER BY distance;

<强>这里:
startlat 是您所需的纬度,
startlng 是您所需的纬度,
69.1 是英里到纬度的转换因子,
57.3 约为180 / pi,
5 是以英里为单位的搜索半径

我通过这些&lt; 5距离

答案 1 :(得分:0)

这是我几年前用过的一个mysql代码:

SELECT
`id`,
`name`,
ACOS( SIN( RADIANS( `latitude` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `latitude` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `longitude` ) - RADIANS( $fLon )) ) * 6380 AS `distance`
FROM `stations`
WHERE
ACOS( SIN( RADIANS( `latitude` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `latitude` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `longitude` ) - RADIANS( $fLon )) ) * 6380 < 10
ORDER BY `distance`

答案 2 :(得分:0)

请阅读:http://www.movable-type.co.uk/scripts/latlong-db.html它会告诉您如何操作。

相关问题