GP服务的调用(等值线面、泰森多边形、标注)

//获取并初始化等值线面图层
function getIsoAnalyzeResultLayer() {
    var layerId = "isoAnalyzeResult";
    var graphicsLayerIsoAnalyze = map.getLayer(layerId);
    if (typeof (graphicsLayerIsoAnalyze) == "undefined" || graphicsLayerIsoAnalyze == null) {
        graphicsLayerIsoAnalyze = new esri.layers.GraphicsLayer({ id: layerId });
        map.addLayer(graphicsLayerIsoAnalyze);
    }
    else {
        graphicsLayerIsoAnalyze.clear();
    }
    return graphicsLayerIsoAnalyze;
}
//设置等值线渲染符号
function setIsolineAnalyzeResultLayerRender(graphicsLayerIsoAnalyze, breakArray, colorArray) {
    var defaultSymbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0, 0, 0]), 3);
    var renderer = new esri.renderer.UniqueValueRenderer(defaultSymbol, "Contour"); // Contour  // CONTOUR
    //
    for (var i = 0; i < colorArray.length; i++) {
        var colorHex = colorArray[i];
        var colorRGB = HexToRGB(colorHex);
        var value = parseFloat(breakArray[i]);
        var simpleLineSymbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([colorRGB.r, colorRGB.g, colorRGB.b]), 3);
        renderer.addValue(value, simpleLineSymbol);
    }
    graphicsLayerIsoAnalyze.setRenderer(renderer);
}

//设置等值面渲染符号
function setIsosurfaceAnalyzeResultLayerRender(graphicsLayerIsoAnalyze, breakArray, colorArray) {
    var defaultSymbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_NULL);
    defaultSymbol.outline.setStyle(esri.symbol.SimpleLineSymbol.STYLE_NULL);
    var renderer = new esri.renderer.UniqueValueRenderer(defaultSymbol, "GRIDCODE");
    //
    for (var i = 0; i < colorArray.length; i++) {
        var simpleFillSymbol = new esri.symbol.SimpleFillSymbol();
        simpleFillSymbol.setStyle(esri.symbol.SimpleFillSymbol.STYLE_SOLID);
        simpleFillSymbol.outline.setStyle(esri.symbol.SimpleLineSymbol.STYLE_NULL);
        var colorHex = colorArray[i];
        var colorRGB = HexToRGB(colorHex);
        simpleFillSymbol.setColor(new dojo.Color([colorRGB.r, colorRGB.g, colorRGB.b, 0.5]));
        renderer.addValue(i, simpleFillSymbol);
    }
    graphicsLayerIsoAnalyze.setRenderer(renderer);
}

