Exemple #1
0
 internal void GetArgsFromDataSource()
 {
     _fullEnvelope      = _dataSource.GetFullEnvelope();
     _fullGridCount     = _dataSource.GetFullGridCount();
     _coordType         = _dataSource.GetCoordinateType();
     _shapeType         = _dataSource.GetShapeType();
     _fieldNames        = _dataSource.GetFieldNames();
     _originalCoordType = _coordType;
 }
Exemple #2
0
 public void Project(IRuntimeProjecter projecter, enumCoordinateType toCoordinateType)
 {
     _runtimeProjecter = projecter;
     if (_toCoordinateType == enumCoordinateType.Geographic)
     {
         _runtimeProjecter.Project(_fullEnvelop);
         _toCoordinateType = enumCoordinateType.Projection;
     }
 }
Exemple #3
0
        public RstReader(string filename)
        {
            _geoImage = IGeoImage.GeoOpen(filename);
            GeoImage g = _geoImage as GeoImage;

            _fullEnvelope      = new Envelope(g.MinX, g.MinY, g.MaxX, g.MaxY);
            _coordType         = g.IsProjected ? enumCoordinateType.Projection : enumCoordinateType.Geographic;
            _sref              = SpatialReferenceFactory.GetSpatialReferenceByWKT(g.ProjectDescription, enumWKTSource.GDAL);
            _byteCountPerPixel = GetBandCount(_geoImage.DataType);
        }
 public CachedVectorData(string shpFileName, GeoDo.Project.IProjectionTransform coordTransform)
     : this(shpFileName)
 {
     if (coordTransform != null)
     {
         _coordTransform = coordTransform;
         Project(_features);
         _coordType = enumCoordinateType.Projection;
     }
 }
Exemple #5
0
 public MemoryDataSource(string name,
                         enumShapeType shapeType,
                         enumCoordinateType coordType,
                         Envelope fullEnvelope
                         )
     : base(name)
 {
     _shapeType      = shapeType;
     _coordType      = enumCoordinateType.Geographic;
     _gridDefinition = new GridDefinition((float)(fullEnvelope.Width + float.Epsilon),
                                          (float)(fullEnvelope.Height + float.Epsilon));
     _fullEnvelope       = fullEnvelope;
     _gridStateIndicator = new GridStateIndicator(_fullEnvelope.Clone() as Envelope, _gridDefinition);
     _fullGridCount      = _gridStateIndicator.Width * _gridStateIndicator.Height;
     _grid = new Grid(0, _fullEnvelope.Clone() as Envelope, new Feature[] { });
 }
Exemple #6
0
 public void Project(IRuntimeProjecter projecter, enumCoordinateType toCoordinateType)
 {
     if (_coordType == enumCoordinateType.Geographic)
     {
         _coordType = toCoordinateType;
         _currentRuntimeProjecter = projecter;
         //
         _currentRuntimeProjecter.Project(_fullEnvelope);
         //
         if (_grids == null || _grids.Count == 0)
         {
             return;
         }
         int n = _grids.Count;
         for (int i = 0; i < n; i++)
         {
             TryProject(_grids[i]);
         }
     }
 }
Exemple #7
0
        public void Render(System.Drawing.Graphics g, QuickTransformArgs quickTransform)
        {
            Envelope currentExtent = _environment.ExtentOfProjectionCoord;

            if (!currentExtent.IsInteractived(_class.FullEnvelope))
            {
                return;
            }
            IMapRuntime        runtime   = _environment as IMapRuntime;
            IRasterDataSource  ds        = _class.DataSource as IRasterDataSource;
            enumCoordinateType coordType = ds.GetCoordinateType();
            Envelope           evp       = null;

            if (coordType == enumCoordinateType.Geographic)
            {
                evp = ToGeoEnvelope(runtime, currentExtent);
            }
            Bitmap bm = ds.Reader.Read(evp, runtime.Host.CanvasSize.Width, runtime.Host.CanvasSize.Height);

            if (bm != null)
            {
                g.DrawImage(bm, 0, 0);
            }
        }
