php - 40公里半径使用经纬度

标签 php mysql google-maps

<分区>

Possible Duplicate:
Radius of multiple latitude/longitude points
distance calculations in mysql queries
select within 20 kilometers based on latitude/longitude

我有一个 MyISAM 表,其中存储了数据。数据包括谷歌地图的纬度和经度。我想要实现的是选择样本经纬度40公里半径范围内的所有对象。

谢谢!

最佳答案

我使用此查询来获取 $lat/$lng 周围的 $radius 内的所有点:

SELECT
    *,
    ( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radians({$lat}) ) * sin( radians( `lat` ) ) ) ) AS distance
FROM `positions`
HAVING distance <= {$radius}
ORDER BY distance ASC

6371 是地球半径 im km。而且我还没有发明它: <罢工> http://code.google.com/intl/en/apis/maps/articles/phpsqlsearch.html https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql (编辑:网址已更改)

关于php - 40公里半径使用经纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850336/

相关文章:

php - "replace"过滤器需要一个数组或 "Traversable"作为替换值,得到 "string"

mysql - 在 ejabberd 中存储消息

objective-c - 谷歌地图 - 在路上的大概位置

php - 午餐时间报销申请的建议数据库架构

php - 为什么我的 pdo 变量始终未定义?

javascript - 引用错误 : _ is not defined while using angular-google-maps

ruby-on-rails - 有什么好的 googlemaps 插件用于 rails 吗?

php - *.php 文件上的 Adob​​e Air Javascript

php - 在 curl php 中获取最后一个重定向的 url

javascript - 如何使用带有 id 参数的 js 函数交换 html 按钮内的文本?