种种原因最近(20200716)碰到了这个北京54坐标如何转换为经纬度坐标,网上找了不少内容,实在没有一个是比较贴心的,看到了使用Arcgis可以转换,但是测试之后还是果断放弃,真tm的费劲,果断放弃。

折腾两天之后发现一个非常sweet的软件,下面贴出来分享给各位,直接上菜吧:

Part--1软件名字:CoordTrans.exe

此软件简单易用,看了基本差不多,如果想进行其他的坐标转换就在相应的模块中选择尝试,中央子午线的设置要参考自己坐标转换点的一个比较接近的经度,软件到此位置。

在使用的时候我碰到了一个问题就是,此软件在批量读取坐标点的时候遇到了问题,没有解决。

Part-2: 批量转换Matlab程序

function BL_to_xy()
%北京54转经纬度坐标
format long
a=6378245;%长半轴
f = 0.00335232986925914;% 扁率
L0 = 81;%中央子午线经度
data = xlsread('修改为自己的文件位置');%读取需要转换的原始数据
[row,col] = size(data);
new_data = zeros(row,5);
new_data(:,3:5) = data(:,1:3);
for i = 1:rowLat = data(i,2);Lon = data(i,1);PRO = GKZS(Lat,Lon,L0,a,f);new_data(i,1:2) = PRO;
end
xlswrite('修改为自己的文件位置',new_data);%转换后的结果保存
end%% Sub function 此处的子程序参考网上的分享,没有标注出来源,
%各位看到此子程序的来源可以给提供一下,谢谢!!
function PRO = GKZS(Lat,Lon,L0,a,f)
% Lat: Latitude(rad)
% Lon: longitude(rad)
% REF//程鹏飞,成英燕,文汉江,等.2000国家大地坐标系实用宝典[M].
%    //北京:测绘出版社,2008:144-148.
%L0是中央子午线,根据不同区块自己设定
Lat = Lat*pi/180;
Lon = Lon*pi/180;
MedLon = L0*pi/180; %中央子午线经度
Eth.R0 = a;%长半轴
Eth.f = f; % 扁率
Eth.e12 = 2*Eth.f - Eth.f*Eth.f; % 第一偏心率额e^2
Eth.e22 = Eth.e12/((1 - Eth.f)*(1 - Eth.f));% 第二偏心率额e'^2
%% 高斯投影正算公式
RN = Eth.R0/sqrt(1 - Eth.e12*sin(Lat)*sin(Lat));
Lon = Lon - MedLon;
Lon2 = Lon*Lon;
Lon4 = Lon2*Lon2;
tnLat = tan(Lat);
tn2Lat = tnLat*tnLat;
tn4Lat = tn2Lat*tn2Lat;
csLat = cos(Lat);
cs2Lat = csLat*csLat;
cs4Lat = cs2Lat*cs2Lat;
Eta2 = Eth.e22*cs2Lat;
NTBLP = RN*tnLat*cs2Lat*Lon2;
coe1 = (5 - tn2Lat + 9*Eta2 + 4*Eta2*Eta2)*cs2Lat*Lon2/24;
coe2 = (61 - 58*tn2Lat + tn4Lat)*cs4Lat*Lon4/720;
x = Merdian(Eth,Lat) + NTBLP*(0.5 + coe1 + coe2);
NBLP = RN*csLat*Lon;
coe3 = (1 - tn2Lat + Eta2)*cs2Lat*Lon2/6;
coe4 = (5 - 18*tn2Lat + tn4Lat + 14*Eta2 - 58*tn2Lat*Eta2)*cs4Lat*Lon4/120;
y = NBLP*(1 + coe3 + coe4) + 500000;%此处有修改,后续在笔记中加以体现
%
PRO=[x y];
end
%% sub function
function X0 = Merdian(Eth,Lat)
% REF//过家春.子午线弧长公式的简化及其泰勒级数解释[J].测绘学报,2014,43(2):125-130.
S0 = Eth.R0*(1 - Eth.e12);
e2 = Eth.e12;
e4 = e2*e2;
e6 = e4*e2;
e8 = e6*e2;
e10 = e8*e2;
e12 = e10*e2;
A1 = 1 + 3*e2/4 + 45*e4/64 + 175*e6/256 + 11025*e8/16384 + 43659*e10/65536 + 693693*e12/1048576;
B1 = 3*e2/8 + 15*e4/32 + 525*e6/1024 + 2205*e8/4096 + 72765*e10/131072 + 297297*e12/524288;
C1 = 15*e4/256 + 105*e6/1024 + 2205*e8/16384 + 10395*e10/65536 + 1486485*e12/8388608;
D1 = 35*e6/3072 + 105*e8/4096 + 10395*e10/262144 + 55055*e12/1048576;
E1 = 315*e8/131072 + 3465*e10/524288 + 99099*e12/8388608;
F1 = 693*e10/1310720 + 9009*e12/5242880;
G1 = 1001*e12/8388608;
X0 = S0*(A1*Lat - B1*sin(2*Lat) + C1*sin(4*Lat) - D1*sin(6*Lat) +...E1*sin(8*Lat) - F1*sin(10*Lat) + G1*sin(12*Lat));
end
%% Writed by themingyi 20200715

如有任何问题欢迎评论互动!

