/// <summary>
        /// Checks whether the values of this instance is equal to the values of another instance.
        /// Only parameters used for coordinate system are used for comparison.
        /// Name, abbreviation, authority, alias and remarks are ignored in the comparison.
        /// </summary>
        /// <param name="obj"></param>
        /// <returns>True if equal</returns>
        public override bool EqualParams(object obj)
        {
            if (!(obj is ProjectedCoordinateSystem))
            {
                return(false);
            }
            ProjectedCoordinateSystem pcs = obj as ProjectedCoordinateSystem;

            if (pcs.Dimension != this.Dimension)
            {
                return(false);
            }
            for (int i = 0; i < pcs.Dimension; i++)
            {
                if (pcs.GetAxis(i).Orientation != this.GetAxis(i).Orientation)
                {
                    return(false);
                }
                if (!pcs.GetUnits(i).EqualParams(this.GetUnits(i)))
                {
                    return(false);
                }
            }

            return(pcs.GeographicCoordinateSystem.EqualParams(this.GeographicCoordinateSystem) &&
                   pcs.HorizontalDatum.EqualParams(this.HorizontalDatum) &&
                   pcs.LinearUnit.EqualParams(this.LinearUnit) &&
                   pcs.Projection.EqualParams(this.Projection));
        }