private void GPTiles() { 4 //设置参数 5 // 切图比例列表 6 string levels = "64000000;32000000;16000000;8000000;4000000;2000000;1000000;500000"; 7 // 地图服务中的图层列表 8 string layers = "LakesAnno;State_BoundariesAnno;Provinces;State Boundaries;Lakes;County Population;State Population;State Background"; 9 CreateMapServerCache createCache = new CreateMapServerCache(); 10 createCache.server_name = "192.168.0.96"; 11 createCache.object_name = "mexico"; 12 createCache.data_frame = "Layers"; 13 createCache.out_folder = @"d:/arcgisserver/arcgiscache/";// 缓存输出位置 14 createCache.tiling_schema = "NEW"; 15 createCache.tiling_scheme_type = "NEW"; 16 createCache.scales_type = "STANDARD"; 17 createCache.num_of_scales = 8; // 设置切图级数 18 createCache.tile_width = 512; 19 createCache.tile_height = 512; 20 createCache.dpi = 96; 21 createCache.cache_format = "PNG24"; 22 createCache.tile_compression_quality = 0; 23 createCache.map_or_layers = "FUSED"; 24 createCache.Antialiasing = "ANTIALIASING"; 25 createCache.levels = levels;// 需做缓存的比例列表 26 createCache.Layer = layers;// 图层列表 27 RunTool(createCache); 28 29 ManageMapServerCacheTiles serverCacheTilse = new ManageMapServerCacheTiles(); 30 serverCacheTilse.server_name = "192.168.0.96";// 服务器名称 31 serverCacheTilse.object_name = "mexico";// 地图服务名称 32 serverCacheTilse.data_frame = "Layers";// data frame名称 33 serverCacheTilse.Layer = layers;// 34 serverCacheTilse.levels = levels; 35 serverCacheTilse.update_mode = "Recreate All Tiles"; 36 serverCacheTilse.thread_count = 5; 37 serverCacheTilse.Antialiasing = "ANTIALIASING"; 38 39 RunTool(serverCacheTilse); 40 MessageBox.Show("Done!"); 41 } 42 43 private void RunTool(IGPProcess process) { 44 //构造Geoprocessor 45 Geoprocessor geoprocessor = new Geoprocessor(); 46 // Set the overwrite output option to true 47 geoprocessor.OverwriteOutput = true; 48 try { 49 geoprocessor.Execute(process, null); 50 ReturnMessages(geoprocessor); 51 } catch (Exception err) { 52 Console.WriteLine(err.Message); 53 ReturnMessages(geoprocessor); 54 } 55 } 56 57 58 // Function for returning the tool messages. 59 private void ReturnMessages(Geoprocessor gp) { 60 string ms = ""; 61 if (gp.MessageCount > 0) { 62 for (int Count = 0; Count <= gp.MessageCount - 1; Count++) { 63 ms += gp.GetMessage(Count); 64 } 65 } 66 }