public static string CoordinatesConvertor(double InputX,double InputY, int InputWKID, int OutputWKID)
        {
            Geometry_GeometryServer geometryService = new Geometry_GeometryServer();

            SpatialReference inputSpatialReference = new GeographicCoordinateSystem();

            inputSpatialReference.WKID = InputWKID;

            inputSpatialReference.WKIDSpecified = true;

            SpatialReference outputSpatialReference = new ProjectedCoordinateSystem();

            outputSpatialReference.WKID = OutputWKID;

            outputSpatialReference.WKIDSpecified = true;

            PointN pt = new PointN();
            pt.X = InputX;
            pt.Y = InputY;

            Geometry[] inGeo = new Geometry[] { pt };

            Geometry[] geo = geometryService.Project(inputSpatialReference, outputSpatialReference, false, null, null, inGeo);
            PointN nPt = (PointN)geo[0];

            return (nPt.X.ToString() + ',' + nPt.Y.ToString());
        }
示例#2
0
        public static RecordSet ProjectRecordSet(Envelope env, RecordSet rs, int geomFieldIndex, SpatialReference inSR, SpatialReference outSR)
        {
            MapServiceFidTests._dbgGeomServer     = new Geometry_GeometryServer();
            MapServiceFidTests._dbgGeomServer.Url = "http://mashup/ArcGIS/services/Geometry/GeometryServer";
            MapServiceFidTests.dbgInSR            = inSR;
            MapServiceFidTests.dbgOutSR           = outSR;
            MapServiceFidTests.dbgEnv             = env;
            if (geomFieldIndex < 0)
            {
                return(null);
            }
            if (rs == null)
            {
                return(null);
            }
            if (inSR == null || outSR == null)
            {
                return(rs);
            }
            RecordSet result;

            try
            {
                List <Geometry> list    = new List <Geometry>(rs.Records.Length);
                Record[]        records = rs.Records;
                for (int i = 0; i < records.Length; i++)
                {
                    Record   record   = records[i];
                    Geometry geometry = record.Values[geomFieldIndex] as Geometry;
                    if (geometry != null)
                    {
                        list.Add(geometry);
                    }
                }
                Geometry[] inGeometryArray = list.ToArray();
                Geometry[] array           = MapServiceFidTests._dbgGeomServer.Project(MapServiceFidTests.dbgInSR, MapServiceFidTests.dbgOutSR, false, null, MapServiceFidTests.dbgEnv, inGeometryArray);
                int        num             = 0;
                Record[]   records2        = rs.Records;
                for (int j = 0; j < records2.Length; j++)
                {
                    Record record2 = records2[j];
                    record2.Values[geomFieldIndex] = array[num++];
                }
                result = rs;
            }
            catch (Exception ex)
            {
                string arg_F2_0 = ex.Message;
                result = rs;
            }
            return(result);
        }
 public AGSGeometryServer(AGSConnection parent, string soapURL) : base("Geometry", parent)
 {
     base.ErrorMessage            = "";
     this._GeomServer             = new Geometry_GeometryServer();
     this._GeomServer.Proxy       = WebRequest.DefaultWebProxy;
     this._GeomServer.Credentials = base.Parent.Credentials;
     if (this._GeomServer.Credentials == null)
     {
         this._GeomServer.UseDefaultCredentials = true;
     }
     if (string.IsNullOrEmpty(soapURL))
     {
         throw new Exception("Invalid geometry server");
     }
     this._GeomServer.Url   = soapURL;
     parent.GeometryService = this;
 }