コード例 #1
0
        public static GeoAPIPrecisionModel ToGeoAPI(this PrecisionModelType model)
        {
            GeoAPIPrecisionModel geoAPIPrecisionModel;

            if (ConvertedPrecisionModels.TryGetValue(model, out geoAPIPrecisionModel))
            {
                return(geoAPIPrecisionModel);
            }

            var geoService = GeoAPI.GeometryServiceProvider.Instance;

            switch (model)
            {
            case PrecisionModelType.Floating:
                geoAPIPrecisionModel = geoService.CreatePrecisionModel(GeoAPI.Geometries.PrecisionModels.Floating);
                break;

            case PrecisionModelType.FloatingSingle:
                geoAPIPrecisionModel = geoService.CreatePrecisionModel(GeoAPI.Geometries.PrecisionModels.FloatingSingle);
                break;

            case PrecisionModelType.Fixed:
                geoAPIPrecisionModel = geoService.CreatePrecisionModel(GeoAPI.Geometries.PrecisionModels.Fixed);
                break;
            }

            ConvertedPrecisionModels.Add(model, geoAPIPrecisionModel);
            return(geoAPIPrecisionModel);
        }
コード例 #2
0
 /// <summary> Creates a PrecisionModel that specifies
 /// an explicit precision model type.
 /// If the model type is FIXED the scale factor will default to 1.
 ///
 /// </summary>
 /// <param name="modelType">the type of the precision model
 /// </param>
 public PrecisionModel(PrecisionModelType modelType)
 {
     this.modelType = modelType;
     if (modelType == PrecisionModelType.Fixed)
     {
         this.Scale = 1.0;
     }
 }
コード例 #3
0
ファイル: PrecisionModel.cs プロジェクト: qingqibing/aa
        /// <summary>
        /// Creates a <c>PrecisionModel</c> that specifies
        /// an explicit precision model type.
        /// If the model type is Fixed the scale factor will default to 1.
        /// </summary>
        /// <param name="modelType">
        /// The type of the precision model.
        /// </param>
        public PrecisionModel(PrecisionModelType modelType)
        {
            _modelType = modelType;

            if (modelType == PrecisionModelType.Fixed)
            {
                _scale = 1.0;
            }
        }
コード例 #4
0
ファイル: PrecisionModel.cs プロジェクト: gisdevelope/aegis
        /// <summary>
        /// Initializes a new instance of the <see cref="PrecisionModel" /> class.
        /// </summary>
        /// <param name="modelType">Type of the model.</param>
        public PrecisionModel(PrecisionModelType modelType)
        {
            this.ModelType     = modelType;
            this.baseTolerance = 1 / Math.Pow(10, this.MaximumSignificantDigits - 1);

            if (modelType == PrecisionModelType.Fixed)
            {
                this.Scale         = 1.0;
                this.baseTolerance = 0.5;
            }
        }
コード例 #5
0
ファイル: PrecisionModel.cs プロジェクト: hanchao/DotSpatial
 /// <summary>
 /// Creates a <c>PrecisionModel</c> with a default precision
 /// of Floating.
 /// </summary>
 public PrecisionModel()
 {
     // default is floating precision
     _modelType = PrecisionModelType.Floating;
 }
コード例 #6
0
ファイル: PrecisionModel.cs プロジェクト: hanchao/DotSpatial
 /// <summary>
 /// Copy constructor to create a new <c>PrecisionModel</c>
 /// from an existing one.
 /// </summary>
 /// <param name="pm"></param>
 public PrecisionModel(PrecisionModel pm)
 {
     _modelType = pm._modelType;
     _scale = pm._scale;
 }
コード例 #7
0
ファイル: PrecisionModel.cs プロジェクト: hanchao/DotSpatial
 /// <summary>
 /// Creates a <c>PrecisionModel</c> that specifies Fixed precision.
 /// Fixed-precision coordinates are represented as precise internal coordinates,
 /// which are rounded to the grid defined by the scale factor.
 /// </summary>
 /// <param name="scale">
 /// Amount by which to multiply a coordinate after subtracting
 /// the offset, to obtain a precise coordinate.
 /// </param>
 public PrecisionModel(double scale)
 {
     _modelType = PrecisionModelType.Fixed;
     _scale = scale;
 }
コード例 #8
0
ファイル: PrecisionModel.cs プロジェクト: hanchao/DotSpatial
        /// <summary>
        /// Creates a <c>PrecisionModel</c> that specifies
        /// an explicit precision model type.
        /// If the model type is Fixed the scale factor will default to 1.
        /// </summary>
        /// <param name="modelType">
        /// The type of the precision model.
        /// </param>
        public PrecisionModel(PrecisionModelType modelType)
        {
            _modelType = modelType;

            if (modelType == PrecisionModelType.Fixed)
                _scale = 1.0;
        }
コード例 #9
0
ファイル: PrecisionModel.cs プロジェクト: qingqibing/aa
 /// <summary>
 /// Creates a <c>PrecisionModel</c> with a default precision
 /// of Floating.
 /// </summary>
 public PrecisionModel()
 {
     // default is floating precision
     _modelType = PrecisionModelType.Floating;
 }
コード例 #10
0
ファイル: PrecisionModel.cs プロジェクト: qingqibing/aa
 /// <summary>
 /// Copy constructor to create a new <c>PrecisionModel</c>
 /// from an existing one.
 /// </summary>
 /// <param name="pm"></param>
 public PrecisionModel(PrecisionModel pm)
 {
     _modelType = pm._modelType;
     _scale     = pm._scale;
 }
コード例 #11
0
ファイル: PrecisionModel.cs プロジェクト: qingqibing/aa
 /// <summary>
 /// Creates a <c>PrecisionModel</c> that specifies Fixed precision.
 /// Fixed-precision coordinates are represented as precise internal coordinates,
 /// which are rounded to the grid defined by the scale factor.
 /// </summary>
 /// <param name="scale">
 /// Amount by which to multiply a coordinate after subtracting
 /// the offset, to obtain a precise coordinate.
 /// </param>
 public PrecisionModel(double scale)
 {
     _modelType = PrecisionModelType.Fixed;
     _scale     = scale;
 }
コード例 #12
0
 /// <summary>
 /// Copy constructor to create a new PrecisionModel from an existing one.
 /// </summary>
 public PrecisionModel(PrecisionModel pm)
 {
     modelType = pm.modelType;
     scale     = pm.scale;
 }
コード例 #13
0
 /// <summary>
 /// Creates a PrecisionModel that specifies Fixed precision.
 /// Fixed-precision coordinates are represented as precise internal coordinates,
 /// which are rounded to the grid defined by the scale factor.
 /// </summary>
 /// <param name="scale">
 /// Amount by which to multiply a coordinate after subtracting the offset,
 /// to obtain a precise coordinate.
 /// </param>
 public PrecisionModel(double scale)
 {
     modelType  = PrecisionModelType.Fixed;
     this.Scale = scale;
 }
コード例 #14
0
ファイル: NtsPrecisionModel.cs プロジェクト: prepare/deveeldb
 public NtsPrecisionModel(PrecisionModelType modelType, int scale)
 {
     WrappedPrecisionModel = new PrecisionModel(scale);
 }