//
function setThiessenPolygonAnalyzeResultLayerRender(graphicsLayerIsoAnalyze) {
    var defaultSymbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_NULL);
    var outline = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 2);
    defaultSymbol.setOutline(outline);
    var renderer = new esri.renderer.SimpleRenderer(defaultSymbol);
    graphicsLayerIsoAnalyze.setRenderer(renderer);
}
//清除等值线面结果
function cleanIsoAnalyze(layerNameArray) {
    var graphicsLayerIsoAnalyze = getIsoAnalyzeResultLayer();
    graphicsLayerIsoAnalyze.clear();
    if(layerNameArray && layerNameArray.length > 0)
    {
        for(var i=0; i<layerNameArray.length; i++)
        {
            var layerName = layerNameArray[i];
            var gplayer = map.getLayer(layerName);
            if(gplayer!=null)
            {
                map.removeLayer(gplayer);
            }
        }
    }
}
//计算等值线
function isolineAnalyze(parameter) {
    var breakString = parameter.breakString;
    var breakArray = breakString.split(",");
    var colorArray = parameter.colorArray;
    var id = parameter.layerid;
    //调用GP服务
    var gpUrl = config.map.gpServer.isolineAnalyze;
    var bd = Ext.getBody();
    bd.mask("<font style=‘font-weight:bold;‘>正在计算!!!</font>", ‘x-mask-loading‘);
    var params={
            starttime:parameter.startTime,
            endtime:parameter.endTime,
            gpUrl:gpUrl,
            breakString:breakString,
            id:id
        };
    var url = Watf.REQUEST_CONTEXTPATH+"/syq/rainforgisisoSurfaceAnalyze.do";
    $.ajax({
        url: url,
        type: ‘POST‘,
        timeout: 3000,
        async:false,
        data: Ext.urlEncode(params),
        dataType:‘json‘,
        cache:false,
        error: function(XMLHttpRequest, textStatus, errorThrown){
            alert(‘错误:‘,[‘<div >‘,‘<div >‘,url,‘</div>‘,‘<div >‘,errorThrown,‘</div>‘,‘</div>‘].join(‘‘));
        },
        success: function(data){
            var gp = new esri.tasks.Geoprocessor(gpUrl);
            var id = data.jobId;
            taskid = window.setInterval(function(){
                checkstatus(id, gp);
            }, 500);
         }
    });

    function checkstatus(jobId,gp){
        gp.checkJobStatus(jobId, function(jobInfo){
            if(jobInfo.jobStatus ==‘esriJobSucceeded‘){
                window.clearInterval(taskid);
                gp.getResultData(jobId, "isoResult", renderIsolineAnalyzeResult, errorCallback);
                Ext.MessageBox.alert(‘提示‘, ‘计算完成!‘);
                bd.unmask();
            }else if(jobInfo.jobStatus ==‘esriJobFailed‘ || jobInfo.jobStatus ==‘esriJobTimedOut‘){
                window.clearInterval(taskid);
                Ext.MessageBox.alert(‘提示‘, ‘生成失败!‘);
                bd.unmask();
            }
        });
    }
    //加载GP服务计算结果的回调函数
    function renderIsolineAnalyzeResult(result) {
        var featureSet = result.value;
        var graphicsLayerIsoAnalyze = getIsoAnalyzeResultLayer();
        setIsolineAnalyzeResultLayerRender(graphicsLayerIsoAnalyze, breakArray, colorArray);
        var features = featureSet.features;
        for (var i = 0; i < features.length; i++) {
            var graphic = features[i];
            graphicsLayerIsoAnalyze.add(graphic);
        }
        hideLoading();
    }
}

//计算等值面
function isosurfaceAnalyze(parameter) {
    var breakString = parameter.breakString;
    var breakArray = breakString.split(",");
    var colorArray = parameter.colorArray;
    //
    var gradeMap = new Array();
    for(var i=0; i<breakArray.length; i++)
    {
        var grade = new Object();
        grade.color = colorArray[i];
        grade.value = parseFloat(breakArray[i]);
        gradeMap.push(grade);
    }
    //
    var id = parameter.layerid;
    //调用GP服务
    var gpUrl = config.map.gpServer.isosurfaceAnalyze;
    var bd = Ext.getBody();
    bd.mask("<font style=‘font-weight:bold;‘>正在计算!!!</font>", ‘x-mask-loading‘);
    var params={
            starttime:parameter.startTime,
            endtime:parameter.endTime,
            gpUrl:gpUrl,
            breakString:breakString,
            id:id
        };
    var url = Watf.REQUEST_CONTEXTPATH+"/syq/rainforgisisoSurfaceAnalyze.do";
    $.ajax({
        url: url,
        type: ‘POST‘,
        timeout: 3000,
        async:false,
        data: Ext.urlEncode(params),
        dataType:‘json‘,
        cache:false,
        error: function(XMLHttpRequest, textStatus, errorThrown){
            alert(‘错误:‘,[‘<div >‘,‘<div >‘,url,‘</div>‘,‘<div >‘,errorThrown,‘</div>‘,‘</div>‘].join(‘‘));
        },
        success: function(data){
            var gp = new esri.tasks.Geoprocessor(gpUrl);
            var id = data.jobId;
            taskid=window.setInterval(function(){
                checkstatus(id,gp);
            },500);
         }
    });

    function checkstatus(jobId,gp){
        gp.checkJobStatus(jobId,function(jobInfo){
            if(jobInfo.jobStatus ==‘esriJobSucceeded‘){
                window.clearInterval(taskid);
                gp.getResultData(jobId, "isoResult", renderIsosurfaceAnalyzeResult,errorCallback);
                //加载GP服务计算结果
                hideLoading();
                Ext.MessageBox.alert(‘提示‘, ‘计算完成!‘);
            }else if(jobInfo.jobStatus ==‘esriJobFailed‘ || jobInfo.jobStatus ==‘esriJobTimedOut‘){
                window.clearInterval(taskid);
                Ext.MessageBox.alert(‘提示‘, ‘生成失败!‘);
                hideLoading();
            }
        });
    }

    //加载GP服务计算结果的回调函数
    function renderIsosurfaceAnalyzeResult(result) {
        var featureSet = result.value;
        var graphicsLayerIsoAnalyze = getIsoAnalyzeResultLayer();
        setIsosurfaceAnalyzeResultLayerRender(graphicsLayerIsoAnalyze, breakArray, colorArray);
        var features = featureSet.features;
        for (var i = 0; i < features.length; i++) {
            var graphic = features[i];
            graphicsLayerIsoAnalyze.add(graphic);
        }
        hideLoading();
    }
}

//计算泰森多边形thiessenPolygon
function thiessenPolygonAnalyze() {
  var urlArray = config.operatorLayers.station;
  var fieldsArray = ["STCD"];
  var sql = "1=1";
  var gisLayerAccess = new GisLayerAccess(urlArray, fieldsArray, sql, null, function (resultData) {
      var featureSet = resultData[0]; //  Value
      for (var i = 1; i < resultData.length; i++) {
          var features = resultData[i].features;
          for (var j = 0; j < features.length; j++) {
              var graphic = features[j];
              featureSet.features.push(graphic);
          }
      }
      //调用GP服务
      var url = config.map.gpServer.thiessenPolygon;
      var gp = new esri.tasks.Geoprocessor(url);
      gp.setOutputSpatialReference(map.spatialReference);
      gp.setProcessSpatialReference(map.spatialReference);
      var params = new Object();
      params.station = featureSet;
      //params.extentValue = config.map.initialextent[0] + " " + config.map.initialextent[1] + " " + config.map.initialextent[2] + " " + config.map.initialextent[3];
      //
      showLoading();
      Ext.MessageBox.alert(‘提示‘, ‘开始计算!‘);
      gp.submitJob(params, completeCallback, statusCallback, errorCallback);

      //GP服务计算完成回调函数
      function completeCallback(jobInfo) {
          if (jobInfo.jobStatus !== "esriJobFailed") {
              Ext.MessageBox.alert(‘提示‘, ‘计算完成,加载结果!‘);
              //加载GP服务计算结果
              gp.getResultData(jobInfo.jobId, "analyzeResult", renderThiessenPolygonAnalyzeResult, errorCallback);
              showLoading();
          }
      }
      //加载GP服务计算结果的回调函数
      function renderThiessenPolygonAnalyzeResult(result) {
          var featureSet = result.value;
          var graphicsLayerIsoAnalyze = getIsoAnalyzeResultLayer();
          setThiessenPolygonAnalyzeResultLayerRender(graphicsLayerIsoAnalyze);
          var features = featureSet.features;
          for (var i = 0; i < features.length; i++) {
              var graphic = features[i];
              graphicsLayerIsoAnalyze.add(graphic);
          }
      }
  });
}

