${iServer2_FindPathParameters_Title}

${iServer2_FindPathParameters_Description}

${iServer2_FindPathParameters_Remarks}
Inheritance: ParametersBase
        //最佳路径分析
        private void PathAnalyst_Click(object sender, RoutedEventArgs e)
        {
            //设置权重字段列表
            WeightFieldInfo weightFieldInfo = new WeightFieldInfo { Name = "length", TFWeightField = "SmLength", FTWeightField = "SmLength" };
            List<WeightFieldInfo> list = new List<WeightFieldInfo>();
            list.Add(weightFieldInfo);

            //设置网络分析模型
            NetworkModelSetting networkModelSetting = new NetworkModelSetting
            {
                NetworkDatasetName = "RoadNet",
                NetworkDataSourceName = "changchun",
                Tolerance = 30,
                NodeIDField = "SMNODEID",
                EdgeIDField = "SmID",
                WeightFieldInfos = list,
                TNodeIDField = "SMTNODE",
                FNodeIDField = "SMFNODE",
            };

            //设置网络分析参数
            NetworkAnalystParam networkAnalystParam = new NetworkAnalystParam
            {
                Point2Ds = points,
                IsPathsReturn = true,
                WeightName = "length",
            };

            //设置路径分析参数
            PathParam pathParam = new PathParam
            {
                NetworkAnalystParam = networkAnalystParam
            };

            //设置最佳路径分析参数
            FindPathParameters parameters = new FindPathParameters
            {
                MapName = "Changchun",
                NetworkSetting = networkModelSetting,
                PathParam = pathParam
            };

            //与服务器交换
            FindPathService service = new FindPathService("http://localhost:7080/demo");
            service.ProcessAsync(parameters);
            service.Failed += new EventHandler<ServiceFailedEventArgs>(service_Failed);
            service.ProcessCompleted += new EventHandler<NetworkAnalystEventArgs>(service_ProcessCompleted);
        }
 /// <overloads>${iServer2_FindPathService_method_ProcessAsync_overloads_D}</overloads>
 /// <summary>${iServer2_FindPathService_method_ProcessAsync_D}</summary>
 /// <param name="parameters">${iServer2_FindPathService_method_ProcessAsync_param_parameters}</param>
 public void ProcessAsync(FindPathParameters parameters)
 {
     ProcessAsync(parameters, null);
 }
        /// <summary>${iServer2_FindPathService_method_ProcessAsync_D}</summary>
        /// <param name="parameters">${iServer2_FindPathService_method_ProcessAsync_param_parameters}</param>
        /// <param name="state">${iServer2_FindPathService_method_ProcessAsync_param_state}</param>
        public void ProcessAsync(FindPathParameters parameters, object state)
        {
            if (parameters == null)
            {
                //TODO:资源
                // throw new ArgumentNullException("NetworkAnalystParameters is Null");
                throw new ArgumentNullException(SuperMap.Web.iServerJava2.Resources.ExceptionStrings.ArgumentIsNull);
            }
            if (string.IsNullOrEmpty(this.Url))
            {
                //TODO:资源
                // throw new InvalidOperationException("Url is not set");
                throw new InvalidOperationException(SuperMap.Web.iServerJava2.Resources.ExceptionStrings.InvalidUrl);
            }

            if (!base.Url.EndsWith("/"))
            {
                base.Url += '/';
            }

            base.SubmitRequest(base.Url + "commonhandler?", GetParameters(parameters),
                new EventHandler<RequestEventArgs>(request_Completed), state, false);
        }
        private System.Collections.Generic.Dictionary<string, string> GetParameters(FindPathParameters parameters)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>();

            string method = "FindPath";

            dictionary.Add("method", method);
            dictionary.Add("mapName", parameters.MapName);

            Dictionary<string, string> dict = new Dictionary<string, string>();
            dict.Add("mapName", parameters.MapName);
            dict.Add("networkSetting", NetworkModelSetting.ToJson(parameters.NetworkSetting));
            dict.Add("pathParam", PathParam.ToJson(parameters.PathParam));

            dictionary.Add("params", Bridge.CreateParams(method, dict));
            return dictionary;
        }