python经纬度转换xy坐标公式_python 经纬度和平面坐标相互转换利用米勒坐标系

xy_coordinate = []  # 转换后的XY坐标集

def millerToXY (lon, lat):

"""

经纬度转换为平面坐标系中的x,y 利用米勒坐标系

:param lon: 经度

:param lat: 维度

:return:

"""

L = 6381372*math.pi*2

W = L

H = L/2

mill = 2.3

x = lon*math.pi/180

y = lat*math.pi/180

y = 1.25*math.log(math.tan(0.25*math.pi+0.4*y))

x = (W/2)+(W/(2*math.pi))*x

y = (H/2)-(H/(2*mill))*y

xy_coordinate.append((int(round(x)),int(round(y))))

return xy_coordinate

lonlat_coordinate = []  # 经纬度坐标集

def millerToLonLat(x,y):

"""

将平面坐标系中的x,y转换为经纬度,利用米勒坐标系

:param x: x轴

:param y: y轴

:return:

"""

L = 6381372 * math.pi*2

W = L

H = L/2

mill = 2.3

lat = ((H/2-y)*2*mill)/(1.25*H)

lat = ((math.atan(math.exp(lat))-0.25*math.pi)*180)/(0.4*math.pi)

lon = (x-W/2)*360/W

# TODO 最终需要确认经纬度保留小数点后几位

lonlat_coordinate.append((round(lon,7),round(lat,7)))

return lonlat_coordinate

你可能感兴趣的:(python经纬度转换xy坐标公式_python 经纬度和平面坐标相互转换利用米勒坐标系)