function labelAnalyze(parameter, layerName){
    var breakString = "";
    //调用GP服务
    var gpUrl = config.map.gpServer.labelStationAnalyze;
    var bd = Ext.getBody();
    bd.mask("<font style=‘font-weight:bold;‘>正在计算!!!</font>", ‘x-mask-loading‘);
    var params={
            starttime:parameter.startTime,
            endtime:parameter.endTime,
            gpUrl:gpUrl
        };
    var url = Watf.REQUEST_CONTEXTPATH+"/syq/rainforgisisoSurfaceAnalyze.do";
    $.ajax({
        url: url,
        type: ‘POST‘,
        timeout: 3000,
        async:false,
        data: Ext.urlEncode(params),
        dataType:‘json‘,
        cache:false,
        error: function(XMLHttpRequest, textStatus, errorThrown){
            alert(‘错误:‘,[‘<div >‘,‘<div >‘,url,‘</div>‘,‘<div >‘,errorThrown,‘</div>‘,‘</div>‘].join(‘‘));
        },
        success: function(data){
            var gp = new esri.tasks.Geoprocessor(gpUrl);
            var id = data.jobId;
            taskid=window.setInterval(function(){
                checkstatus(id,gp);
            },500);
         }
    });

    function checkstatus(jobId,gp){
        gp.checkJobStatus(jobId,function(jobInfo){
            if(jobInfo.jobStatus ==‘esriJobSucceeded‘){
                window.clearInterval(taskid);
                //加载GP服务计算结果
                var imageParams = new esri.layers.ImageParameters();
                imageParams.format = "png";
                imageParams.transparent = true;
                imageParams.imageSpatialReference = map.spatialReference;
                gp.getResultImageLayer(jobInfo.jobId, "stationResult", imageParams,  displayResult, errorCallback);
                Ext.MessageBox.alert(‘提示‘, ‘计算完成!‘);
                //
                bd.unmask();
            }else if(jobInfo.jobStatus ==‘esriJobFailed‘ || jobInfo.jobStatus ==‘esriJobTimedOut‘){
                window.clearInterval(taskid);
                Ext.MessageBox.alert(‘提示‘, ‘生成失败!‘);
                bd.unmask();
            }
        });
    }
    function displayResult(layer) {
        var gplayer = map.getLayer(layerName);
        if(gplayer!=null)
        {
            map.removeLayer(gplayer);
        }
        gplayer=layer;
        gplayer.id = layerName;
        gplayer = map.addLayer(gplayer);
        hideLoading();
    }
}

/**
 * 雨量测站标注
 * @param {} prodInfoId
 * @param {} layerName
 */
function tsLabelAnalyze(prodInfoId, layerName){
    var breakString = "";
    //调用GP服务
    var gpUrl = config.map.gpServer.labelStationAnalyze;

    var params={
        gpUrl:gpUrl,
        id:prodInfoId
    };
    var url = Watf.REQUEST_CONTEXTPATH+"/syq/rainforgisisoTaggingAnalyze.do";

    $.ajax({
        url: url,
        type: ‘POST‘,
        timeout: 3000,
        async:false,
        data: Ext.urlEncode(params),
        dataType:‘json‘,
        cache:false,
        error: function(XMLHttpRequest, textStatus, errorThrown){
            alert(‘错误:‘,[‘<div >‘,‘<div >‘,url,‘</div>‘,‘<div >‘,errorThrown,‘</div>‘,‘</div>‘].join(‘‘));
        },
        success: function(data){
            var gp = new esri.tasks.Geoprocessor(gpUrl);
            if(null!=data){
                var id = data.jobId;
                taskid=window.setInterval(function(){
                    checkstatus(id,gp);
                },500);
            }else{
                Ext.Msg.alert(‘提示‘,‘没有该产品信息!‘);
            }
         }
    });

    function checkstatus(jobId,gp){
        gp.checkJobStatus(jobId,function(jobInfo){
            if(jobInfo.jobStatus ==‘esriJobSucceeded‘){
                window.clearInterval(taskid);
                //加载GP服务计算结果
                var imageParams = new esri.layers.ImageParameters();
                imageParams.format = "png";
                imageParams.transparent = true;
                imageParams.imageSpatialReference = map.spatialReference;
                gp.getResultImageLayer(jobInfo.jobId, "stationResult", imageParams,  displayResult, errorCallback);

                //
                bd.unmask();
            }else if(jobInfo.jobStatus ==‘esriJobFailed‘ || jobInfo.jobStatus ==‘esriJobTimedOut‘){
                window.clearInterval(taskid);
                Ext.MessageBox.alert(‘提示‘, ‘生成失败!‘);
                bd.unmask();
            }
        });
    }
    function displayResult(layer) {
        var gplayer = map.getLayer(layerName);
        if(gplayer!=null)
        {
            map.removeLayer(gplayer);
        }
        gplayer=layer;
        gplayer.id = layerName;
        gplayer = map.addLayer(gplayer);
        hideLoading();
    }
}

