预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

矢量地图坐标转换方法及工具 在MapInfo中,通常采用大地坐标的北京54标准。与GPS采用的WGS84在同一点上相差经纬度相差有10-20分(仅仅从地图在MAPINFO的显示数据来说没涉及到NumericCoordSys的坐标系统)。虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。实际工作中一般都根据工作区内已知的北京54坐标控制点计算转换参数,如果工作区内有足够多的已知北京54与WGS84坐标控制点,可直接计算坐标转换的7参数或3参数;当工作区内有3个已知北京54与WGS84坐标控制点时,可用下式计算WGS84到北京54坐标的转换参数(A、B、C、D、E、F):x54=AX84+BY84+C,y54=DX84+EY84+F,多余一点用作检验;在只有一个已知控制点的情况下(往往如此),用已知点的北京54与WGS84坐标之差作为平移参数,当工作区范围不大时精度也足够了。 一般使用3参数,将3个控制点的数据代入方程,求解出参数,可以利用Excel求解,如图 在黄色区域分别输入3个点的不同坐标系的数据,通过消元法,在红色区域会得出a、b、c、d、e、f参数的值,可以在下图的黄色区域输入数据进行验证,检验误差 为了实现地图数据的转换,我用MapBasic编写了一个程序。该程序在MapInfo程序界面中添加了一个转换的菜单,主要包括2部分:一是参数设置,用于设置并保存用于转换的3参数;二是执行转换,选择需要进行转换的表并转换。如图: 参数设置内容如图: Default按钮可以将3参数恢复到缺省值,点击OK按钮会将输入的参数设置进系统,并保存为config.ini文件。 转换内容如图: 可以选择需要转换的表,如果点击全选则自动全部选中所有表,再次点击则取消全部选中。 该程序具有记录操作的功能,将主要的操作记录到log文件中。 附件:源程序 '*****坐标转换 '*****Createdby孙国文,江苏电信徐州分公司无线中心 '*****Jan28,2005 include"mapbasic.def" declaresubmain declaresubRCV 'declaresubCB 'declaresubHB declaresubeditlayer declaresubminmap declaresubrestoremap declaresubchecktab declaresubobjmove 'declaresubdeltab declaresubYesButton 'declaresubNoButton declaresubEndPro declaresubAbout declaresubprovision declaresubobjmove_main declaresubgetconffromfile declaresubsetdefaultconfig declareSubgetres declareSubchangestatemulti declareSubchangestatecheck dimr,v,i,j,h,poly,pnode,cntasinteger dimzasSmallint dimnumtab,tabtemp,tabnum,numlayer,objoff,numwin,mx,my,arccntasinteger dimptcnt,plcnt,lcnt,regcnt,filecnt,rctcnt,rrtcnt,elpcnt,txcnt,ewindowasinteger dimsobjasobject dimnx,ny,xoff,yoff,go1,go2,go3,go4,tsp,ta,tlx,tly,gx1,gy1,gx2,gy2asfloat dimtabstr(1)asstring dimtabname,runstr,ts,elayer,ctasstring dimtabobjasalias dimlayerfound,cancelaslogical dimfilenum(1)asinteger dimtfasfont dimtj,tarassmallint dimtjsasstring '存储参数 dimda,db,dc,dd,de,dfasfloat dima,b,c,d,e,fasfloat '配置文件 dimconfigfile,logfileasstring '需要转换的表数 'dimnum2convasinteger submain confi