阅读:3014回复:11
[原创]问题一箩筐,总有一个你能回答,超经典!!开发详细过程!
<P>本人新手,在开发过程碰到了一箩筐的问题,应该是新手碰到的经典问题,不一定每个人都会碰到,因此,总有一个你能回答,也盼望版主关注!
要做一个gps导航系统,从开发过程开始: 手头上有若干幅地图,均为:坐标系统:北京1954,高程系统:黄海高程1956,文件格式*.dwg。 1:用什么办法把这几幅图接起来?我用autocad,不知道有没有问题?</P><img src="images/post/smile/dvbbs/em12.gif" /> |
|
1楼#
发布于:2004-10-20 11:00
<P>2:基于以下的描述:我国参照前苏联从1953年起采用克拉索夫斯基(krassovsky)椭球体建立了我国的北京54坐标系,虽然现有gis平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的pulkovo 1942基准面(mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等gis系统,则需要自定义基准面。(我当然想自定义,目前不知道怎么定义,就用高斯-克吕格pulkovo 1942继续往下)
gis系统中的基准面通过当地基准面向wgs1984的转换7参数来定义,我国的基本比例尺地形图(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系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。我的图是1:1万,理应用兰勃特投影,可是前面的分析使用高斯-克吕格投影呀?怎么办?</P> |
|
2楼#
发布于:2004-10-20 11:00
<P>3:不管如何,打开mapinfo,选择工具,通用转换器,选择dwg文件,投影类别我选择了Gauss-Kruger(pulkovo 1942),可是下面还有GK Zone 1到GK Zone 32,该选哪一个?又糊涂了,暂时不管,先选第一个,转换为TAB文件</P>
|
|
3楼#
发布于:2004-10-20 11:01
<P>4:在mapinfo中不知道如何自定义基准面,在MapX中坐标系定义由基准面、投影两部分参数组成,是否搞好Datum.Set和CoordSys.Set就ok了?谁能说说具体步骤?</P>
|
|
4楼#
发布于:2004-10-20 11:02
<P>5:MapX中基准面定义方法如下:
Datum.Set(Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust, PrimeMeridian) 其中参数: Ellipsoid为基准面采用的椭球体; ShiftX, ShiftY, ShiftZ为平移参数; RotateX, RotateY, RotateZ为旋转参数; ScaleAdjust为比例校正因子,以百万分之一计; PrimeMeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。 其中Ellipsoid为基准面采用的椭球体,mapx中有这些(我用vc): miNonEarth = 0, miLongLat = 1, miCylindricalEqualArea = 2, miLambertConformalConic = 3, miLambertAzimuthalEqualArea = 4, miAzimuthalEquidistant = 5, miEquidistantConic = 6, miHotineObliqueMercator = 7, miTransverseMercator = 8, miAlbersEqualAreaConic = 9, miMercator = 10, miMillerCylindrical = 11, miRobinson = 12, miMollweide = 13, miEckertIV = 14, miEckertVI = 15, miSinusoidal = 16, miGall = 17, miNewZealandMapGrid = 18, miLambertConformalConicBelgium = 19, miStereographic = 20, miTransverseMercatorDenmarkS34J = 21, miTransverseMercatorDenmarkS34S = 22, miTransverseMercatorDenmarkS45B = 23, miTransverseMercatorFinland = 24, miSwissObliqueMercator = 25, miMercatorStdParallel = 26, miPolyconic = 27, miAzimuthalEquidistantOblique = 28, miLambertAzimuthalEqualAreaOblique = 29, miCassiniSoldner = 30 找不到我要的克拉索夫斯基(Krassovsky)椭球体,怎么办?不管,先选26,继续往下做,其它参数为WGS84向北京54转换的参数,对吧?怎么转换?谁能给出vc的代码就好了</P> |
|
5楼#
发布于:2004-10-20 11:04
<P>6:在MapX中坐标系定义由基准面、投影两部分参数组成,方法如下:
CoordSys.Set(Type, [Datum], [Units], [OriginLongitude], [OriginLatitude], [StandardParallelOne], [StandardParallelTwo], [Azimuth], [ScaleFactor], [FalseEasting], [FalseNorthing], [Range], [Bounds], [AffineTransform]) 其中参数:Type表示投影类型,Type为1时地图坐标以经纬度表示,它是必选参数,它后面的参数都为可选参数; Datum为大地基准面对象,如果采用非地球坐标(NonEarth)无需定义该参数; Units为坐标单位,如Units为7表示以米为单位; OriginLongitude、OriginLatitude分别为原点经度和纬度; StandardParallelOne、StandardParallelTwo为第一、第二标准纬线; Azimuth为方位角,斜轴投影需要定义该参数; ScaleFactor为比例系数; FalseEasting, FalseNorthing为东伪偏移、北伪偏移值; Range为地图可见纬度范围; Bounds为地图坐标范围,是一矩形对象,非地球坐标(NonEarth)必须定义该参数AffineTransform为坐标系变换对象。 相应高斯-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下: 高斯-克吕格:投影代号(Type),基准面(Datum),单位(Unit), 中央经度(OriginLongitude),原点纬度(OriginLatitude), 比例系数(ScaleFactor), 东伪偏移(FalseEasting),北纬偏移(FalseNorthing) 在城市GIS系统中均采用6度或3度分带的高斯-克吕格投影,因为一般城建坐标采用的是6度或3度分带的高斯-克吕格投影坐标。高斯-克吕格投影以6度或3度分带,每一个分带构成一个独立的平面直角坐标网,投影带中央经线投影后的直线为X轴(纵轴,纬度方向),赤道投影后为Y轴(横轴,经度方向),为了防止经度方向的坐标出现负值,规定每带的中央经线西移500公里,即东伪偏移值为500公里,由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如(4231898,21655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为21500000米。 假如你的工作区位于21带,即经度在120度至126度范围,该带的中央经度为123度,采用Pulkovo 1942基准面,那么定义6度分带的高斯-克吕格投影坐标系参数为:(8,1001,7,123,0,1,21500000,0)。</P><P>问题:基准面(Datum)是否可以为我上面定义的自定义基准面?这个时候它知道了地图上任意一点的坐标了吗?我到底从哪里告诉它地图的坐标?</P> |
|
6楼#
发布于:2004-10-22 10:28
这都是很基本得问题啊,怎么就没人回答?????
|
|
7楼#
发布于:2004-10-23 09:36
版主路过都不回答??
|
|
8楼#
发布于:2005-01-14 10:46
哎,真的不容易
|
|
9楼#
发布于:2005-01-15 16:03
我自己都忘了这个帖子了,cad转换为tab应该先把dwg文件转换为dxf文件,然后在mapinfo导入
|
|
上一页
下一页