Exemple #8
0
        ProErr RBootARMMoveXY(enumCoordinateType CoordinateType, enumAreaType AreaType, int SerialNumbler)
        {
            int i         = 0;
            int LocationX = HoldingSingelRead(ARM_06);
            int LocationY = HoldingSingelRead(ARM_11);
            int LocationZ = HoldingSingelRead(ARM_16);
            ProErr
                Err = ProErr.ProNOErr;

            i   = 0;
            Err = CoordinateTransformation(CoordinateType, AreaType, SerialNumbler);
            if (Err != ProErr.ProNOErr)
            {
                return(Err);
            }

            if ((LocationX != CoordinateTransX) || (LocationY != CoordinateTransY))
            {
                if ((LocationZ > Z_High0))
                {
                    HoldingSingelWrite(ARM_15, Z_High0);
                    do
                    {
                        osDelay(10);
                    } while ((HoldingSingelRead(ARM_16) != Z_High0) && (i++ < Math.Abs(Z_High0 - LocationZ) / 3u));
                    if (i >= Math.Abs(Z_High0 - LocationZ) / 3u)
                    {
                        Err = ProErr.ProArmZErr;
                        return(Err);
                    }
                    LocationZ = RTStatus.RbootArmPosition[2u] = HoldingSingelRead(ARM_16);
                }
                HoldingSingelWrite(ARM_05, CoordinateTransX);
                HoldingSingelWrite(ARM_10, CoordinateTransY);

                i = 0;
                int X;
                int Y;
                do
                {
                    osDelay(10);
                    X = HoldingSingelRead(ARM_06);
                    Y = HoldingSingelRead(ARM_11);
                } while (
                    ((X != CoordinateTransX) || (Y != CoordinateTransY)) &&
                    (i++ <
                     (
                         Math.Abs(CoordinateTransX - LocationX) > Math.Abs(CoordinateTransY - LocationY) ?
                         Math.Abs(CoordinateTransX - LocationX) : Math.Abs(CoordinateTransY - LocationY)
                     ) / 3u
                    )
                    );
                if (i >=
                    (
                        Math.Abs(CoordinateTransX - LocationX) > Math.Abs(CoordinateTransY - LocationY) ?
                        Math.Abs(CoordinateTransX - LocationX) : Math.Abs(CoordinateTransY - LocationY)
                    ) / 3u
                    )
                {
                    if (X != CoordinateTransX)
                    {
                        Err = ProErr.ProArmXErr;
                    }
                    if (Y != CoordinateTransY)
                    {
                        Err = ProErr.ProArmYErr;
                    }
                    return(Err);
                }
                LocationX = RTStatus.RbootArmPosition[0] = HoldingSingelRead(ARM_06);
                LocationY = RTStatus.RbootArmPosition[1u] = HoldingSingelRead(ARM_11);
            }
            return(Err);
        }
Exemple #9
0
        ProErr CoordinateTransformation(enumCoordinateType CoordinateType, enumAreaType AreaType, int SerialNumbler)
        {
            ProErr
                Err = ProErr.ProNOErr;

            switch (CoordinateType)
            {
            case enumCoordinateType.CoordSampleHead:
            {
                switch (AreaType)
                {
                case enumAreaType.AreaReagentAdd:
                    CoordinateTransX = XY_HeadSample[0, 0] - 8450 * (SerialNumbler - 1);
                    CoordinateTransY = XY_HeadSample[0, 1] + 0;
                    break;

                case enumAreaType.AreaSampler:
                    Err = NoXYTrans(SerialNumbler);
                    if (Err != ProErr.ProNOErr)
                    {
                        return(Err);
                    }
                    CoordinateTransX = XY_HeadSample[1, 0] + (int)(/*6400.0f / 72 * 32*/ 2844.44f * NoX + 0.5f);
                    CoordinateTransY = XY_HeadSample[1, 1] + (int)(/*6400.0f / 72 * 32*/ 2844.44f * NoY + 0.5f);
                    break;

                case enumAreaType.AreaDigestion:
                    Err = ProErr.ProCoordinateErr;
                    break;

                default:
                    break;
                }
            }
            break;

            case enumCoordinateType.CoordFingers:
            {
                switch (AreaType)
                {
                case enumAreaType.AreaReagentAdd:
                    CoordinateTransX = XY_HeadFingers[0, 0] + 6150 * (SerialNumbler - 1);
                    CoordinateTransY = XY_HeadFingers[0, 1] + 0;
                    break;

                case enumAreaType.AreaSampler:
                    Err = ProErr.ProCoordinateErr;
                    break;

                case enumAreaType.AreaDigestion:
                    Err = NoXYTrans(SerialNumbler);
                    if (Err != ProErr.ProNOErr)
                    {
                        return(Err);
                    }
                    CoordinateTransX = XY_HeadFingers[1, 0] + (int)(/*6400.0f / 72 * 32*/ 2844.44f * NoX + 0.5f);
                    CoordinateTransY = XY_HeadFingers[1, 1] + (int)(/*6400.0f / 72 * 32*/ 2844.44f * NoY + 0.5f);
                    break;

                default:
                    break;
                }
            }
            break;

            default:
                break;
            }
            return(Err);
        }