com.supermap.data
类 CoordSysTranslator

java.lang.Object
  继承者 com.supermap.data.CoordSysTranslator

public final class CoordSysTranslator
extends java.lang.Object

投影转换类。

主要用于投影坐标之间及投影坐标系之间的转换。

投影转换一般有三种工作方式:地理(经纬度)坐标和投影坐标之间的转换使用 forward() 方法、投影坐标和地理(经纬度)坐标之间的转换使用inverse() 方法 、两种投影坐标系之间的转换使用convert() 方法。

注意:当前版本不支持光栅数据的投影转换。即在同一数据源中,投影转换只转换矢量数据部分。地理坐标系(Geographic coordinate system)也称为地理坐标系统,是以经纬度为地图的存储单位的。很明显,地理坐标系是球面坐标系统。如果将地球上的数字化信息存放到球面坐标系统上,就需要有这样的椭球体具有如下特点:可以量化计算的,具有长半轴(Semimajor Axis),短半轴(Semiminor Axis),偏心率(Flattening),中央子午线(prime meridian)及大地基准面(datum)。投影坐标系统(Projection coordinate system)实质上便是平面坐标系统,其地图单位通常为米。将球面坐标转化为平面坐标的过程便称为投影。所以每一个投影坐标系统都必定会有地理坐标系统(Geographic Coordinate System)参数。 因此就存在着投影坐标之间的转换以及投影坐标系之间的转换。

在进行投影转换时,对文本对象(GeoText)投影转换后,文本对象的字高和角度会相应地转换,如果用户不需要这样的改变,需要对转换后的文本对象修正其字高和角度。


方法摘要
static boolean convert(Dataset dataset, PrjCoordSys targetPrjCoordSys, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod)
          根据目标投影坐标系对数据集进行投影转换,结果将直接改变源数据集的投影。
static Dataset convert(Dataset sourceDataset, PrjCoordSys targetPrjCoordSys, Datasource targetDatasource, java.lang.String targetDatasetName, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod)
          根据目标投影坐标系对数据集进行投影转换,转换后的数据集保存在目标数据源中。
static Dataset convert(Dataset sourceDataset, PrjCoordSys targetPrjCoordSys, Datasource targetDatasource, java.lang.String targetDatasetName, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod, CoordSysTransRunnable runnable)
          用户通过SuperMap提供投影扩展功能,通过编写自定义的转换算法,实现投影以及地理坐标系的转换。
static boolean convert(Datasource sourceDatasource, Datasource targetDatasource, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod)
          根据目标数据源的地图投影对源数据源进行投影转换,转换后的数据集保存在目标数据源中。
static boolean convert(Datasource datasource, PrjCoordSys targetPrjCoordSys, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod)
          根据目标投影坐标系对数据源进行投影转换,结果将直接改变源数据源。
static boolean convert(Geometry geometry, PrjCoordSys sourcePrjCoordSys, PrjCoordSys targetPrjCoordSys, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod)
          根据源投影坐标系与目标投影坐标系对几何对象进行投影转换,结果将直接改变源几何对象。
static boolean convert(Point2Ds points, PrjCoordSys sourcePrjCoordSys, PrjCoordSys targetPrjCoordSys, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod)
          根据源投影坐标系与目标投影坐标系对坐标点串进行投影转换,结果将直接改变源坐标点串。
static boolean convert(java.lang.String inputFile, java.lang.String outFile, PrjCoordSys srcPrjCoordSys, PrjCoordSys targetPrjCoordSys, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod, double resolution)
          根据目标投影坐标系直接对Tif数据进行投影转换并输出为Tif文件。
static boolean convertDatasetModel(Dataset sourceDataset, PrjCoordSys targetPrjCoordSys, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod, boolean bInstance)
          模型数据集坐标转换方法,支持实例化对象的所有顶点参与坐标转换。
static boolean forward(Point2Ds points, PrjCoordSys prjCoordSys)
          在同一地理坐标系下,该方法用于将指定的Point2Ds 类的点对象的地理坐标转换到投影坐标。
static boolean inverse(Point2Ds points, PrjCoordSys prjCoordSys)
          在同一投影坐标系下,该方法用于将指定的Point2Ds 类的点对象的投影坐标转换到地理坐标。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

forward

public static boolean forward(Point2Ds points,
                              PrjCoordSys prjCoordSys)
在同一地理坐标系下,该方法用于将指定的Point2Ds 类的点对象的地理坐标转换到投影坐标。

参数:
points - 指定的被转换的Point2Ds 类的对象。
prjCoordSys - 对象所在的投影坐标系。
返回:
如果转换成功返回 true,否则返回 false。

inverse

public static boolean inverse(Point2Ds points,
                              PrjCoordSys prjCoordSys)
