【问题标题】:Get record within 10km by lat lng in mysql在mysql中通过lat lng获取10公里内的记录
【发布时间】:2015-03-28 04:42:47
【问题描述】:

很抱歉之前没有处理 GPS 数据。可能是新手问题

所以,我创建了这样存储 gps 数据的表:

table name : request
    id
    lat decimal(10,8)   
    lng decimal(11,8)   

最近,我想获取给定 GPS 点内 10 公里的数据。

e.g. Given GPS lat: 22, lng: 114 , found all data within 10km

我发现有一种数据类型叫做“point”。和一个 SQL 查询相关的

SELECT *
FROM request
WHERE MBRContains
(
LineString
(
Point (
@lng + 10 / ( 111.1 / COS(RADIANS(@lat))),
 @lat + 10 / 111.1
),
 Point (
@lng - 10 / ( 111.1 / COS(RADIANS(@lat))),
 @lat - 10 / 111.1
)
),
 POINTFROMTEXT('POINT(22 114)')
)

即使应该有一些结果,它也会返回 0 结果,例如。我有一些记录 lat 是 22.1 , 114.1 。如何解决?谢谢。

【问题讨论】:

标签: php mysql gps sqldatatypes


【解决方案1】:

我会参考这个问题,它已作为重复项关闭,但重复项列表可以很好地概述问题集和解决方案。

Radius of 40 kilometers using latitude and longitude

【讨论】:

    猜你喜欢
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多