gpt4 book ai didi

mysql - lat long 范围内的 SQL lat longs

转载 作者:行者123 更新时间:2023-11-28 23:14:42 35 4
gpt4 key购买 nike

我正在使用 MySQL 5.5.52。缩写:Lat = 纬度,Long = 经度,NE = 东北,SW = 西南。

我有两个 SQL 表:

第一个表包含“区域”。每个区域由 ID、NE Lat、NE Long、SW Lat、SW Long 组成。

第二个表包含“点”。每个Point由ID、Lat、Long组成。

我需要一个 SQL 语句,给定区域 ID 列表将返回这些区域中的点。如果一个点的 Lat-Long 位于该区域的右上角和左下角由该区域的 NE Lat-Long 和 SW Lat-Long 定义的正方形内,则该点被定义为在一个 Area 中。

注意:我可以将区域更改为定义为具有半径的单个经纬度,其中点位于“圆圈”内。但理想情况下,我不想这样做,除非有更高效的 SQL 语句来解决这种问题。

最佳答案

根据点位置落在区域范围内的条件连接两个表。

Select areaTable.*, pointsTable.*
From pointsTable
Join areaTable
On pointTable.lat between areaTable.SWLat and areaTable.NELat
and
pointTable.long between areaTable.SWLong and areaTable.NELong

给你每个区域和对应的点。

如果需要,使用特定区域的 where 子句进一步参数化。

Where areaTable.NELat=@areaNELat
and areaTable.NELong=@areaNELong
and areaTable.SWLat=@areaSWLat
and areaTable.SWLong=@areaSWLong

只需用您喜欢的区域经纬度值替换@s。

关于mysql - lat long 范围内的 SQL lat longs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393250/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com