/// <summary> /// 构造函数 /// </summary> /// <param name="geodeticCrs">待转换坐标系统,类型必须是GeodeticCs</param> /// <param name="xyzCrs">目标坐标系统,类型必须是XyzCs</param> public GeodeticToXyzCsTranformOnDifferDatum(ICoordinateReferenceSystem geodeticCrs, ICoordinateReferenceSystem xyzCrs) : base(geodeticCrs, xyzCrs) { //第一个节点,统一坐标到XYZ ICoordinateReferenceSystem middleCrs = new CrsFactory().Create(CoordinateSystem.XyzCs, this.SourceCrs.Datum); TransformChain = new GeodeticToXyzCsTranform(this.SourceCrs, middleCrs); //第二个节点 AbstractCoordTranform datumTrans = new GeodeticDatumTranform(middleCrs, this.TargetCrs); //设置链条 TransformChain.Successor = (datumTrans); }
/// <summary> /// 构造函数 /// </summary> /// <param name="sourceCrs">待转换坐标系统,类型是XyzCs才符合</param> /// <param name="targetCrs">目标坐标系统,类型是GeodeticCs才符合</param> public XyzToGeodeticCsTranformOnDifferDatum(ICoordinateReferenceSystem sourceCrs, ICoordinateReferenceSystem targetCrs) : base(sourceCrs, targetCrs) { //第一个节点,统一基准 ICoordinateReferenceSystem middleCrs = new CrsFactory().Create(CoordinateSystem.XyzCs, this.TargetCrs.Datum); this.TransformChain = new GeodeticDatumTranform(this.SourceCrs, middleCrs); //第二个节点,转换到大地坐标 AbstractCoordTranform xyzToGeo = new XyzToGeodeticCsTranform(middleCrs, this.TargetCrs); //设置链条 this.TransformChain.Successor = (xyzToGeo); }