function thiessenPolygonAnalyzeServerRender(layerName)
{
  var urlArray = config.operatorLayers.station;
  var fieldsArray = ["STCD"];
  var sql = "1=1";
  var bd = Ext.getBody();
  bd.mask("<font style=‘font-weight:bold;‘>正在计算!!!</font>", ‘x-mask-loading‘);
  var gisLayerAccess = new GisLayerAccess(urlArray, fieldsArray, sql, null, function (resultData) {
      var featureSet = resultData[0]; //  Value
      for (var i = 1; i < resultData.length; i++) {
          var features = resultData[i].features;
          for (var j = 0; j < features.length; j++) {
              var graphic = features[j];
              featureSet.features.push(graphic);
          }
      }
      //调用GP服务
      var url = config.map.gpServer.thiessenPolygon;
      //"http://10.1.98.60/ArcGIS/rest/services/thiessenPolygon/GPServer/thiessenPolygon";
      var gp = new esri.tasks.Geoprocessor(url);
      gp.setOutputSpatialReference(map.spatialReference);
      gp.setProcessSpatialReference(map.spatialReference);
      var params = new Object();
      params.station = featureSet;
      params.boundry = "";
      params.extentValue = "";// config.map.initialextent[0] + " " + config.map.initialextent[1] + " " + config.map.initialextent[2] + " " + config.map.initialextent[3];
      //
      gp.submitJob(params, completeCallback, statusCallback, errorCallback);
      //GP服务计算完成回调函数
      function completeCallback(jobInfo) {
          if(jobInfo.jobStatus ==‘esriJobSucceeded‘){
              Ext.MessageBox.alert(‘提示‘, ‘计算完成,加载结果!‘);
              //加载GP服务计算结果
              var imageParams = new esri.layers.ImageParameters();
              imageParams.format = "png";
              imageParams.transparent = true;
              imageParams.imageSpatialReference = map.spatialReference;
              gp.getResultImageLayer(jobInfo.jobId, "analyzeResult", imageParams,  displayResult, errorCallback);
              //
              bd.unmask();
          }
          else if (jobInfo.jobStatus == "esriJobFailed") {
              Ext.MessageBox.alert(‘提示‘, ‘生成失败!‘);
              bd.unmask();
          }
      }
      function displayResult(layer) {
          var gplayer = map.getLayer(layerName);
          if(gplayer!=null)
          {
              map.removeLayer(gplayer);
          }
          gplayer=layer;
          gplayer.id = layerName;
          gplayer = map.addLayer(gplayer);
          hideLoading();
      }
  });
}

//
function dynamicLoadServerRenderData(mapServiceLayerId, url, sql, layerIndex, opacity, field, gradeMap) {
    removeMapService(mapServiceLayerId);
    //调用GP服务
    var gp = new esri.tasks.Geoprocessor(url);
    gp.setOutputSpatialReference(map.spatialReference);
    gp.setProcessSpatialReference(map.spatialReference);
    var params = new Object();
    params.Expression = sql;
    //
    showLoading();
    //Ext.MessageBox.alert(‘提示‘, ‘开始计算!‘);
    gp.submitJob(params, completeCallback, statusCallback, errorCallback);

    //GP服务计算完成回调函数
    function completeCallback(jobInfo) {
        if (jobInfo.jobStatus !== "esriJobFailed") {
            //Ext.MessageBox.alert(‘提示‘, ‘计算完成,加载结果!‘);
            //加载GP服务计算结果
            var index = url.lastIndexOf("/");
            url = url.substring(0, index);
            index = url.lastIndexOf("/");
            url = url.substring(0, index);
            url += "/MapServer";
            /*
            url = url + "/jobs/" + jobInfo.jobId;
            */
            addMapService(mapServiceLayerId, url, layerIndex, null, opacity, field, gradeMap);
            hideLoading();
        }
    }
}

//GP服务计算出错回调函数
function errorCallback(error) {
    Ext.MessageBox.alert(‘出错‘, error.toString());
    hideLoading();
}
//GP服务计算状态检查回调函数
function statusCallback(jobInfo) {
    var status = jobInfo.jobStatus;
    if (status === "esriJobFailed") {
        Ext.MessageBox.alert(‘出错‘, status.toString());
        hideLoading();
    }
    else if (status === "esriJobSucceeded") {
        hideLoading();
    }
}
时间: 2024-08-06 14:50:55

