# -*- coding: utf-8 -*-
"""
Created on Wed Jan 24 17:00:23 2018
@author: liuj
"""
import math
import json
from urllib.request import urlopen
from pyproj import Proj
p = Proj(datum= 'NAD83',proj='utm',zone=49,ellps='GRS80',units='m')
xmin,ymin=p(113.192658,23.047543) #左下角
xmax,ymax=p(113.403306,23.170221) #右上角
x_pi = 3.14159265358979324 * 3000.0 / 180.0
pi = 3.1415926535897932384626 # π
a = 6378245.0 # 长半轴
ee = 0.00669342162296594323 # 扁率
def UTMtoGeog(x,y):#平面坐标转WGS84坐标系
k0=0.9996
a=6378137
f=1/298.257222101
b = a*(1-f)
e = math.sqrt(1 - (b/a)*(b/a))
esq = (1 - (b/a)*(b/a))
e0sq = e*e/(1-e*e)
zone=49
zcm = 3 + 6*(zone-1) - 180
e1 = (1 - math.sqrt(1 - e*e))/(1 + math.sqrt(1 - e*e))
M0 = 0
M = M0 + y/k0
mu = M/(a*(1 - esq*(1/4 + esq*(3/64 + 5*esq/256))))
phi1 = mu + e1*(3/2 - 27*e1*e1/32)*math.sin(2*mu) + e1*e1*(21/16 -55*e1*e1/32)*math.sin(4*mu)
phi1 = phi1 + e1*e1*e1*(math.sin(6*mu)*151/96 + e1*math.sin(8*mu)*1097/512)
C1 = e0sq*math.pow(math.cos(phi1),2)
T1 = math.pow(math.tan(phi1),2)
N1 = a/math.sqrt(1-math.pow(e*math.sin(phi1),2))
R1 = N1*(1-e*e)/(1-math.pow(e*math.sin(phi1),2))
D = (x-500000)/(N1*k0)
phi =
常用坐标系转换的工具类--Python版本
最新推荐文章于 2024-10-10 14:57:59 发布
本文介绍了一个Python实现的坐标转换工具类,涵盖了不同坐标系之间的转换,包括常见的地理坐标、投影坐标等。该工具类能够帮助开发者高效地处理各种坐标转换问题。
摘要由CSDN通过智能技术生成