您的位置:首页 > 理论基础 > 计算机网络

网络分析与网络数据集—功能调用SOAP API

2010-09-10 17:14 344 查看
ArcGIS Server发布的服务都是标准的Web Service。在ArcGIS的安装目录下(10.0的位置是ArcGIS Install Home/Server10.0/XmlSchema,以前的版本,呃,只能麻烦大家自己找下了),有很多后缀为wsdl的xml文件,它们描述了Web Service的接口。如果在你的机器上安装了ArcGIS Server的SDK,那么你可以使用ArcGIS Server预先生成好的SOAP代理类和值对象调用Server的服务及其提供的功能;如果你的机器上没有安装任何ArcGIS的东西,也没有关系,只要你有.NET或者Java的开发环境,输入ArcGIS Server相应服务的地址,使用这些开发环境提供的工具可以自己生成本地的代理类和值对象,如下图。





我们这里还是用ArcGIS Server预先生成好的代理类和值对象演示下,SOAP API如何实现路径分析的功能。

// Get the NAServer
string serverName = "heyb";
string instance = "arcgis/services";
string serviceNameAndType = "ESRISH/NAMapSample/MapServer/NAServer";
NAServerProxy naServer = new NAServerProxy("http://" + serverName + "/" + instance + "/" + serviceNameAndType);
if (naServer == null)
throw (new System.Exception("Could not find the web service."));

// Get the NAServerSolverParams
string[] naLayers = naServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
NAServerSolverParams solverParams = naServer.GetSolverParameters(naLayers[0]) as NAServerSolverParams;
// Set the NAServerRouteParams
NAServerRouteParams routeParams = solverParams as NAServerRouteParams;
routeParams.ReturnMap = false;
routeParams.ReturnRouteGeometries = true;
routeParams.ReturnStops = true;
routeParams.ReturnDirections = true;

// Geocode two addresses and create the stop network locations
PropertySet[] propSets = new PropertySet[2];
propSets[0] = GeocodeAddress(address_x1, address_y1, addressName1);
propSets[1] = GeocodeAddress(address_x2, address_y2, addressName2);
NAServerPropertySets StopsPropSets = new NAServerPropertySets();
StopsPropSets.PropertySets = propSets;
routeParams.Stops = StopsPropSets;

// Solve the Route
NAServerSolverResults solverResults;
solverResults = naServer.Solve(solverParams);


整个流程和AO是类似的,最后计算结果的处理有点差别,这里我就不贴代码了,可以参考帮助文档关于NAServerRouteResults的部分。



在ArcGIS 10之前SOAP API只支持路径分析、最近设施查询、服务区域分析,10新增支持OD代价矩阵、车辆路径规划、L-A,实现的方式可以参考路径分析。我们在能够使用SOAP API的情况下尽可能使用SOAP API,因为AO API会频繁调用远程的COM对象,影响系统的性能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