获取最近的纬度和经度

Posted

技术标签:

【中文标题】获取最近的纬度和经度【英文标题】:get nearest latitude and longitude 【发布时间】:2017-05-24 06:48:53 【问题描述】:

我有这种格式的纬度和经度: 15.1393658,76.92150059999994,13.0873783,77.41112120000003,14.7017498,77.59016529999997

如果我输入另一个纬度和经度,例如 lat=13.0874193,lan=77.41100640000002,他们必须给出最近的 lat lan 高于 lat lan。 我用过Haversine Formula, $connection = Yii::$app->getDb();

    $command = $connection->createCommand('
        SELECT fpro_userid, 6371 * 2 * ASIN(SQRT( POWER(SIN(('.$user_lat.' - abs('.$new_string.')) * pi()/180 / 2),2) + COS('.$user_lan.' * pi()/180 ) * COS( abs('.$new_string.') * pi()/180) * POWER(SIN(('.$user_lan.' - '.$new_string.') * pi()/180 / 2), 2) )) as distance FROM farm_profile having distance < 19.2 ORDER BY distance
    ');  

    $result = $command->queryAll();

php 中但不工作。 所以请任何人帮助解决这个问题

【问题讨论】:

请告诉我们您实际遇到的错误。 “不工作”对我们没有帮助。 【参考方案1】:

您需要将距离转换为经度和纬度,根据这些过滤以限制大致在边界框中的条目,然后进行更精确的距离过滤。这是一篇很棒的论文,解释了如何做到这一切: http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-mysql

【讨论】:

为什么? @深3015 这个explanations 。如果您曾在答案中发布 jsfiddle 链接,则会生成警报,提示在 answer 中添加相关代码。所以在这里添加 link 还要添加一些必不可少的代码。以便为将来的读者保留外部链接是不可预测的。希望你能理解

以上是关于获取最近的纬度和经度的主要内容,如果未能解决你的问题,请参考以下文章

如何从纬度/经度获取附近的位置?

使用 Google API 获取位置的纬度和经度并传递变量

从邮政编码表(MySql)获取纬度和经度并加入另一个表

更快地获取经度和纬度值

从地理编码纬度和经度获取地址

获取视口两侧的纬度和经度