Python实现常见坐标系的相互转换.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Python实现常见坐标系的相互转换

def_transformlng(self,lng,lat):

ret=300.0+lng+2.0*lat+0.1*lng*lng+\

0.1*lng*lat+0.1*math.sqrt(math.fabs(lng))

ret+=(20.0*math.sin(6.0*lng*self.pi)+20.0*

math.sin(2.0*lng*self.pi))*2.0/3.0

ret+=(20.0*math.sin(lng*self.pi)+40.0*

math.sin(lng/3.0*self.pi))*2.0/3.0

ret+=(150.0*math.sin(lng/12.0*self.pi)+300.0*

math.sin(lng/30.0*self.pi))*2.0/3.0

returnret

defWGS84_to_WebMercator(self,lng,lat):

实现WGS84向web墨卡托的转换

:paramlng:WGS84经度

:paramlat:WGS84纬度

:return:转换后的web墨卡托坐标

x=lng*342789/180

y=math.log(math.tan((90+lat)*self.pi/360))/(self.pi/180)

y=y*34789/180

returnx,y

defWebMercator_to_WGS84(self,x,y):

实现web墨卡托向WGS84的转换

:paramx:web墨卡托x坐标

:paramy:web墨卡托y坐标

:return:转换后的WGS84经纬度

lng=x/34*180

lat=y/34*180

lat=180/self.pi*(2*math.atan(math.exp(lat*self.pi/180))-self.pi/2)

returnlng,lat

if__name__==__main__:

fileName=rF:\武汉轨迹数据\交通事故(2025年)\accidentFileLocations.csv

transData=pd.read_csv(fileName,engine=python)

transData[WGS84lng]=None

transData[WGS84lat]=None

#火星坐标系转换为wgs84坐标系:GCJ02_to_WGS84(lng,lat)

handler=LngLatTransfer()

transData[[WGS84lng,WGS84lat]]=transData.apply(lambdax:handler.GCJ02_to_WGS84(x[LON],x[LAT]),axis=1,result_type=expand)

os.chdir(rF:\武汉轨迹数据\交通事故(2025年))

transData.to_csv(LoacationTransTest.csv,index=False)

直接贴个代码,具体怎么实现和怎么使用的就很清楚了,不多言。代码来源,而且真心实推GIS专业的学生多看看这个老哥的blog,大神。

上面代码的逻辑可以用这张图来表示,是不是更加清楚了。

以上就是Python实现常见坐标系的相互转换的详细内容,更多关于Python坐标系转换的资料请关注其它相关文章!

文档评论(0)

138****3012 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档