根据经纬度计算当前距离sql
时间: 2023-09-20 16:09:29 浏览: 77
在 SQL 中可以使用以下公式来计算两个经纬度坐标之间的距离:
```
distance = 6371 * acos(cos(radians(lat1)) * cos(radians(lat2)) * cos(radians(lng2) - radians(lng1)) + sin(radians(lat1)) * sin(radians(lat2)))
```
其中,lat1 和 lng1 是第一个点的纬度和经度,lat2 和 lng2 是第二个点的纬度和经度,6371 是地球的半径(单位为千米)。
以下是一个示例查询,该查询计算两个经纬度坐标之间的距离:
```
SELECT *, 6371 * acos(cos(radians(lat1)) * cos(radians(lat2)) * cos(radians(lng2) - radians(lng1)) + sin(radians(lat1)) * sin(radians(lat2))) AS distance
FROM your_table
WHERE id = 1;
```
这里的 `your_table` 是包含经纬度坐标信息的表,`id` 是要查询的记录的 ID。查询结果中包括了距离信息,单位为千米。
相关问题
根据经纬度计算当前距离
可以使用 Haversine 公式来计算两个经纬度之间的距离。Haversine 公式是一种计算球面上两点之间距离的公式,适用于计算地球上两点间的距离。
下面是一个 Python 实现 Haversine 公式的示例代码:
```python
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位为千米
dlat = math.radians(lat2 - lat1)
dlon = math.radians(lon2 - lon1)
a = math.sin(dlat / 2) * math.sin(dlat / 2) + math.cos(math.radians(lat1)) \
* math.cos(math.radians(lat2)) * math.sin(dlon / 2) * math.sin(dlon / 2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
d = R * c
return d
```
其中,`lat1` 和 `lon1` 是第一个点的纬度和经度,`lat2` 和 `lon2` 是第二个点的纬度和经度,返回值单位为千米。
例如,计算两个坐标点之间的距离:
```python
distance(31.2304, 121.4737, 39.9042, 116.4074) # 上海和北京的距离
```
输出结果为:
```
1060.5731639614362
```
表示上海和北京之间的距离为 1060.57 千米。
python根据经纬度计算距离
可以使用haversine公式来计算两个地点的距离。haversine公式是根据地球上两点的经纬度计算它们之间距离的一种公式。
以下是一个用Python实现haversine公式的例子:
```python
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球的半径,单位为公里
dLat = math.radians(lat2 - lat1)
dLon = math.radians(lon2 - lon1)
lat1 = math.radians(lat1)
lat2 = math.radians(lat2)
a = (math.sin(dLat / 2) ** 2 + math.cos(lat1) * math.cos(lat2) *
math.sin(dLon / 2) ** 2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
distance = R * c
return distance
```
函数的参数是两个地点的纬度和经度。它返回的距离单位是公里。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)