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

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相应服务的地址,使用这些开发环境提供的工具可以自己生成本地的代理类和值对象,如下图。  

网络分析与网络数据集—功能调用SOAP API_第1张图片 

网络分析与网络数据集—功能调用SOAP API_第2张图片 

我们这里还是用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的部分。  

网络分析与网络数据集—功能调用SOAP API_第3张图片

在ArcGIS 10之前SOAP API只支持路径分析、最近设施查询、服务区域分析,10新增支持OD代价矩阵、车辆路径规划、L-A,实现的方式可以参考路径分析。我们在能够使用SOAP API的情况下尽可能使用SOAP API,因为AO API会频繁调用远程的COM对象,影响系统的性能。

你可能感兴趣的:(api,网络,server,String,service,SOAP)