常用坐标系转换的工具类--Python版本

本文介绍了一个Python实现的坐标转换工具类,涵盖了不同坐标系之间的转换,包括常见的地理坐标、投影坐标等。该工具类能够帮助开发者高效地处理各种坐标转换问题。
摘要由CSDN通过智能技术生成
# -*- 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 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值