经过了结果比对计算,确保两个版本之间的计算结果是一致的
python 版本
import math
# Constants
iPI = 0.0174532925199433 # 3.1415926535898/180.0
PI = 3.1415926535898
a = 6378137.0
f = 1 / 298.257223563
ZoneWide = 6.0
e2 = 0.0066943799013
def LLtoGaussXY(longitude, latitude):
ProjNo = int(longitude / ZoneWide)
longitude0 = ProjNo * ZoneWide + ZoneWide / 2
longitude0 *= iPI
longitude *= iPI
latitude *= iPI
ee = e2 * (1.0 - e2)
N = a / math.sqrt(1.0 - e2 * math.sin(latitude) * math.sin(latitude))
T = math.tan(latitude) ** 2
C = ee * math.cos(latitude) ** 2
A = (longitude - longitude0) * math.cos(latitude)
M = a * ((1 - e2 / 4 - 3 * e2 * e2 / 64 - 5 * e2 * e2 * e2