您现在的位置是:首页 >科技 > 2025-03-27 14:24:49 来源:

📍🌍 Python经纬度转XY坐标公式 + 距离与角度计算 📏🎯

导读 在地理信息系统(GIS)开发中,将经纬度转换为平面XY坐标是一个常见的需求。今天分享一个简单易懂的方法,帮助你快速实现这一功能!💡首先...

在地理信息系统(GIS)开发中,将经纬度转换为平面XY坐标是一个常见的需求。今天分享一个简单易懂的方法,帮助你快速实现这一功能!💡

首先,我们需要知道地球表面的经纬度可以通过投影方式转化为二维平面坐标(XY)。常用的转换公式是基于墨卡托投影(Mercator Projection)。以下是核心代码片段👇:

```python

import math

def latlng_to_xy(lat, lng, origin_lat=0, origin_lng=0):

x = math.radians(lng - origin_lng) 6378137

y = math.log(math.tan((math.pi / 4) + math.radians(lat) / 2)) 6378137

return x, y

```

此外,如果你需要进一步计算两点间的距离和夹角,可以使用Haversine公式!📍📍

```python

def distance_angle(lat1, lng1, lat2, lng2):

R = 6371e3 地球半径

phi1, phi2 = math.radians(lat1), math.radians(lat2)

delta_phi = math.radians(lat2 - lat1)

delta_lambda = math.radians(lng2 - lng1)

a = math.sin(delta_phi / 2)2 + math.cos(phi1) math.cos(phi2) math.sin(delta_lambda / 2)2

c = 2 math.atan2(math.sqrt(a), math.sqrt(1 - a))

distance = R c

bearing = math.atan2(math.sin(delta_lambda) math.cos(phi2),

math.cos(phi1) math.sin(phi2) -

math.sin(phi1) math.cos(phi2) math.cos(delta_lambda))

bearing = (math.degrees(bearing) + 360) % 360

return distance, bearing

```

利用这些工具,你可以轻松处理地图数据啦!🎉✨