在同一投影坐标系下,该方法用于将指定的Point2Ds 类的点对象的投影坐标转换到地理坐标。

参数:
points - 被转换的Point2Ds 对象。
prjCoordSys - 指定的对象所在的投影坐标系。
返回:
如果坐标转换成功,返回 true,否则返回 false。

convert

public static boolean convert(Datasource datasource,
                              PrjCoordSys targetPrjCoordSys,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod)
根据目标投影坐标系对数据源进行投影转换,结果将直接改变源数据源。

参数:
datasource - 被转换的数据源。
targetPrjCoordSys - 指定的目标投影坐标系。
coordSysTransParameter - 投影坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差,详情请参见 CoordSysTransParameter 类。
coordSysTransMethod - 投影转换所使用的方法。详情参见 CoordSysTransMethod。在进行投影转换时,如果源投影和目标投影的地理坐标系相同,该参数的设置不起作用,用户可以随意选择转换方法。
返回:
如果转换成功返回 true,否则返回 false。

convert

public static boolean convert(Datasource sourceDatasource,
                              Datasource targetDatasource,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod)
根据目标数据源的地图投影对源数据源进行投影转换,转换后的数据集保存在目标数据源中。

参数:
sourceDatasource - 被转换的数据源对象。
targetDatasource - 目标数据源对象。
coordSysTransParameter - 投影坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差,详情请参见 CoordSysTransParameter 类。
coordSysTransMethod - 投影坐标系转换方法。详情参见 CoordSysTransMethod。在进行投影转换时,如果源投影和目标投影的地理坐标系相同,该参数的设置不起作用,用户可以随意选择转换方法。
返回:
如果转换成功返回 true,否则返回 false。

convert

public static boolean convert(Geometry geometry,
                              PrjCoordSys sourcePrjCoordSys,
                              PrjCoordSys targetPrjCoordSys,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod)
根据源投影坐标系与目标投影坐标系对几何对象进行投影转换,结果将直接改变源几何对象。

参数:
geometry - 被转换的几何对象。
sourcePrjCoordSys - 源投影坐标系对象。
targetPrjCoordSys - 目标投影坐标系对象。
coordSysTransParameter - 投影坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差,详情请参见 CoordSysTransParameter 类。
coordSysTransMethod - 投影转换的方法。详情参见 CoordSysTransMethod。在进行投影转换时,如果源投影和目标投影的地理坐标系相同,该参数的设置不起作用,用户可以随意选择转换方法。
返回:
如果转换成功返回 true,否则返回 false。

convert

public static boolean convert(Point2Ds points,
                              PrjCoordSys sourcePrjCoordSys,
                              PrjCoordSys targetPrjCoordSys,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod)
根据源投影坐标系与目标投影坐标系对坐标点串进行投影转换,结果将直接改变源坐标点串。

参数:
points - 被转换的 Points2Ds 类的点串。
sourcePrjCoordSys - 源投影坐标系。
targetPrjCoordSys - 目标投影坐标系。
coordSysTransParameter - 投影坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差,详情请参见 CoordSysTransParameter 类。
coordSysTransMethod - 投影转换所使用的方法。详情请参见 CoordSysTransMethod。在进行投影转换时,如果源投影和目标投影的地理坐标系相同,该参数的设置不起作用,用户可以随意选择转换方法。
返回:
如果转换成功返回 true,否则返回 false。

convert

public static boolean convert(Dataset dataset,
                              PrjCoordSys targetPrjCoordSys,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod)
根据目标投影坐标系对数据集进行投影转换,结果将直接改变源数据集的投影。

该方法只支持矢量数据投影转换。

参数:
dataset - 被转换的数据集。
targetPrjCoordSys - 目标投影坐标系。
coordSysTransParameter - 投影坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差,详情请参见 CoordSysTransParameter 类。
coordSysTransMethod - 投影转换所使用的方法。详情请参见 CoordSysTransMethod。在进行投影转换时,如果源投影和目标投影的地理坐标系相同,该参数的设置不起作用,用户可以随意选择转换方法。
返回:
如果转换成功返回 true;否则返回 false。

convert

public static Dataset convert(Dataset sourceDataset,
                              PrjCoordSys targetPrjCoordSys,
                              Datasource targetDatasource,
                              java.lang.String targetDatasetName,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod)
根据目标投影坐标系对数据集进行投影转换,转换后的数据集保存在目标数据源中。

参数:
sourceDataset - 被转换的数据集。
targetPrjCoordSys - 目标投影坐标系。
targetDatasource - 目标数据源。
targetDatasetName - 目标数据集的名称。
coordSysTransParameter - 投影坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差,详情请参见 CoordSysTransParameter 类。
coordSysTransMethod - 投影转换所使用的方法。详情请参见 CoordSysTransMethod。在进行投影转换时,如果源投影和目标投影的地理坐标系相同,该参数的设置不起作用,用户可以随意选择转换方法。
返回:
转换之后的数据集。

