大地坐标如何转换为经纬度

大地坐标如何转换为经纬度,第1张

大地坐标-----→经纬度(地理坐标)

1、输入大地坐标数据,格式为 Y空格X,输入到文本就行如下,原始的大地坐标由一8位的Y和一个7位的X组成

这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为,Y,6位,X,7位

保存这个TXT的文本文件

2,打开MAPGIS,启动坐标和颤投影变形程序

接下来选择 投影转换>>>>用户文件投影转换察耐

点打开文件,打开刚才的大地坐标的文本文件,

设置输入数据的格式,点击 用户投影参数,并完成设置。

这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米

好了以为设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成以下设置

这个参数设置里第一行有一个很重要的参数,椭球参数这一项,很多博友没有到正确的结果就是因为该项参数没有设定,中国地图一般只有两种,一种是北京54,还有就是80黄海

正确设定好这个就能得到正确的结果啦,笔者用的是80黄海的参考椭球,不过中国大部分是用54坐标系的!!!

我们输出的经纬度的单位应该是DDDMMMSS。SS注意

点写到文件,保存就大功告成了,注意保存的文件要写上.TXT的后缀

下面是计算出的结果文件

XP为经度,1234234。357就是123度42分34。唤没败357秒,

YP为纬度,403950。225就是40度39分50。255秒(纬度最多90,所以没有三位数)

1、 将图层从奥维中导出成shp文件。

2、 打开arcgis-arcmap。

3、地理处理弯桥-arctoolbox-数据管理工具-投影和变换-要素-投影。

4、WGS84坐标转换为地理坐标系-world-ITRF2000。

扩展资料

5、打开ArcCatalog,找到上一步中已经成ITRF2000坐标系的shp文件,单击右键-属性,将图层坐标重新定义成GCGS2000地理坐标系。

6、重新打开arcmap,重新打开已经重新胡闹绝定义坐标系的`shp文件,按照地理处理-arctoolbox-数据管理工具-投影和变换-要素-投影。

7、带号计算方法,如果前面加带号,采用6度带或三度带带号,均为三度带带号。

8、计算

上一步将GCGS2000地理坐标系转换为GCGS2000投影坐标系后,打开上一步转换成投影坐标系后的shp文件,单击裤姿图层,右键属性,常规里,将十进制单位改成米。

再右键单击shp图层,打开属性表,添加字段,添加x,y坐标字段。

恩......

后面的文件读写流的关闭出了问题,把

outp.close()

outq.close()

放到循环的外面。按照你原来的程序,当第一次循环结束时,(即经度等于65°时),写入文件就结束了。改完后应该是这样的:

#include <iostream>

#include <cmath>

#include <iomanip>

#include <fstream>

using namespace std

void main()

{

ofstream outq("地理坐标转换成球面坐标.txt")

ofstream outp("地理坐标转换成平面坐标.txt")

const double Pai=3.141592653,R=63.710

const double w0=30.0/肢橘180*Pai,j0=105.0/180*Pai

double z,a

double j,w

double p,x,y

for (j=65.0/180*Paij<=145.0/180*Paij+=5.0/180.0*Pai)

{

cout<<" 经度λ="<<j*180/Pai<<"°时:"<<endl

outp<<" 经度λ="<<j*180/Pai<<"°时:"<<endl

outq<<" 经度λ="<<j*180/Pai<<"°时:"<<endl

for(w=(0.0/180.0)*Paiw<=60.0/180.0*Paiw+=5.0/180.0*Pai)

{

z=acos(sin(w)*sin(w0)+cos(w)*cos(w0)*cos(j-j0))

a=asin((cos(w)*sin(j-j0))/(sin(z)))

outq<<"纬度φ="<<w*180/Pai<<"°: "<<setw(10)<<z<<" "<<setw(10)<<a<<" "<<endl

p=R*z

x=p*cos(a)

y=p*sin(a)

cout<<"纬度φ="<<w*180/Pai<<"°: "<<setw(10)<<x<<" "<<setw(10)<<历搜团y<<" "<<endl

outp<<"纬度φ="<<w*180/Pai<<"°: "<<setw(10)<<x<<" "<<setw(10)<<y<<"漏斗 "<<endl

}

cout<<endl

outp<<endl

outq<<endl

}

outp.close()

outq.close()

}

你复制粘贴试试....


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12558360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存