您的位置:首页 > 其它

AE调用切图GP工具

2010-06-03 09:36 399 查看
1
2
3 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();
createCache.server_name = "192.168.0.96";
createCache.object_name = "mexico";
createCache.data_frame = "Layers";
createCache.out_folder = @"d:\arcgisserver\arcgiscache\";// 缓存输出位置
createCache.tiling_schema = "NEW";
createCache.tiling_scheme_type = "NEW";
createCache.scales_type = "STANDARD";
createCache.num_of_scales = 8; // 设置切图级数
createCache.tile_width = 512;
createCache.tile_height = 512;
createCache.dpi = 96;
createCache.cache_format = "PNG24";
createCache.tile_compression_quality = 0;
createCache.map_or_layers = "FUSED";
createCache.Antialiasing = "ANTIALIASING";
createCache.levels = levels;// 需做缓存的比例列表
createCache.Layer = layers;// 图层列表
RunTool(createCache);

ManageMapServerCacheTiles serverCacheTilse = new ManageMapServerCacheTiles();
serverCacheTilse.server_name = "192.168.0.96";// 服务器名称
serverCacheTilse.object_name = "mexico";// 地图服务名称
serverCacheTilse.data_frame = "Layers";// data frame名称
serverCacheTilse.Layer = layers;//
serverCacheTilse.levels = levels;
serverCacheTilse.update_mode = "Recreate All Tiles";
serverCacheTilse.thread_count = 5;
serverCacheTilse.Antialiasing = "ANTIALIASING";

RunTool(serverCacheTilse);
MessageBox.Show("Done!");
}

private void RunTool(IGPProcess process) {
//构造Geoprocessor
Geoprocessor geoprocessor = new Geoprocessor();
// Set the overwrite output option to true
geoprocessor.OverwriteOutput = true;
try {
geoprocessor.Execute(process, null);
ReturnMessages(geoprocessor);
} catch (Exception err) {
Console.WriteLine(err.Message);
ReturnMessages(geoprocessor);
}
}

// Function for returning the tool messages.
private void ReturnMessages(Geoprocessor gp) {
string ms = "";
if (gp.MessageCount > 0) {
for (int Count = 0; Count <= gp.MessageCount - 1; Count++) {
ms += gp.GetMessage(Count);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: