mysql - 在 MySQL 上查找交叉点位置

标签 mysql latitude-longitude

我有一个具有这种结构的表

(location_name, address, latitude, longitude)

首先,用户输入两个位置名称和两个半径。

其次,数据库查找输入位置的纬度和经度。
(以下称为“entered_lat”和“entered_long”。)

第三,数据库查找并返回位于用户输入的两个半径相交处的位置。

当用户只输入一个位置和半径时,我使用了以下 SQL 语句。

SELECT location_name, latitude, longitude, 
(6371*acos(cos(radians('entered_lat'))*cos(radians(latitude))*cos(radians(longitude)-
radians('entered_long'))+sin(radians('entered_lat'))*sin(radians(latitude))))
AS distance FROM location_table HAVING distance < 'entered_radius';

因此,我尝试使用以下 SQL 语句来查找两个半径的交点。

SELECT location_name, latitude, longitude, 
(6371*acos(cos(radians('entered_lat1'))*cos(radians(latitude))*cos(radians(longitude)-
radians('entered_long1'))+sin(radians('entered_lat1'))*sin(radians(latitude))))
AS distance FROM location_table HAVING distance < 'entered_radius1'
 AND 
(6371*acos(cos(radians('entered_lat2'))*cos(radians(latitude))*cos(radians(longitude)-
radians('entered_long2'))+sin(radians('entered_lat2'))*sin(radians(latitude))))
AS distance FROM location_table HAVING distance < 'entered_radius2';

但是该 SQL 语句有语法错误。

如果数据库返回位于用户输入的两个半径相交处的位置,我该怎么办?

最佳答案

尝试在 SQL 语句中将 l_name 替换为 location_name。

关于mysql - 在 MySQL 上查找交叉点位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42239814/

相关文章:

python - 分组/分桶经纬度

mysql - Jhipster 消耗大量资源

Python mysqlcursor.execute() 有问题吗?

mysql - Laravel 迁移值从 null 到 string

java - 使用纬度和经度获取时区

mysql - 距经度 x 距离的最大纬度 - 距纬度 x 距离的最大经度 - SQL

php - $_FILES 未设置

mysql - 通过选择具有相同结构的另一个表来更新一个表

android - 如何将经度和纬度(GPS坐标)发送到服务器

java - 将数据存储在 Singleton 类中