资源描述:
《矢量地图坐标转换方法及工具》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、矢量地图坐标转换方法及工具在MapInfo中,通常采用大地坐标的北京54标准。与GPS采用的WGS84在同一点上相差经纬度相差有10-20分(仅仅从地图在MAPINFO的显示数据来说没涉及到NumericCoordSys的坐标系统)。虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。实际工作中一
2、般都根据工作区内已知的北京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个控制点的数据代入方程
3、,求解出参数,可以利用Excel求解,如图在黄色区域分别输入3个点的不同坐标系的数据,通过消元法,在红色区域会得出a、b、c、d、e、f参数的值,可以在下图的黄色区域输入数据进行验证,检验误差为了实现地图数据的转换,我用MapBasic编写了一个程序。该程序在MapInfo程序界面中添加了一个转换的菜单,主要包括2部分:一是参数设置,用于设置并保存用于转换的3参数;二是执行转换,选择需要进行转换的表并转换。如图:参数设置内容如图:Default按钮可以将3参数恢复到缺省值,点击OK按钮会将输入的参数设置进系统,并保存为c
4、onfig.ini文件。转换内容如图:可以选择需要转换的表,如果点击全选则自动全部选中所有表,再次点击则取消全部选中。该程序具有记录操作的功能,将主要的操作记录到log文件中。附件:源程序'*****坐标转换'*****Createdby孙国文,江苏电信徐州分公司无线中心'*****Jan28,2005include"mapbasic.def"declaresubmaindeclaresubRCV'declaresubCB'declaresubHBdeclaresubeditlayerdeclaresubminmapde
5、claresubrestoremapdeclaresubchecktabdeclaresubobjmove'declaresubdeltabdeclaresubYesButton'declaresubNoButtondeclaresubEndProdeclaresubAboutdeclaresubprovisiondeclaresubobjmove_maindeclaresubgetconffromfiledeclaresubsetdefaultconfigdeclareSubgetresdeclareSubchange
6、statemultideclareSubchangestatecheckdimr,v,i,j,h,poly,pnode,cntasintegerdimzasSmallintdimnumtab,tabtemp,tabnum,numlayer,objoff,numwin,mx,my,arccntasintegerdimptcnt,plcnt,lcnt,regcnt,filecnt,rctcnt,rrtcnt,elpcnt,txcnt,ewindowasintegerdimsobjasobjectdimnx,ny,xoff,y
7、off,go1,go2,go3,go4,tsp,ta,tlx,tly,gx1,gy1,gx2,gy2asfloatdimtabstr(1)asstringdimtabname,runstr,ts,elayer,ctasstringdimtabobjasaliasdimlayerfound,cancelaslogicaldimfilenum(1)asintegerdimtfasfontdimtj,tarassmallintdimtjsasstring'存储参数dimda,db,dc,dd,de,dfasfloatdima,
8、b,c,d,e,fasfloat'配置文件dimconfigfile,logfileasstring'需要转换的表数'dimnum2convasintegersubmainconfigfile="config.ini"logfile="convert.log"openfilelogfileforappendas#2p