在TransCAD/TransModeler/Maptitude中添加坐标系统
TransCAD/TransModeler/Maptitude包括百余种坐标系统,支持多种地图投影,可以将不同的坐标系统存储的空间数据的整合。软件自带的地图投影设置中,对一些国家和地区,例如北美和日本,种类分得很细,对中国只含CIESIN Grid、ACMR Coordinate System、China Belt I、China Belt II、1980 Hong Kong Grid、台湾1967和1997年的12个Grid Zone和Old Jinmen Grid。国内用户在导入导出其他GIS数据时,如果数据不是以经纬度或上述坐标系统表示,则有必要定制自己的地图投影来完成坐标变换,下面介绍北京的一个例子。 在程序目录下创建一个名为USERPRJ的文本文件(无后缀),其中包括如下内容:
<beijing>
#: ; 中国;北京 1954 GK;m;_xx=1.,_xy=0.,_yx=0.,_yy=1.,_tx=68.8,_ty=36.5
proj=tmerc ellps=krass lon_0=116.32429 lat_0=37.16071 k_0=1.00125
x_0=500000 y_0=0
no_defs <>
在程序启动时检测USERPRJ文件是否存在,用户在其中定义的坐标系统会自动调入Projection and Coordinate System对话框中Coordinate System 页面Class下拉菜单中User Defined选项下面。上面例子中的设置添加一个名为“中国:北京 1954 GK”的坐标系统(Coodinate System)。要添加更多坐标系统,只需在文件中追加有关定义。
这个USERPRJ文件的结构实际很简单。除下面介绍的特殊符号#:以外,任何#符号后面的内容都是作为注解被程序忽略。由<和>号括起来的字串标志着开始一个新坐标系统的定义,如<beijing>。末尾出现的关键字no_defs和<> 标志着定义的结束,以及对缺省的选项不使用默认值。
坐标投影参数的定义首先包括一个以特殊注解#:符号开始的语句,给出在对话框中使用的名称,如上例中的“中国”和“北京 1954 GK”,以及其他一些参数,如距离单位(m)和用于数据导入和导出坐标线性变换参数。这些坐标变换是经纬度进行投影以后的数据上操作的,具体公式如下:
xt = x * _xx + y * _xy + _tx
yt = x * _yx + y * _yy + _ty
这里所用的距离单位是特殊注解行指定的单位(上例中是米)。另外一种进行坐标变换的办法是改变距离单位和缩放系数,以及使用false easting (x_0) 和 northing (y_0) 选项。
还有一些选项可以用来控制投影和坐标系统,但这些一般只用于某些特定的情形:
_cdist:限定该投影只适用于距中心位置在给定距离的范围(Scope)以内。
_hlimit=len 限定范围(Scope)的高度(miles)
_wlimit=len 限定范围(Scope)的宽度(miles)
_limit=len 限定范围(Scope)的高度和宽度(miles)
下列参数定义地图投影选项:
proj=name 用于选择坐标系统,
ellps=name 用于选择投影椭球体。椭球体可以进一步用a=len(主轴)
、b=len(短轴)和 e=num、es= num、f= num 或 rf= num 等选项定义。
zone=num 用于为需要分区坐标系统指定区号,如UTM 和 Gauss-Kruger。
根据所选投影不同,选项和参数会有所不同。详细资料请参阅用户手册或在线帮助文档。