using System; using System.Collections.Generic; using System.Text; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.DataSourcesRaster; using System.Diagnostics; namespace ArcProxy { class Program { private static LicenseInitializer m_AOLicenseInitializer = new ArcProxy.LicenseInitializer(); [STAThread()] static void Main(string[] args) { // ESRI License Initializer generated code. m_AOLicenseInitializer.InitializeApplication(new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeEngine, esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB }, new esriLicenseExtensionCode[] { esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst, esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork, esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst, esriLicenseExtensionCode.esriLicenseExtensionCodeSchematics, esriLicenseExtensionCode.esriLicenseExtensionCodeMLE, esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability, esriLicenseExtensionCode.esriLicenseExtensionCodeTracking }); // ESRI License Initializer generated code. string path = System.IO.Directory.GetCurrentDirectory(); string filename = "galle.tif"; // Connect to an image serve via URL IImageServerLayer imageServerLayer = new ImageServerLayerClass(); string URL = "http://vega/ArcGIS/services/GalleCrater/ImageServer"; imageServerLayer.Initialize(URL); // Get the raster from the image server layer IRaster raster = imageServerLayer.Raster; // Rasters from image servers are large; define the size of the raster. IRasterProps rasterProps = (IRasterProps)raster; IEnvelope clipEnvelope = new EnvelopeClass(); clipEnvelope.PutCoords(735000, 4335000, 740000, 4340000); rasterProps.Extent = clipEnvelope; rasterProps.Width = 2048; rasterProps.Height = 2048; // Open a workspace for saving the image IWorkspace workspace = openWorkspace(path); // Ensure the image does not currently exist System.IO.File.Delete(path + @\ + filename); // Save the image to the file System.Console.WriteLine("Saving..."); ISaveAs saveas = (ISaveAs)raster; IDataset dataset = saveas.SaveAs(filename, workspace, "TIFF"); // Do not make any call to ArcObjects after ShutDownApplication() m_AOLicenseInitializer.ShutdownApplication(); } /// <summary> /// Open a workspace for writing a raster to an image file. /// </summary> static IWorkspace openWorkspace(string path) { IWorkspaceFactory2 wsFactory = new RasterWorkspaceFactoryClass(); IWorkspace workspace = wsFactory.OpenFromFile(path, 0); return workspace; } } }
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.