北京1954坐标转为经纬度坐标相关推荐

  1. 一种近似方法将场地坐标转为像素坐标

    一种近似方法将场地坐标转为像素坐标 先上代码: for (int i = 0;i < WIDTH;i++){for (int j = 0;j < HEIGHT;j++){nNewi = i ...

  2. 高德地图轨迹回放、点的弹跳效果、浏览器环境监测、设置地图的主题样式、GPS坐标转为高德坐标、地图加载提示、地图DOM事件、修改图层等API接口

    1.轨迹回放 https://lbs.amap.com/api/javascript-api/example/marker/replaying-historical-running-data 2.点的 ...

  3. Matlab快速将影像的二维坐标转换为经纬度坐标

    一般使用 [lat, lon] = pix2latlon(R,row,col) 逐个将影像的二维坐标转换为经纬度坐标,但这样用到双重循环,运行较慢,代码如下: [A, RA] = readgeoras ...

  4. [小o地图-数据] - 地址文字转为经纬度坐标(地理编码)

    小O地图提供将地址转换为经纬度坐标的功能,例如:将 "北京市西城区金融街" 转换为 "116.359861, 39.917225" 经纬度坐标,并将地址分解为, ...

  5. 西安80转换成北京独立计算机,WGS84经纬度坐标转换为西安80高斯投影坐标.

    dsfqfzneiphp 通过 波段编号18和相应的中央子午线为105°,表示计算基于6度波段划分. 您要注意标题" WGS84经纬度坐标转换为西安80高斯投影坐标",也就是说,在 ...

  6. 海外地址 | 使用鲸鱼地图将海外英文地址转为经纬度坐标

    前言 鲸鱼地图是小O地图的姊妹版,提供海外地理数据挖掘.处理.分析.可视化功能.具有易用.高效.稳定的特点,能够满足地图数据处理及应用需求,也可提供个性化定制开发服务. 海外数据功能列表 地址转经纬度 ...

  7. python dataset[trans_科学网—Python GDAL 图像坐标,投影坐标,经纬度坐标 三者映射及运行错误解决 - 吴妍潼的博文...

    题记: 写该博客是因为自己经常遇到这个问题,而我发现网络上关于这方面浏览量高的一些代码竟然都有误,每次照搬都被虐得很惨.有一些同志在某些博客下方留言说代码有问题,而博主没有回应,也没有更改错误.为了自 ...

  8. python运行报错无法映射_科学网-Python GDAL 图像坐标,投影坐标,经纬度坐标 三者映射及运行错误解决-吴妍潼的博文...

    题记: 写该博客是因为自己经常遇到这个问题,而我发现网络上关于这方面浏览量高的一些代码竟然都有误,每次照搬都被虐得很惨.有一些同志在某些博客下方留言说代码有问题,而博主没有回应,也没有更改错误.为了自 ...

  9. 经纬度转高斯坐标 java_经纬度坐标与高斯坐标的转换代码

    /* 功能说明: 将绝对高斯坐标(y,x)转换成绝对的地理坐标(wd,jd).        */ // double y;     输入参数: 高斯坐标的横坐标,以米为单位 // double x; ...

  10. gcj02坐标转为wgs84坐标

    //定义一些常量 const PI = 3.1415926535897932384626 const a = 6378245.0 // 长半轴 const ee = 0.006693421622965 ...

最新文章

  1. SAP WM 2-Step Picking流程里创建的Group的分析
  2. js模版引擎handlebars.js实用教程——with-终极this应用
  3. 孕妇可以在计算机教室待吗,电脑对孕妇有辐射吗?孕妇使用电脑的注意事项
  4. Unknown column 'user_uid' in 'field list' sql错误解决过程
  5. linux系统输入法怎么安装教程视频教程,Linux怎么安装中文输入法
  6. 新款iPhone SE是改良版iPhone 8无误了,部分零件可互换
  7. FPGA实现按键消抖及短时间按键和长时间按键不同动作
  8. 计算机网络实验:常用网络命令的使用(ping、ipconfig、netstat、tracert、arp)
  9. 2微信小程序的UI设计
  10. C++:什么是STL?
  11. numpy的array_equal函数
  12. 视觉目标检测-05:使用目标区域的提取方法(手机iVcam与电脑iVcam之间相机的链接)
  13. c语言 如何选择 大小端,c语言大小端的问题
  14. java食堂外卖系统,校园食堂外卖订餐系统
  15. SAP 荣获「中国好公司」头衔
  16. 普兰特印花设备A3UV 手机壳 金属裁片 塑料免费打样数码打印机
  17. 2022-2028年中国眼镜制造行业市场竞争策略及未来发展潜力报告
  18. opencv:centos7中安装opencv4.3.0环境
  19. [Android Studio]申请摄像头权限失败
  20. KVM学习(四)windows server半虚拟化驱动virtio

热门文章

  1. 软考下午c语言真题,软考程序员下午试题分析和备考建议
  2. 常见单片机芯片分析简介
  3. 关于GetTickCount函数的用法
  4. 时序图数仓AbutionGraph场景应用
  5. Cobalt Strike神器使用教程
  6. 【转自知乎】送给前端的你,推荐几篇前端汇总文章
  7. 就业管理系统【软件建模与分析UML课设】
  8. ”数独“android小游戏
  9. 注册表修改系统显示时间
  10. Java语言的发展史