convert

public static Dataset convert(Dataset sourceDataset,
                              PrjCoordSys targetPrjCoordSys,
                              Datasource targetDatasource,
                              java.lang.String targetDatasetName,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod,
                              CoordSysTransRunnable runnable)
用户通过SuperMap提供投影扩展功能,通过编写自定义的转换算法,实现投影以及地理坐标系的转换。该方法中的CoordSysTransRunnable类对象参数为用户实现的自定义转换算法,在执行投影转换时,该方法将调用给定的自定义转换算法进行转换操作。

参数:
sourceDataset - 设置被转换的数据集。
targetPrjCoordSys - 设置转换的目标投影坐标系的详细参数信息。包括的主要内容有:地理坐标系(大地参考)、投影坐标参考信息(标准纬线、中央经线、坐标水平垂直偏移量等)、投影方式对象(如等角圆锥投影、等距方位投影等)、投影坐标系类型。
targetDatasource - 设置转换后的数据存储的数据源。
targetDatasetName - 设置转换后的数据集名称。
coordSysTransParameter - 地理坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差。CoordSysTransParameter,和CoordSysTransMethod两个类型的参数,如果原投影和目标投影的地理坐标系不同就需要正确设置这两个参数,否则,无需对两个参数进行设置。
coordSysTransMethod - 设置转换所使用的方法。这里,您所做的转换是基于自己的自定义转换方法进行的,所以coordSysTransMethod参数的值您需要制定为:CoordSysTransMethod.Extension。
runnable - 自定义转换算法。当CoordSysTransMethod.Extension时,该方法自定调用runnable参数提供的自定义转换方法去实现投影转换操作。
返回:
返回转换之后的数据集。

convert

public static boolean convert(java.lang.String inputFile,
                              java.lang.String outFile,
                              PrjCoordSys srcPrjCoordSys,
                              PrjCoordSys targetPrjCoordSys,
                              CoordSysTransParameter coordSysTransParameter,
                              CoordSysTransMethod coordSysTransMethod,
                              double resolution)
根据目标投影坐标系直接对Tif数据进行投影转换并输出为Tif文件。该方法运用了GPU计算,使用该方法需要NVIDIA显卡环境。

参数:
inputFile - 被转换的tif文件路径和名称,如:"D:\data\bj.tif"。
outFile - 转换后的tif文件路径和名称,如:"D:\data\result.tif"。
srcPrjCoordSys - 转换前的投影坐标系。
targetPrjCoordSys - 目标投影坐标系。
coordSysTransParameter - 地理坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差。CoordSysTransParameter,和CoordSysTransMethod两个类型的参数,如果原投影和目标投影的地理坐标系不同就需要正确设置这两个参数,否则,无需对两个参数进行设置。
coordSysTransMethod - 投影转换所使用的方法。目前该方法只提供了两种转换方法:二维四参数转换模型(China_2D_4P)和二维七参数转换模型(China_2D_7P)。
resolution - 结果数据的分辨率大小。
返回:
转换成功返回true,否则返回false。

convertDatasetModel

public static boolean convertDatasetModel(Dataset sourceDataset,
                                          PrjCoordSys targetPrjCoordSys,
                                          CoordSysTransParameter coordSysTransParameter,
                                          CoordSysTransMethod coordSysTransMethod,
                                          boolean bInstance)
模型数据集坐标转换方法,支持实例化对象的所有顶点参与坐标转换。

参数:
sourceDataset - 进行坐标转换的模型数据集。
targetPrjCoordSys - 设置转换的目标投影坐标系的详细参数信息。包括的主要内容有:地理坐标系(大地参考)、投影坐标参考信息(标准纬线、中央经线、坐标水平垂直偏移量等)、投影方式对象(如等角圆锥投影、等距方位投影等)、投影坐标系类型。
coordSysTransParameter - 地理坐标系转换参数。包括坐标的平移量、旋转角度、投影比例尺差。CoordSysTransParameter,和CoordSysTransMethod两个类型的参数,如果原投影和目标投影的地理坐标系不同就需要正确设置这两个参数,否则,无需对两个参数进行设置。
coordSysTransMethod - 设置转换所使用的方法。这里,您所做的转换是基于自己的自定义转换方法进行的,所以coordSysTransMethod参数的值您需要制定为:CoordSysTransMethod.Extension。
bInstance - 判定是否是实例化对象,true表示进行坐标转换的对象不共用骨架,false表示进行坐标转换的对象与其他对象共用骨架。
返回:
转换成功返回true,否则返回false。