${REST_GetFeaturesByBufferParameters_Title}

${REST_GetFeaturesByBufferParameters_Description}

Inheritance: GetFeaturesParametersBase
コード例 #1
0
 async void dp_DrawCompleted(object sender, DrawEventArgs e)
 {
     if (e.Geometry == null)
     {
         return;
     }
     GetFeaturesByBufferParameters param = new GetFeaturesByBufferParameters
     {
         DatasetNames = new List<string> { "World:Countries" },
         BufferDistance = 10,
         Geometry = e.Geometry,
     };
     //与服务器交互
     try
     {
         GetFeaturesByBufferService ser = new GetFeaturesByBufferService(url);
         var result = await ser.ProcessAsync(param);
         if (result != null)
         {
             featureslayer.AddFeatureSet(result.Features);
         }
     }
     //与服务器交互失败
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #2
0
        private Dictionary<string, string> GetParameters(GetFeaturesByBufferParameters parameters)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>();

            if (string.IsNullOrEmpty(parameters.AttributeFilter))
            {
                dictionary.Add("getFeatureMode", "\"BUFFER\"");
            }
            else
            {
                dictionary.Add("getFeatureMode", "\"BUFFER_ATTRIBUTEFILTER\"");
                dictionary.Add("attributeFilter", parameters.AttributeFilter);
            }
            if (parameters.DatasetNames != null && parameters.DatasetNames.Count > 0)
            {
                string jsonDatasetNames = "[";
                List<string> list = new List<string>();
                for (int i = 0; i < parameters.DatasetNames.Count; i++)
                {
                    list.Add(string.Format("\"{0}\"", parameters.DatasetNames[i]));
                }
                jsonDatasetNames += string.Join(",", list.ToArray());
                jsonDatasetNames += "]";

                dictionary.Add("datasetNames", jsonDatasetNames);
            }

            if (parameters.Geometry != null)
            {
                dictionary.Add("geometry", ServerGeometry.ToJson(Bridge.ToServerGeometry(parameters.Geometry)));
            }
            else
            {
                throw new ArgumentNullException(ExceptionStrings.ArgumentIsNull);
            }
            dictionary.Add("bufferDistance", parameters.BufferDistance.ToString());

            if (parameters.Fields != null && parameters.Fields.Count > 0)
            {
                FilterParameter fp = new FilterParameter();
                fp.Fields = parameters.Fields;
                dictionary.Add("queryParameter", FilterParameter.ToJson(fp));
            }

            return dictionary;
        }
コード例 #3
0
        /// <summary>${REST_GetFeaturesByBufferService_method_ProcessAsync_D}</summary>
        /// <param name="parameters">${REST_GetFeaturesByBufferService_method_ProcessAsync_param_Parameters}</param>
        /// <param name="state">${REST_GetFeaturesByBufferService_method_ProcessAsync_param_state}</param>
        public async Task<GetFeaturesResult> ProcessAsync(GetFeaturesByBufferParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(ExceptionStrings.ArgumentIsNull);
            }
            if (string.IsNullOrEmpty(this.Url))
            {
                throw new InvalidOperationException(ExceptionStrings.InvalidUrl);
            }
            //base.Url += ".json?returnContent=true";
            base.Url += string.Format(".json?returnContent=true&debug=true&fromIndex={0}&toIndex={1}", parameters.FromIndex, parameters.ToIndex);

            var result = await base.SubmitRequest(base.Url, GetParameters(parameters), true);
            JsonObject jsonObject = JsonObject.Parse(result);
            return GetFeaturesResult.FromJson(jsonObject);
        }