public void Buffer_ByPolygonDatasetUnion() { string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-changchun/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); BufferAnalystParameter bufferAnalystParameter = new BufferAnalystParameter(); bufferAnalystParameter.EndType = BufferEndType.ROUND; bufferAnalystParameter.SemicircleLineSegment = 4; bufferAnalystParameter.LeftDistance = new BufferDistance() { Value = 105.2 }; bufferAnalystParameter.RightDistance = new BufferDistance() { Value = 105.2 }; BufferResultSetting bufferResultSetting = new BufferResultSetting(); bufferResultSetting.DataReturnOption = new DataReturnOption() { Dataset = "resultPolygon", DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET, DeleteExistResultDataset = true }; bufferResultSetting.IsAttributeRetained = true; bufferResultSetting.IsUnion = true; try { DatasetSpatialAnalystResult result = spatialAnalyst.Buffer("WaterPoly@Changchun", bufferAnalystParameter, null, bufferResultSetting); Assert.IsTrue(result != null); Assert.IsTrue(result.Succeed); Assert.IsTrue(result.Dataset == "resultPolygon@Changchun"); Assert.IsTrue(result.Recordset != null); Assert.IsTrue(result.Recordset.Features != null); Assert.IsTrue(result.Recordset.Features.Length == 1); } catch (ServiceException e) { Assert.IsTrue(true); Assert.IsTrue(e.Code == 400); } finally { } }
public void Buffer_ByLineDatasetFlatBuffer() { string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-changchun/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); BufferAnalystParameter bufferAnalystParameter = new BufferAnalystParameter(); bufferAnalystParameter.EndType = BufferEndType.FLAT; bufferAnalystParameter.SemicircleLineSegment = 4; bufferAnalystParameter.LeftDistance = new BufferDistance() { Value = 105.2 }; bufferAnalystParameter.RightDistance = new BufferDistance() { Value = 105.2 }; QueryParameter filterQueryParameter = new QueryParameter(); filterQueryParameter.AttributeFilter = "smid=5 or smid =1"; BufferResultSetting bufferResultSetting = new BufferResultSetting(); bufferResultSetting.DataReturnOption = new DataReturnOption() { Dataset = "resultLine", DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET, DeleteExistResultDataset = true }; bufferResultSetting.IsAttributeRetained = true; try { DatasetSpatialAnalystResult result = spatialAnalyst.Buffer("Edit_Line@Changchun", bufferAnalystParameter, filterQueryParameter, bufferResultSetting); } catch (ServiceException e) { Assert.IsTrue(true); Assert.IsTrue(e.Code == 400); } }
public void Buffer_ByLineDatasetHasAttributerFilter() { string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-changchun/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); BufferAnalystParameter bufferAnalystParameter = new BufferAnalystParameter(); bufferAnalystParameter.EndType = BufferEndType.ROUND; bufferAnalystParameter.SemicircleLineSegment = 4; bufferAnalystParameter.LeftDistance = new BufferDistance() { Value = 105.2 }; bufferAnalystParameter.RightDistance = new BufferDistance() { Value = 105.2 }; QueryParameter filterQueryParameter = new QueryParameter(); filterQueryParameter.AttributeFilter = "smid=5 or smid =1"; BufferResultSetting bufferResultSetting = new BufferResultSetting(); bufferResultSetting.DataReturnOption = new DataReturnOption() { Dataset = "resultLine", DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET, DeleteExistResultDataset = true }; bufferResultSetting.IsAttributeRetained = true; DatasetSpatialAnalystResult result = spatialAnalyst.Buffer("Edit_Line@Changchun", bufferAnalystParameter, filterQueryParameter, bufferResultSetting); Assert.IsNotNull(result); Assert.IsTrue(result.Succeed); Assert.IsTrue(result.Dataset == "resultLine@Changchun"); Assert.IsTrue(result.Recordset != null); Assert.IsTrue(result.Recordset.Features != null); Assert.IsTrue(result.Recordset.Features.Length == 1); }
/// <summary> /// 根据数据集创建缓冲区。 /// </summary> /// <param name="datasetName">数据集标识。</param> /// <param name="filterQueryParameter">过滤参数,可选。设置了过滤参数后,只对数据集中满足此过滤条件的对象创建缓冲区。</param> /// <param name="bufferAnalystParameter">缓冲区分析参数,必设参数。指定缓冲距离、缓冲区端点类型等缓冲区分析需要的信息,请参见 <see cref="BufferAnalystParameter"/> 类。</param> /// <param name="bufferResultSetting">数据集缓冲区分析结果设置参数。</param> /// <returns>数据集缓冲区分析结果。</returns> /// <exception cref="ArgumentNullException">参数 datasetName 为空时抛出异常。</exception> /// <exception cref="SuperMap.Connector.Utility.ServiceException">服务端处理错误时抛出异常。</exception> /// <example> /// 以下示例代码演示如何根据数据集进行缓冲区分析。 /// <code> /// using System; /// using System.Collections.Generic; /// using System.Text; /// using SuperMap.Connector; /// using SuperMap.Connector.Utility; /// /// class Program /// { /// static void Main(string[] args) /// { /// //根据服务组件地址初始化一个SpatialAnalyst对象。 /// SpatialAnalyst spatialAnalyst = new SpatialAnalyst("http://*****:*****@Changchun"; //用来进行缓冲区分析的数据集,@符号前为数据集名称,@符号后为数据源名称。 /// /// //执行缓冲区分析。 /// DatasetSpatialAnalystResult bufferResult = spatialAnalyst.Buffer(datasetName, bufferparameter, filterQueryParameter, bufferResultSetting); /// /// Console.WriteLine(string.Format("缓冲区分析结果数据集名称为:{0}", bufferResult.Dataset)); /// Console.ReadLine(); /// } /// } /// /// //分析输出如下结果: /// //缓冲区分析结果数据集名称为:bufferResult@Changchun /// </code> /// </example> public DatasetSpatialAnalystResult Buffer(string datasetName, BufferAnalystParameter bufferAnalystParameter, QueryParameter filterQueryParameter, BufferResultSetting bufferResultSetting) { #if NET40 if (string.IsNullOrWhiteSpace(datasetName)) { throw new ArgumentNullException("datasetName", Resources.ArgumentIsNotNull); } #else if (string.IsNullOrEmpty(datasetName)) { throw new ArgumentNullException("datasetName", Resources.ArgumentIsNotNull); } #endif return _spatialAnalystProvier.Buffer(datasetName, bufferAnalystParameter, filterQueryParameter, bufferResultSetting); }
public DatasetSpatialAnalystResult Buffer(string datasetName, BufferAnalystParameter bufferAnalystParameter, QueryParameter filterQueryParameter, BufferResultSetting bufferResultSetting) { string baseUrl = string.Format("{0}/spatialanalyst/datasets/{1}/buffer.json?returnContent=true", this._serviceUrl, HttpUtility.UrlEncode(datasetName)); DatasetBufferRequestParameter parameter = new DatasetBufferRequestParameter(bufferAnalystParameter, filterQueryParameter, bufferResultSetting); string strBufferResult = SynchHttpRequest.GetRequestString(baseUrl, HttpRequestMethod.POST, JsonConvert.SerializeObject(parameter)); return JsonConvert.DeserializeObject<DatasetSpatialAnalystResult>(strBufferResult); }
/// <summary> /// 拷贝的构造函数。 /// </summary> /// <param name="bufferResultSetting">BufferResultSetting 对象实例。</param> /// <exception cref="ArgumentNullException">bufferResultSetting 为空时抛出异常。</exception> public BufferResultSetting(BufferResultSetting bufferResultSetting) { if (bufferResultSetting == null) throw new ArgumentNullException("bufferDistance", Resources.ArgumentIsNotNull); if (bufferResultSetting.DataReturnOption != null) this.DataReturnOption = new DataReturnOption(bufferResultSetting.DataReturnOption); this.IsAttributeRetained = bufferResultSetting.IsAttributeRetained; this.IsUnion = bufferResultSetting.IsUnion; }