gzluoming
路人甲
路人甲
  • 注册日期2006-12-19
  • 发帖数6
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:5035回复:7

如何将MAPGIS的图形数据成功转换为MAPINFO的图形数据?

楼主#
更多 发布于:2006-12-21 09:21
<P><FONT face=宋体><B></B><B>
<P>这是我在网上查出来的结果:</P></B></FONT>
<br>
<P><FONT face=宋体>在数据转换中,将</FONT>MAPGIS<FONT face=宋体>的点、线、面文件转换到</FONT>MAPINFO<FONT face=宋体>时,系统会提示</FONT>“<FONT face=宋体>您的</FONT>MAPGIS<FONT face=宋体>数据没有经过投影转换,建议转入</FONT>MAPINFO<FONT face=宋体>之前先转换成有意义的坐标系</FONT>”<FONT face=宋体>。那么,在将</FONT>MAPGIS<FONT face=宋体>数据转换到</FONT>MAPINFO<FONT face=宋体>之前;究竟需转换成什么样的投影坐标系呢?只需要满足以下两个条件就行了。
<p></FONT>
<p>
<P>(1) <FONT face=宋体>将图形坐标单位转换为米。
<p></FONT>
<p>
<P>(2) <FONT face=宋体>坐标单位转换为米后的图形,部分参数也会直接影响转换效果。
<p></FONT>
<p>
<P><FONT face=宋体>①</FONT> <FONT face=宋体>在</FONT>MAPGIS5.32<FONT face=宋体>中,其当前地图参数的地图类型不能为用户自定义类型,必须为大地直角坐标;当前地图参数的投影参数中,必须有椭球参数。否则,要通过</FONT>“<FONT face=宋体>编辑当前地图参数</FONT>”<FONT face=宋体>进行编辑并保存编辑结果。
<p></FONT>
<p>
<P>② 在MAPGIS6.0中,在当前地图参数中设置其坐标系类型时,坐标系类型必须为“投影平面直角”,椭球参数必须有效,即:必须有椭球参数</P>
<P><STRONG>但转换后坐标不对了。到欧洲去了。这是为什么呀???</STRONG></P>
[此贴子已经被作者于2006-12-21 9:23:27编辑过]
喜欢0 评分0
gzluoming
路人甲
路人甲
  • 注册日期2006-12-19
  • 发帖数6
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-12-21 11:00
<P 12pt? LINE-HEIGHT: break-all;>本转后是这样的:图层也对了,这是一面(转后的一个层):
<br>
<p>
<P 0cm? mso-para-margin-left: .0001pt; mso-para-margin-bottom: 0cm; mso-para-margin-right: .5gd; mso-para-margin-top: 0pt; 0cm 7.8pt><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path gradientshapeok="t" extrusionok="f" connecttype="rect"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></v:shapetype><v:shape><v:imagedata></v:imagedata></v:shape>
<p>
<p>
<P 0cm? mso-para-margin-left: .0001pt; mso-para-margin-bottom: 0cm; mso-para-margin-right: .5gd; mso-para-margin-top: 0pt; 0cm 7.8pt>但加载在图层中变成这样了,没有在中国内,大概在欧洲去了,这是为什么呀?
<p>
<p>
<P 0pt; 0cm 87.75pt? tab-stops:><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0pt; 0cm 87.75pt? tab-stops:>原来是这样回事:</P>
<P 0pt; 0cm 87.75pt? tab-stops:>这是网上说的:我把它提出来,请大家帮我看看了。</P>
<P 12pt? LINE-HEIGHT: break-all;>GIS中基准面的定义与转换
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>    虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。<br>    <br>    GIS系统中的基准面通过当地基准面向WGS1984的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地理信息系统标准化指南》第76至86页。假设Xg、Yg、Zg表示WGS84地心坐标系的三坐标轴,Xt、Yt、Zt表示当地坐标系的三坐标轴,那么自定义基准面的7参数分别为:三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>    MapX中基准面定义方法如下:<br>  <br>   Datum.Set(Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust, PrimeMeridian)
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>其中参数: Ellipsoid为基准面采用的椭球体;<br>           ShiftX, ShiftY, ShiftZ为平移参数;<br>           RotateX, RotateY, RotateZ为旋转参数;<br>           ScaleAdjust为比例校正因子,以百万分之一计;<br>           PrimeMeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>    美国国家测绘局(National Imagery and Mapping Agency)公布了世界大多数国家的当地基准面至WGS1984基准面的转换3参数(平移参数),可从 <a href="http://164.214.2.59/GandG/wgs84dt/dtp.html" target="_blank" ><FONT color=#000000>http://164.214.2.59/GandG/wgs84dt/dtp.html</FONT></A> 下载,其中包括有香港Hong Kong 1963基准面、台湾 Hu-Tzu-Shan 基准面的转换3参数,但是没有中国大陆的参数。
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>    实际工作中一般都根据工作区内已知的北京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坐标之差作为平移参数,当工作区范围不大时精度也足够了。<br>   <br>    从Mapinfo中国的URL(<a href="http://www.mapinfo.com.cn/download" target="_blank" ><FONT color=#000000>http://www.mapinfo.com.cn/download</FONT></A>)可下载到包含北京54、西安80坐标系定义的Mapinfow.prj文件,其中定义的北京54基准面参数为:(3,24,-123,-94,-0.02,0.25,0.13,1.1,0),西安80基准面参数为:(31,24,-123,-94,-0.02,0.25,0.13,1.1,0),文件中没有注明其参数的来源,我发现它们与Mapinfo参考手册附录G"定义自定义基准面"中的一个例子所列参数相同,因此其可*性值得怀疑,尤其从西安80与北京54采用相同的7参数来看,至少西安80的基准面定义肯定是不对的。因此,当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>3. GIS中地图投影的定义<br>     <br>    我国的基本比例尺地形图(1:5千,1:1万,1:2.5万,1:5万,1:10万,1:25万,1:50万,1:100万)中,大于等于50万的均采用高斯-克吕格投影(Gauss-Kruger),又叫横轴墨卡托投影(Transverse Mercator);小于50万的地形图采用正轴等角割园锥投影,又叫兰勃特投影(Lambert Conformal Conic);海上小于50万的地形图多用正轴等角园柱投影,又叫墨卡托投影(Mercator),我国的GIS系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。  
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>    在MapX中坐标系定义由基准面、投影两部分参数组成,方法如下:<br>  <br>    CoordSys.Set(Type, [Datum], [Units], [OriginLongitude], [OriginLatitude], <br>                  [StandardParallelOne], [StandardParallelTwo], [Azimuth], [ScaleFactor], <br>                  [FalseEasting], [FalseNorthing], [Range], [Bounds], [AffineTransform])  
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>其中参数:Type表示投影类型,Type为1时地图坐标以经纬度表示,它是必选参数,它后面的参数都为可选参数;<br>          Datum为大地基准面对象,如果采用非地球坐标(NonEarth)无需定义该参数;<br>          Units为坐标单位,如Units为7表示以米为单位;<br>          OriginLongitude、OriginLatitude分别为原点经度和纬度;<br>          StandardParallelOne、StandardParallelTwo为第一、第二标准纬线;<br>          Azimuth为方位角,斜轴投影需要定义该参数;<br>          ScaleFactor为比例系数;<br>          FalseEasting, FalseNorthing为东伪偏移、北伪偏移值;<br>          Range为地图可见纬度范围;<br>          Bounds为地图坐标范围,是一矩形对象,非地球坐标(NonEarth)必须定义该参数;      <br>          AffineTransform为坐标系变换对象。
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>     相应高斯-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下:
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>     高斯-克吕格:投影代号(Type),基准面(Datum),单位(Unit),<br>                  中央经度(OriginLongitude),原点纬度(OriginLatitude),<br>                  比例系数(ScaleFactor),<br>                  东伪偏移(FalseEasting),北纬偏移(FalseNorthing)
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>     兰勃特: 投影代号(Type),基准面(Datum),单位(Unit),<br>             中央经度(OriginLongitude),原点纬度(OriginLatitude),<br>             标准纬度1(StandardParallelOne),标准纬度2(StandardParallelTwo),<br>             东伪偏移(FalseEasting),北纬偏移(FalseNorthing)
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>     墨卡托: 投影代号(Type),基准面(Datum),单位(Unit),<br>             原点经度(OriginLongitude),原点纬度(OriginLatitude),<br>             标准纬度(StandardParallelOne)
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>     在城市GIS系统中均采用6度或3度分带的高斯-克吕格投影,因为一般城建坐标采用的是6度或3度分带的高斯-克吕格投影坐标。高斯-克吕格投影以6度或3度分带,每一个分带构成一个独立的平面直角坐标网,投影带中央经线投影后的直线为X轴(纵轴,纬度方向),赤道投影后为Y轴(横轴,经度方向),为了防止经度方向的坐标出现负值,规定每带的中央经线西移500公里,即东伪偏移值为500公里,由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如(4231898,21655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="21500000" UnitName="米">21500000米</st1:chmetcnv>。
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>    假如你的工作区位于21带,即经度在120度至126度范围,该带的中央经度为123度,采用Pulkovo 1942基准面,那么定义6度分带的高斯-克吕格投影坐标系参数为:(8,1001,7,123,0,1,21500000,0)。
<p>
<p>
<P 12pt? LINE-HEIGHT: break-all;>    那么当精度要求较高,实测数据为WGS1984坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择WGS 1984(Mapinfo中代号104)作为基准面,当只有一个已知控制点时(见第2部分),根据平移参数调整东伪偏移、北纬偏移值实现WGS84到北京54的转换,如:(8,104,7,123,0,1,21500200,-200),也可利用 AffineTransform坐标系变换对象,此时的转换系数(A、B、C、D、E、F)中A、B、D、E为0,只有X、Y方向的平移值C、F ;当有3个已知控制点时,可利用得到的转换系数(A、B、C、D、E、F)定义 AffineTransform坐标系变换对象,实现坐标系的转换,如:(8,104,7,123,0,1,21500000,0,map.AffineTransform),其中AffineTransform定义为AffineTransform.set(7,A、B、C、D、E、F)(7表示单位米);当然有足够多已知控制点时,直接求定7参数自定义基准面就行了。
<p>
<p>
<P 0cm 0pt?><B normal?>看后心得:了解一些<FONT face="Times New Roman">GIS</FONT></B><B normal?>基础,因为我不是<FONT face="Times New Roman">GIS</FONT></B><B normal?>专业毕业的,有好多东西还不太明白。请兄弟帮忙看看呀<FONT face="Times New Roman"> </FONT></B><B normal?>。
<p></B>
<p>
[此贴子已经被作者于2006-12-21 14:11:39编辑过]
举报 回复(0) 喜欢(0)     评分
gzluoming
路人甲
路人甲
  • 注册日期2006-12-19
  • 发帖数6
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-12-25 15:36
<P>为什么到现在还没有人帮我看看呀?请知道的出来说句话哦。</P>
举报 回复(0) 喜欢(0)     评分
gzluoming
路人甲
路人甲
  • 注册日期2006-12-19
  • 发帖数6
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-12-26 11:52
<P>真的没有人能帮帮我吗?</P>
举报 回复(0) 喜欢(0)     评分
zslzsl
路人甲
路人甲
  • 注册日期2004-09-07
  • 发帖数91
  • QQ254646505
  • 铜币347枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2007-01-19 00:13
首先你必须知道你的MAPGIS图是什么坐标系,然后在投影转换中将投影转换中将目的投影设置为地理坐标系,单位为度即可,如有疑问可联系13945167286,赵先生<BR><img src="images/post/smile/dvbbs/em07.gif" />
举报 回复(0) 喜欢(0)     评分
eeleo_Lion
论坛版主
论坛版主
  • 注册日期2003-11-29
  • 发帖数1798
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2008-06-02 01:54
<P>向大家推荐个转换软件,转换过程相当完美。<br><a href="http://www.map2shp.cn" target="_blank" >http://www.map2shp.cn</A><br><a href="http://blog.map2shp.cn" target="_blank" >http://blog.map2shp.cn</A><br>Map2Shp软件是一款将中地公司MapGis图形文件转换为ESRI公司Shape格式的转换程序。它提供格式转换,属性自动修正,拓扑检验等全套功能,能够有效杜绝转换过程的信息丢失与破坏,为成果图件的快速转换与发布提供了极大的方便。<br>    中地公司MapGis软件是国内优秀的GIS软件之一,在广大科技工作者特别是地学工作者中广泛应用,该软件从6.5及以上版本都已经提供了转换为Shape格式功能,但其支持不是十分完善。在转换过程中存在图元丢失,属性字段遗漏,属性乱码,无法转换等问题,严重影响地理数据的共享与应用。而Map2Shp软件则专门针对这些问题而开发,基于ESRI最新Shape文件规范,算法稳定,格式兼容,完全不存在上述问题,并且在转换过程中进行属性修正,拓扑检验,使之完全符合ARCGIS建库要求,保证转换过程万无一失,因而更适合实际数据生产过程中大规模数据转换的需要。<br>    软件特点:<br>1)完全支持MapGis点、线、面、表文件等格式。<br>2)针对MapGis图元进行拓扑检验,使之符合Shape拓扑规则,便于后续的专业应用。<br>3)在属性转换过程中,验证其取值,并做一般性修正(空值,空格,特殊符校验)。<br>4)不依赖MapGis系统,脱离软件狗的限制,可在任意计算机上运行。<br>5)可对任意数量的文件进行批量操作,操作简便,界面直观。<br>6)闪电转换,直接对MapGis文件进行操作,快速进行格式转换。<br>7)本软件不绑定任何插件,是一款纯绿色无插件的转换器。</P>
[此贴子已经被作者于2009-8-10 14:24:59编辑过]
人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
举报 回复(0) 喜欢(0)     评分
eeleo_Lion
论坛版主
论坛版主
  • 注册日期2003-11-29
  • 发帖数1798
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2009-07-08 18:11
<P>map2shp软件不错,很好用</P>
人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
举报 回复(0) 喜欢(0)     评分
eeleo_Lion
论坛版主
论坛版主
  • 注册日期2003-11-29
  • 发帖数1798
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2009-07-20 14:45
<P>map2shp能直接转投影,其他软件好像不行呀</P>
人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
举报 回复(0) 喜欢(1)     评分
游客

返回顶部