zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3014回复:11

[原创]问题一箩筐,总有一个你能回答,超经典!!开发详细过程!

楼主#
更多 发布于:2004-10-20 10:58
<P>本人新手,在开发过程碰到了一箩筐的问题,应该是新手碰到的经典问题,不一定每个人都会碰到,因此,总有一个你能回答,也盼望版主关注!
要做一个gps导航系统,从开发过程开始:
手头上有若干幅地图,均为:坐标系统:北京1954,高程系统:黄海高程1956,文件格式*.dwg。
1:用什么办法把这几幅图接起来?我用autocad,不知道有没有问题?</P><img src="images/post/smile/dvbbs/em12.gif" />
喜欢0 评分0
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-10-20 11:00
<P>3:不管如何,打开mapinfo,选择工具,通用转换器,选择dwg文件,投影类别我选择了Gauss-Kruger(pulkovo 1942),可是下面还有GK Zone 1到GK Zone 32,该选哪一个?又糊涂了,暂时不管,先选第一个,转换为TAB文件</P>
举报 回复(0) 喜欢(0)     评分
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-10-20 11:01
<P>4:在mapinfo中不知道如何自定义基准面,在MapX中坐标系定义由基准面、投影两部分参数组成,是否搞好Datum.Set和CoordSys.Set就ok了?谁能说说具体步骤?</P>
举报 回复(0) 喜欢(0)     评分
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-10-22 10:28
这都是很基本得问题啊,怎么就没人回答?????
举报 回复(0) 喜欢(0)     评分
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2004-10-23 09:36
版主路过都不回答??
举报 回复(0) 喜欢(0)     评分
wisherbob
路人甲
路人甲
  • 注册日期2004-08-16
  • 发帖数14
  • QQ
  • 铜币148枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2005-01-14 10:46
哎,真的不容易
举报 回复(0) 喜欢(0)     评分
zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-01-15 16:03
我自己都忘了这个帖子了,cad转换为tab应该先把dwg文件转换为dxf文件,然后在mapinfo导入
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部