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()
}
你复制粘贴试试....
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)