经纬度数据怎么转化为平面坐标的python代码
时间: 2024-10-16 21:12:09 浏览: 31
在Python中,我们可以使用地理坐标转换库如`geopy`或`pyproj`将经纬度数据转换为平面直角坐标,通常用于地图投影。这里是一个简单的例子,假设我们已经安装了`geopy`:
```python
from geopy.geocoders import Nominatim
def convert_lat_lng_to_cartesian(latitude, longitude):
# 使用geopy的Nominatim获取纬度和经度对应的EPSG:4326坐标系统(WGS84)
geolocator = Nominatim(user_agent="geoapiExercises")
location = geolocator.reverse(f"{latitude}, {longitude}")
# 获取坐标元组 (longitude, latitude)
coord = location.raw["geocode"]["coordinates"]
# 使用Mercator projection将经纬度转换为平面上的x, y坐标(注意这是单点转换)
# Mercator Projection公式:x = R * λ, y = R * ln(tan(π/4 + φ/2))
R = 6378137 # Earth's radius in meters
x, y = coord[0], R * math.log(math.tan(math.pi / 4 + coord[1] * math.pi / 180 / 2))
return x, y
# 示例经纬度
latitude = 39.9042
longitude = -75.1611
cartesian_coords = convert_lat_lng_to_cartesian(latitude, longitude)
print("转换后的平面坐标:", cartesian_coords)
阅读全文