根据经纬度和半径计算经纬度范围 (转)
时间: 2023-11-02 12:06:21 浏览: 46
计算经纬度范围可以通过以下公式来实现:
```python
import math
def get_bounding_box(latitude, longitude, radius):
R = 6371 # 地球半径,单位千米
d = radius / R # 角距离
lat1 = math.radians(latitude)
lon1 = math.radians(longitude)
# 计算经纬度范围
lat2 = math.asin(math.sin(lat1) * math.cos(d) + math.cos(lat1) * math.sin(d) * math.cos(0))
lon2 = lon1 + math.atan2(math.sin(0) * math.sin(d) * math.cos(lat1), math.cos(d) - math.sin(lat1) * math.sin(lat2))
# 转换为角度
lat2 = math.degrees(lat2)
lon2 = math.degrees(lon2)
return (lat1, lon1, lat2, lon2)
```
其中 `latitude` 和 `longitude` 分别为给定的纬度和经度,`radius` 为半径(单位千米),函数返回一个元组,包含了经纬度范围的四个角点,即 `(lat1, lon1, lat2, lon2)`。其中 `(lat1, lon1)` 为中心点,`(lat2, lon2)` 为经纬度范围的另一个角点。注意返回的经纬度都是角度制。
需要注意的是,该公式计算出来的范围为一个矩形,而非圆形。如果需要获取圆形范围,可以在计算出来的矩形内筛选出符合要求的点。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)