mysql - 查找接近距离 GPS

标签 mysql gps request location coordinates

我有一个 mysql 表,其中包含 GPS 坐标纬度和经度。

我想请求获取给定位置附近的记录。

我尝试了 2 个请求并合并了结果,但它不正确...

//Req 1 - bigger than my position 
$req1 = mysql_query('SELECT * FROM table WHERE latitude >= 47.6621549 and longitude >= 2.3547128 ORDER BY latitude, longitude');

 //Req 2 - samller than my position 
$req2 = mysql_query('SELECT * FROM table WHERE latitude <= 47.6621549 and longitude <= 2.3547128 ORDER BY latitude, longitude');

是否可以通过单个请求来实现? 有了这个,我想用 gmap distance API 检索到给定位置的距离,我认为这不是问题......

感谢您的回答。

最佳答案

试试这个。

$range = 2;/* 2 mi */   
mysql_query("SELECT t1.*,
    (
        3956 * 2 * 
        ASIN(
            SQRT(
                POWER(SIN(($lat - t1.latitude) * pi()/180 / 2), 2) 
                + COS($lat * pi()/180) * COS(t1.latitude * pi()/180) 
                * POWER(SIN(($lng - t1.longitude) * pi()/180 / 2), 2)
            )
        )
    ) AS distance 
    FROM table
    HAVING distance < $range
    ORDER BY distance ASC");

关于mysql - 查找接近距离 GPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15759518/

相关文章:

mysql - 触发器可以访问在 mysql 中触发它的查询吗

c# - 如何通过 C# 中的 Selenium 在 ChromeDriver 中伪造/模拟地理位置?

iphone - 我们可以在 iPhone 中以编程方式打开/关闭 GPS 吗?

c#发送带有特殊字符的请求会干扰字符串

java - 限制每个 IP 的 TCP 请求

mysql - 垂直分区 VS 水平分区有什么好处?

java - 在 Android 中将 Php 连接到 MySQLi

get - Binance API GET 请求多个值

java - 使用 2 个条件计算不同值

android - GPSTracker 无法在 android studio 中解析