GP服务的调用(等值线面、泰森多边形、标注)的相关文章

ArcGIS API for Silverlight 调用GP服务加载等值线图层

原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现GP服务调用,这里的雨量数据是通过一个WebService获取而来,主要信息是雨量站点的经纬度坐标值和某个时间段内的降雨量值三个主要字段. 以下是核心代码部分: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pr

arcgis服务之GP服务的几点问题(附GP服务发布步骤)

最近在发布GP服务时遇到了一些以前没有遇到问题,所以对GP服务进行一下总结. 一.什么是GP服务 GP服务,即Geoprocessing Service,意为地理处理服务,是将Arctoolbox中的工具或ModelBuilder中创建的工具发布为服务,以供Arcgis API For Javascript调用工具服务,辅助分析处理功能进行开发. 二.GP服务的分类 GP服务包括两类,一类是Execute task,即同步执行任务:另外一类是Submit job,即异步提交作业. 这两种GP服务

ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分析功能,如绘制等值线.等高线.等直面.缓冲区等都是经常遇到,经过一段时间的学习和研究,查阅ESRI文档,请教他人,终于可以说是初步实现了等值线功能,这里记录下来详细的操作步骤和图片说明,一方面是对此次努力的总结,另一方面希望也能给后来用到这方面的其他同志们,起个抛砖引玉的作用. 下一篇是关于Silv

ArcGIS API for Silverlight 调用GP服务绘制等值面

原文:ArcGIS API for Silverlight 调用GP服务绘制等值面 GP服务模型如下图: 示例效果图片如下:

GIS有关GP服务的发布和调用

1.通过Modelbuilder新建工具.(注意:假如工具输出两个以上的结果,需要保存在相同文件及下,并将输入输出都设置为参数) 2.调用新建的工具,在result窗口中查看结果,工作是否正确. 3.发布服务时,参数要设置自定义,并且异步调用 4.调用参数说明: 5.参数输入世必须是字符串格式,json需要用JSON.stringify(obj);进行转换 6.调用时: usr1="https://localhost:6443/arcgis/rest/services/gp服务所在目录/gp服务

GP服务学习笔记(一)

GP服务发布的几个主要步骤: 1.发布地图服务; 2.新建相关脚本; 3.建立模型调用脚本; 4.在发布地图处理服务;5.对发布的地图处理服务进行测试,通过测试之后才进行开发. 学习过程中遇到的问题及心得: 1.一般通过测试之后的地图处理服务,通过ArcGIS API for JavaScript调用的时候一般不会有问题;所以要首先通过测试,避免浪费开发过程中的调试时间; 2.如果通过outputFeatrue=arcpy.getParemeterAsText(5),获取到的输出要素的格式是Te

通过Ajax的方式执行GP服务

概述: 在上一篇文章(Arcgis for js之GP实现缓冲区计算)介绍了Arcgis for js实现缓冲区计算,但是很多时候,我们不会用Arcgis的东西却想调用GP来实现对应的功能,怎么做呢,没错,本文将讲述如何通过ajax的方式去执行GP并返回结果. 思路: 按下F12打开谷歌的调试工具,切换到网络,再执行,可以看到GP执行时请求的url,如下: 在浏览器中分别打开1,2,3,可以开到各自的请求结果如下: 1. {"jobId":"j75ee9938cd9b450f

ArcGIS 10.1 发布使用ArcEngine自定义的GP服务

1. 新建立GP模型 在VS2010中新建一个普通的程序及,引入ArcEngine相关的dll.在该DLL中定义一个或多个GP类和一个GP工厂类.GP类要继承IGPFunction2接口,GP工厂类要继承IGPFunctionFactory接口. 下面是各个接口的一些实现方法 IGPFunction2 接口 接口意义 UID DialogCLSID { get; } 对话框的类标识,该方法在实现时直接返回为空即可. public UID DialogCLSID{ get{ return null

C#调用WebService服务(动态调用)

原文:C#调用WebService服务(动态调用) 1 创建WebService using System; using System.Web.Services; namespace WebService1 { /// <summary> /// Service1 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/", Description="测试服务")] [