CoordinateTransformation.cs
上传用户:sex100000
上传日期:2013-11-09
资源大小:1377k
文件大小:5k
源码类别:

GIS编程

开发平台:

C#

  1. // Copyright 2005, 2006 - Morten Nielsen (www.iter.dk)
  2. //
  3. // This file is part of SharpMap.
  4. // SharpMap is free software; you can redistribute it and/or modify
  5. // it under the terms of the GNU Lesser General Public License as published by
  6. // the Free Software Foundation; either version 2 of the License, or
  7. // (at your option) any later version.
  8. // 
  9. // SharpMap is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. // GNU Lesser General Public License for more details.
  13. // You should have received a copy of the GNU Lesser General Public License
  14. // along with SharpMap; if not, write to the Free Software
  15. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Text;
  19. namespace SharpMap.CoordinateSystems.Transformations
  20. {
  21. /// <summary>
  22. /// Describes a coordinate transformation. This class only describes a 
  23. /// coordinate transformation, it does not actually perform the transform 
  24. /// operation on points. To transform points you must use a <see cref="MathTransform"/>.
  25. /// </summary>
  26. public class CoordinateTransformation : ICoordinateTransformation
  27. {
  28. /// <summary>
  29. /// Initializes an instance of a CoordinateTransformation
  30. /// </summary>
  31. /// <param name="sourceCS">Source coordinate system</param>
  32. /// <param name="targetCS">Target coordinate system</param>
  33. /// <param name="transformType">Transformation type</param>
  34. /// <param name="mathTransform">Math transform</param>
  35. /// <param name="name">Name of transform</param>
  36. /// <param name="authority">Authority</param>
  37. /// <param name="authorityCode">Authority code</param>
  38. /// <param name="areaOfUse">Area of use</param>
  39. /// <param name="remarks">Remarks</param>
  40. internal CoordinateTransformation(ICoordinateSystem sourceCS, ICoordinateSystem targetCS, TransformType transformType, IMathTransform mathTransform, 
  41. string name, string authority, long authorityCode, string areaOfUse, string remarks)
  42. : base()
  43. {
  44. _TargetCS = targetCS;
  45. _SourceCS = sourceCS;
  46. _TransformType = transformType;
  47. _MathTransform = mathTransform;
  48. _Name = name;
  49. _Authority = authority;
  50. _AuthorityCode = authorityCode;
  51. _AreaOfUse = areaOfUse;
  52. _Remarks = remarks;
  53. }
  54. #region ICoordinateTransformation Members
  55. private string _AreaOfUse;
  56. /// <summary>
  57. /// Human readable description of domain in source coordinate system.
  58. /// </summary>
  59. public string AreaOfUse
  60. {
  61. get { return _AreaOfUse; }
  62. }
  63. private string _Authority;
  64. /// <summary>
  65. /// Authority which defined transformation and parameter values.
  66. /// </summary>
  67. /// <remarks>
  68. /// An Authority is an organization that maintains definitions of Authority Codes. For example the European Petroleum Survey Group (EPSG) maintains a database of coordinate systems, and other spatial referencing objects, where each object has a code number ID. For example, the EPSG code for a WGS84 Lat/Lon coordinate system is