首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中使用当前位置查找最近的位置图像?

问如何在php中使用当前位置查找最近的位置图像?
EN

Stack Overflow用户
提问于 2016-01-19 17:51:55
回答 3查看 333关注 0票数 0

我有一个数据库与当前位置的经度和纬度的商店。因此,基于我输入的当前(lat,lng)位置,我想从半径为1 km、5 km等范围内的位置获取项目列表。

EN

回答 3

Stack Overflow用户

发布于 2016-01-19 18:00:00

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

代码语言:javascript
复制
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是你想要的纬度,

开始是你想要的纬度,

69.1是英里到纬度的换算系数,

57.3大约是180/π,

5是以英里为单位的搜索半径

我通过这些距离小于5的记录来过滤这个结果。

票数 1
EN

Stack Overflow用户

发布于 2016-01-19 17:57:33

下面是几年前我用过的mysql代码:

代码语言:javascript
复制
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`
票数 0
EN

Stack Overflow用户

发布于 2016-01-19 17:59:12

阅读这个:http://www.movable-type.co.uk/scripts/latlong-db.html它告诉你怎么做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34873515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档