public void GetDatasourceNames_Normal2()
 {
     string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-changchun/restjsr", ip);
     SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
     List<string> datasourceNames = spatialAnalyst.GetDatasourceNames();
     Assert.IsNotNull(datasourceNames);
     Assert.IsTrue(datasourceNames.Count == 1);
     Assert.IsTrue(datasourceNames[0] == "Changchun");
 }
 public void GetDatasourceNames_Normal1()
 {
     string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
     SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
     List<string> datasourceNames = spatialAnalyst.GetDatasourceNames();
     Assert.IsNotNull(datasourceNames);
     Assert.IsTrue(datasourceNames.Count == 2);
     Assert.IsTrue(datasourceNames[0] == "Interpolation");
     Assert.IsTrue(datasourceNames[1] == "Jingjin");
 }
 public void GetDatasourceNames_ServiceUrlError2()
 {
     string serviceUrl = string.Format("http://{0}:8090/iserver1/services/spatialanalyst-sample/restjsr", ip);
     SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
     try
     {
         List<string> datasourceNames = spatialAnalyst.GetDatasourceNames();
     }
     catch (ServiceException e)
     {
         Assert.IsTrue(e.Code == 404);
     }
 }
 public void GetDatasetInfo_Normal3()
 {
     string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
     SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
 }
 public void GetdatasetInfos_Normal1()
 {
     string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
     SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
     string datasourceName = "Jingjin";
     List<DatasetInfo> datasetInfos = spatialAnalyst.GetDatasetInfos(datasourceName);
     Assert.IsNotNull(datasetInfos);
     //Assert.IsTrue(datasetInfos.Count == 25);
     for (int i = 0; i < datasetInfos.Count; i++)
     {
         Assert.IsTrue(datasetInfos[i].DataSourceName == "Jingjin");
     }
     Assert.IsTrue(datasetInfos[0].Name == "BaseMap_L");
 }
        public void DatasetOverlay_IntersectLineAndPoint()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-overlay/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            string sourceDataset = "Sdzzd_P@overlay";
            string operateDataset = "Road_L@overlay";
            string returnDatasetName = "LineAndPointOverlay";

            DatasetOverlayResultSetting resultSetting = new DatasetOverlayResultSetting()
            {
                DataReturnOption = new DataReturnOption()
                {
                    Dataset = returnDatasetName,
                    DeleteExistResultDataset = true,
                    DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET
                },
                Tolerance = 5,
            };

            try
            {
                DatasetSpatialAnalystResult result = spatialAnalyst.Overlay(sourceDataset, null, operateDataset, null, OverlayOperationType.INTERSECT, resultSetting);

            }
            catch (ServiceException e)
            {
                Assert.IsTrue(e.Code == 400);
                Assert.IsTrue(e.Message == "错误的叠加数据集类型。");
            }
        }
        public void DatasetOverlay_IntersectOperateDatasetHasFilter()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-overlay/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            string sourceDataset = "Lake_R@overlay";
            string operateDataset = "Provices_Part@overlay";
            string returnDatasetName = "polygonOverlay";

            DatasetOverlayResultSetting resultSetting = new DatasetOverlayResultSetting()
            {
                DataReturnOption = new DataReturnOption()
                {
                    Dataset = returnDatasetName,
                    DeleteExistResultDataset = true,
                    DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET
                },
                Tolerance = 5,
            };

            QueryParameter sourceDatasetFilter = new QueryParameter()
            {
                AttributeFilter = "smid=79",
            };

            QueryParameter operateDatasetFilter = new QueryParameter()
            {
                AttributeFilter = "smid=1",
            };

            DatasetSpatialAnalystResult result = spatialAnalyst.Overlay(sourceDataset, sourceDatasetFilter, operateDataset, operateDatasetFilter, OverlayOperationType.INTERSECT, resultSetting);
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Recordset.Features.Length == 0);
        }
        public void Buffer_ByRegionSegment()
        {
            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 = 12;
            bufferAnalystParameter.LeftDistance = new BufferDistance() { Value = 2 };
            bufferAnalystParameter.RightDistance = new BufferDistance() { Value = 55557 };

            Geometry geometry = new Geometry();
            geometry.Type = GeometryType.REGION;
            Point2D point1 = new Point2D(23, 23);
            Point2D point2 = new Point2D(33, 37);
            Point2D point3 = new Point2D(33, 38);
            geometry.Points = new Point2D[] { point1, point2, point3 };
            geometry.Parts = new int[] { 3 };

            GeometrySpatialAnalystResult result = spatialAnalyst.Buffer(geometry, bufferAnalystParameter);
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Succeed);
            Assert.IsTrue(result.ResultGeometry != null);
            Assert.IsTrue(result.ResultGeometry.Type == GeometryType.REGION);
            Assert.IsTrue(result.ResultGeometry.Points.Length == 98);
        }
        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 IsoLine_gridDataset()
        {
            string gridDataset = "JingjinTerrain@Jingjin";
            ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 1000, Smoothness = 3 };
            DataReturnOption resultSetting = new DataReturnOption();
            resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET;
            resultSetting.DeleteExistResultDataset = true;
            resultSetting.Dataset = "isoLine@Jingjin";
            resultSetting.ExpectCount = 0;

            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(gridDataset, parameter, resultSetting);
            Assert.IsTrue(actualResult.Succeed);
            Assert.AreEqual(229, actualResult.Recordset.Features.Length);
            Assert.AreEqual(10, actualResult.Recordset.Fields.Length);
            Assert.AreEqual(resultSetting.Dataset, actualResult.Dataset);
        }
        public void IsoLine_PointDataset_ExtractParamtIsNull()
        {
            try
            {
                string pointDataset = "SamplesP@Interpolation";
                QueryParameter filterQueryParameter = new QueryParameter() { AttributeFilter = "SmID>0" };
                string zValueField = "AVG_WTR";
                double resolution = 3000;
                //ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 500, Smoothness = 3 };
                DataReturnOption resultSetting = new DataReturnOption();
                resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET;
                resultSetting.DeleteExistResultDataset = true;
                resultSetting.Dataset = "isoLine@Interpolation";
                resultSetting.ExpectCount = 0;

                string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
                SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
                DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(pointDataset, filterQueryParameter, zValueField, resolution, null, resultSetting);
                Assert.IsNull(actualResult);
            }
            catch (Exception e)
            {
                Assert.AreEqual("参数不能为空。\r\n参数名: parameter", e.Message);
            }
        }
        public void IsoLine_PointDataset()
        {
            string pointDataset = "SamplesP@Interpolation";
            QueryParameter filterQueryParameter = new QueryParameter() { AttributeFilter = "SmID>0" };
            string zValueField = "AVG_WTR";
            double resolution = 3000;
            ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 500, Smoothness = 3 };
            DataReturnOption resultSetting = new DataReturnOption();
            resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET;
            resultSetting.DeleteExistResultDataset = true;
            resultSetting.Dataset = "isoLine@Interpolation";
            resultSetting.ExpectCount = 0;

            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(pointDataset, filterQueryParameter, zValueField, resolution, parameter, resultSetting);
            Assert.IsTrue(actualResult.Succeed);
            Assert.AreEqual(45, actualResult.Recordset.Features.Length);
            Assert.AreEqual(10, actualResult.Recordset.Fields.Length);
            Assert.AreEqual("DZVALUE", actualResult.Recordset.Features[6].FieldNames[9]);
            Assert.AreEqual("1000.0", actualResult.Recordset.Features[6].FieldValues[9]);
            Assert.AreEqual(resultSetting.Dataset, actualResult.Dataset);
        }
        public void Interpolate_PointDatasetError()
        {
            try
            {
                string pointDataset = "SamplesP99@Interpolation";
                InterpolationKrigingParameter param = new InterpolationKrigingParameter();
                param.PixelFormat = PixelFormat.BIT16;
                param.ZValueFieldName = "AVG_TMP";
                param.ZValueScale = 1;
                param.Resolution = 3000;
                param.OutputDatasetName = "interpolateUniversalKriging";
                param.OutputDatasourceName = "Interpolation";
                param.SearchRadius = 0;
                param.Angle = 0;
                param.Nugget = 0;
                param.Range = 0;
                param.Sill = 0;
                param.VariogramMode = VariogramMode.SPHERICAL;
                param.SearchMode = SearchMode.KDTREE_FIXED_RADIUS;
                param.SearchRadius = 0;
                param.Exponent = Exponent.EXP1;//泛克吕金插值法参数
                param.Type = KrigingAlgorithmType.UniversalKriging;

                string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
                SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
                DatasetSpatialAnalystResult actualResult = spatialAnalyst.Interpolate(pointDataset, param);
                Assert.IsTrue(actualResult.Succeed);
            }
            catch (Exception e)
            {
                Assert.AreEqual("数据集SamplesP99@Interpolation不存在", e.Message);
            }
        }
 public void Interpolate_InterpoParamIsNull()
 {
     try
     {
         string pointDataset = "SamplesP@Interpolation";
         string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
         SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
         DatasetSpatialAnalystResult actualResult = spatialAnalyst.Interpolate(pointDataset, null);
         Assert.IsTrue(actualResult.Succeed);
     }
     catch (Exception e)
     {
         Assert.AreEqual("参数不能为空。\r\n参数名: parameter", e.Message);
     }
 }
        public void Interpolate_UniversalKriging()
        {
            string pointDataset = "SamplesP@Interpolation";
            InterpolationKrigingParameter param = new InterpolationKrigingParameter();
            param.PixelFormat = PixelFormat.BIT16;
            param.ZValueFieldName = "AVG_TMP";
            param.ZValueScale = 1;
            param.Resolution = 3000;
            param.OutputDatasetName = "interpolateUniversalKriging";
            param.OutputDatasourceName = "Interpolation";
            param.SearchRadius = 0;
            param.Angle = 0;
            param.Nugget = 0;
            param.Range = 0;
            param.Sill = 0;
            param.VariogramMode = VariogramMode.SPHERICAL;
            param.SearchMode = SearchMode.KDTREE_FIXED_RADIUS;
            param.SearchRadius = 0;
            param.Exponent = Exponent.EXP1;//泛克吕金插值法参数
            param.Type = KrigingAlgorithmType.UniversalKriging;

            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            DatasetSpatialAnalystResult actualResult = spatialAnalyst.Interpolate(pointDataset, param);
            Assert.IsTrue(actualResult.Succeed);

            //查询生成的栅格数据集信息
            string[] names = actualResult.Dataset.Split(new char[1] { '@' }, 3);
            string[] datasetNames = new string[1] { names[1] + ":" + names[0] };
            DatasetGridInfo datainfo = (DatasetGridInfo)spatialAnalyst.GetDatasetInfo(names[1], names[0]);
            Assert.AreEqual(DatasetType.GRID, datainfo.Type);
            Assert.AreEqual(PixelFormat.BIT16, datainfo.PixelFormat);
            //删除生成的栅格数据集
            string dataUrl = string.Format("http://{0}:8090/iserver/services/data-sample/rest", ip);
            Data data = new Data(dataUrl);
            bool deleteResult = data.DeleteDataset(names[1], names[0]);
            Assert.IsTrue(deleteResult);
        }
        public void Interpolate_RBF()
        {
            string pointDataset = "SamplesP@Interpolation";
            InterpolationRBFParameter param = new InterpolationRBFParameter();
            param.PixelFormat = PixelFormat.BIT16;
            param.ZValueFieldName = "AVG_TMP";
            param.ZValueScale = 1;
            param.Resolution = 3000;
            param.OutputDatasetName = "interpolateRbf";
            param.OutputDatasourceName = "Interpolation";
            param.SearchRadius = 0;
            param.Smooth = 0.1;
            param.Tension = 40;
            param.SearchMode = SearchMode.QUADTREE;
            param.MaxPointCountForInterpolation = 20;
            param.MaxPointCountInNode = 5;

            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            DatasetSpatialAnalystResult actualResult = spatialAnalyst.Interpolate(pointDataset, param);
            Assert.IsTrue(actualResult.Succeed);

            //查询生成的栅格数据集信息
            string[] names = actualResult.Dataset.Split(new char[1] { '@' }, 3);
            string[] datasetNames = new string[1] { names[1] + ":" + names[0] };
            DatasetGridInfo datainfo = (DatasetGridInfo)spatialAnalyst.GetDatasetInfo(names[1], names[0]);
            Assert.AreEqual(DatasetType.GRID, datainfo.Type);
            Assert.AreEqual(PixelFormat.BIT16, datainfo.PixelFormat);
            //删除生成的栅格数据集
            string dataUrl = string.Format("http://{0}:8090/iserver/services/data-sample/rest", ip);
            Data data = new Data(dataUrl);
            bool deleteResult = data.DeleteDataset(names[1], names[0]);
            Assert.IsTrue(deleteResult);
        }
        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 GetDatasetInfo_DatasetNameError()
 {
     string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
     SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
     string datasourceName = "Interpolation";
     string datasetName = "";
     try
     {
         spatialAnalyst.GetDatasetInfo(datasourceName, datasetName);
     }
     catch (ArgumentNullException e)
     {
         Assert.IsTrue(e.ParamName == "datasetName");
     }
 }
        public void Buffer_ByPoint()
        {
            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 };

            Geometry geometry = new Geometry();
            geometry.Type = GeometryType.POINT;
            Point2D point1 = new Point2D(23, 23);
            Point2D point2 = new Point2D(33, 37);
            geometry.Points = new Point2D[] { point1 };
            geometry.Parts = new int[] { 1 };

            GeometrySpatialAnalystResult result = spatialAnalyst.Buffer(geometry, bufferAnalystParameter);

            Assert.IsNotNull(result);
        }
        public void IsoLine_GridDataset_ExtractParamIsNull()
        {
            try
            {
                string gridDataset = "JingjinTerrain@Jingjin";
                //ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 1000, Smoothness = 3 };
                DataReturnOption resultSetting = new DataReturnOption();
                resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET;
                resultSetting.DeleteExistResultDataset = true;
                resultSetting.Dataset = "isoLine@Jingjin";
                resultSetting.ExpectCount = 0;

                string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
                SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
                DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(gridDataset, null, resultSetting);
                Assert.IsNull(actualResult);
            }
            catch (Exception e)
            {
                Assert.AreEqual("参数不能为空。\r\n参数名: parameter", e.Message);
            }
        }
        public void DatasetOverlay_Intersect()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-overlay/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);

            string sourceDataset = "Lake_R@overlay";
            string operateDataset = "Provices_Part@overlay";

            DatasetSpatialAnalystResult result = spatialAnalyst.Overlay(sourceDataset, operateDataset, OverlayOperationType.INTERSECT);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Succeed);
        }
        public void GetDatasetInfo_DatasetNameError1()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            string datasourceName = "Interpolation";
            string datasetName = "Temp50001";

            DatasetInfo datasetInfo = spatialAnalyst.GetDatasetInfo(datasourceName, datasetName);
            Assert.IsNull(datasetInfo);
        }
        public void DatasetOverlay_IntersectByCustomName()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-overlay/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);

            string sourceDataset = "Lake_R@overlay";
            string operateDataset = "Provices_Part@overlay";
            string returnDatasetName = "polygonOverlay";

            DatasetOverlayResultSetting resultSetting = new DatasetOverlayResultSetting()
            {
                DataReturnOption = new DataReturnOption()
                {
                    Dataset = returnDatasetName,
                    DeleteExistResultDataset = true,
                    DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET
                },
                Tolerance = 5,
            };

            DatasetSpatialAnalystResult result = spatialAnalyst.Overlay(sourceDataset, null, operateDataset, null, OverlayOperationType.INTERSECT, resultSetting);
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Succeed);
            Assert.IsTrue(result.Dataset == returnDatasetName + "@overlay");
            Assert.IsNotNull(result.Recordset);
            Assert.IsTrue(result.Recordset.Features.Length == 61);
        }
        public void IsoLine_PointsIsNull()
        {
            #region zValues定义
            double[] zValues = new double[37];
            zValues[0] = 52.98;
            zValues[1] = 25.74;
            zValues[2] = 62.94;
            zValues[3] = 50.82;
            zValues[4] = 41.36;
            zValues[5] = 41.66;
            zValues[6] = 64.66;
            zValues[7] = 23.7;
            zValues[8] = 40.74;
            zValues[9] = 3.12;
            zValues[10] = 139.32;
            zValues[11] = 41.48;
            zValues[12] = 28.48;
            zValues[13] = 61.92;
            zValues[14] = 52.22;
            zValues[15] = 44.54;
            zValues[16] = 56.54;
            zValues[17] = 85.22;
            zValues[18] = 48.94;
            zValues[19] = 55.2;
            zValues[20] = 52.8;
            zValues[21] = 27.5;
            zValues[22] = 39.34;
            zValues[23] = 56.22;
            zValues[24] = 39.12;
            zValues[25] = 27.72;
            zValues[26] = 34.84;
            zValues[27] = 49.26;
            zValues[28] = 55.14;
            zValues[29] = 333.26;
            zValues[30] = 42.76;
            zValues[31] = 26.42;
            zValues[32] = 54.32;
            zValues[33] = 50.88;
            zValues[34] = 56.96;
            zValues[35] = 35.2;
            zValues[36] = 49.14;
            #endregion

            try
            {
                double resolution = 3000;
                ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 5, Smoothness = 3 };
                DataReturnOption resultSetting = new DataReturnOption();
                resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET;
                resultSetting.DeleteExistResultDataset = true;
                resultSetting.Dataset = "isoLine@Interpolation";
                resultSetting.ExpectCount = 0;
                string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
                SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
                DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(null, zValues, resolution, parameter, resultSetting);
                Assert.IsTrue(actualResult.Succeed);
            }
            catch (Exception e)
            {
                Assert.AreEqual("点数组为null。", e.Message);
            }
        }
        public void DatasetOverlay_IntersectRegionAndLine()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-overlay/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            string sourceDataset = "Road_L@overlay";
            string operateDataset = "Provices_Part@overlay";
            string returnDatasetName = "RegionAndLineOverlay";

            DatasetOverlayResultSetting resultSetting = new DatasetOverlayResultSetting()
            {
                DataReturnOption = new DataReturnOption()
                {
                    Dataset = returnDatasetName,
                    DeleteExistResultDataset = true,
                    DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET
                },
                Tolerance = 5,
            };

            DatasetSpatialAnalystResult result = spatialAnalyst.Overlay(sourceDataset, null, operateDataset, null, OverlayOperationType.INTERSECT, resultSetting);
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Succeed);
            Assert.IsTrue(result.Recordset.Features[0].Geometry.Type == GeometryType.LINE);
        }
        public void IsoLine_Points_ExtractParamIsNull()
        {
            #region points,zValues定义
            Point2D[] points = new Point2D[37];
            double[] zValues = new double[37];
            points[0] = new Point2D() { X = 603598.5523083061, Y = 4479242.9705482665 };
            points[1] = new Point2D() { X = 604604.99079498206, Y = 4475916.8166897586 };
            points[2] = new Point2D() { X = 605069.2609360615, Y = 4473869.0317084016 };
            points[3] = new Point2D() { X = 597849.28197854816, Y = 4473651.4819765529 };
            points[4] = new Point2D() { X = 603468.453516089, Y = 4470350.5931883259 };
            points[5] = new Point2D() { X = 602541.93949575315, Y = 4469362.1116667259 };
            points[6] = new Point2D() { X = 596899.866483911, Y = 4468956.9705482665 };
            points[7] = new Point2D() { X = 611758.72419415938, Y = 4476101.0380845685 };
            points[8] = new Point2D() { X = 617993.01585132082, Y = 4476567.4355759053 };
            points[9] = new Point2D() { X = 613072.97264934448, Y = 4472425.6988057708 };
            points[10] = new Point2D() { X = 627141.18584939465, Y = 4457193.8117718957 };
            points[11] = new Point2D() { X = 625007.69450436556, Y = 4475141.6919775512 };
            points[12] = new Point2D() { X = 614985.55448035314, Y = 4470280.1570427939 };
            points[13] = new Point2D() { X = 623901.71600422217, Y = 4466666.2160042226 };
            points[14] = new Point2D() { X = 629656.95681366918, Y = 4463716.8953833878 };
            points[15] = new Point2D() { X = 630173.95911998034, Y = 4457012.0457131462 };
            points[16] = new Point2D() { X = 633914.753754354, Y = 4455004.6871154737 };
            points[17] = new Point2D() { X = 621395.54110947042, Y = 4453979.7040218329 };
            points[18] = new Point2D() { X = 611692.43432728737, Y = 4436168.7267506663 };
            points[19] = new Point2D() { X = 616883.140989274, Y = 4429417.4819765529 };
            points[20] = new Point2D() { X = 622919.669528409, Y = 4462913.665593328 };
            points[21] = new Point2D() { X = 601313.33628629846, Y = 4455293.7974051712 };
            points[22] = new Point2D() { X = 612859.7380792771, Y = 4469688.8599254563 };
            points[23] = new Point2D() { X = 619859.663734605, Y = 4437419.6528260121 };
            points[24] = new Point2D() { X = 619986.40953671513, Y = 4446273.7524305694 };
            points[25] = new Point2D() { X = 602602.790723978, Y = 4467207.2437627846 };
            points[26] = new Point2D() { X = 601017.54226018267, Y = 4466159.2634545071 };
            points[27] = new Point2D() { X = 624837.92738216463, Y = 4470922.0728896968 };
            points[28] = new Point2D() { X = 627808.4361812321, Y = 4462623.96090279 };
            points[29] = new Point2D() { X = 601553.40045858407, Y = 4460450.558360938 };
            points[30] = new Point2D() { X = 604564.45904654567, Y = 4462898.198077416 };
            points[31] = new Point2D() { X = 617863.82231001207, Y = 4457545.3749187626 };
            points[32] = new Point2D() { X = 614289.80053016217, Y = 4449796.8294377672 };
            points[33] = new Point2D() { X = 604825.97279867844, Y = 4462217.1334855324 };
            points[34] = new Point2D() { X = 629571.82174916321, Y = 4472069.90070569 };
            points[35] = new Point2D() { X = 612746.39144627, Y = 4443343.5426283237 };
            points[36] = new Point2D() { X = 626928.06164879026, Y = 4469283.120878025 };

            zValues[0] = 52.98;
            zValues[1] = 25.74;
            zValues[2] = 62.94;
            zValues[3] = 50.82;
            zValues[4] = 41.36;
            zValues[5] = 41.66;
            zValues[6] = 64.66;
            zValues[7] = 23.7;
            zValues[8] = 40.74;
            zValues[9] = 3.12;
            zValues[10] = 139.32;
            zValues[11] = 41.48;
            zValues[12] = 28.48;
            zValues[13] = 61.92;
            zValues[14] = 52.22;
            zValues[15] = 44.54;
            zValues[16] = 56.54;
            zValues[17] = 85.22;
            zValues[18] = 48.94;
            zValues[19] = 55.2;
            zValues[20] = 52.8;
            zValues[21] = 27.5;
            zValues[22] = 39.34;
            zValues[23] = 56.22;
            zValues[24] = 39.12;
            zValues[25] = 27.72;
            zValues[26] = 34.84;
            zValues[27] = 49.26;
            zValues[28] = 55.14;
            zValues[29] = 333.26;
            zValues[30] = 42.76;
            zValues[31] = 26.42;
            zValues[32] = 54.32;
            zValues[33] = 50.88;
            zValues[34] = 56.96;
            zValues[35] = 35.2;
            zValues[36] = 49.14;
            #endregion

            try
            {
                double resolution = 3000;
                //ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 5, Smoothness = 3 };
                DataReturnOption resultSetting = new DataReturnOption();
                resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET;
                resultSetting.DeleteExistResultDataset = true;
                resultSetting.Dataset = "isoLine@Interpolation";
                resultSetting.ExpectCount = 0;
                string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
                SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
                DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(points, zValues, resolution, null, resultSetting);
                Assert.IsTrue(actualResult.Succeed);
            }
            catch (Exception e)
            {
                Assert.AreEqual("参数不能为空。\r\n参数名: parameter", e.Message);
            }
        }
        public void DatasetAndGeometryOverlay_Intersect()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-overlay/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            string sourceDataset = "Sdzzd_P@overlay";
            string returnDatasetName = "LineAndPointOverlay";

            Point2D point1 = new Point2D(-119275.149508913, 2797273.49481734);
            Point2D point2 = new Point2D(2205422.68158318, 2797273.49481734);
            Point2D point3 = new Point2D(2205422.68158318, 3750228.67190104);
            Point2D point4 = new Point2D(-119275.149508913, 3750228.67190104);
            Geometry region = new Geometry()
            {
                Type = GeometryType.RECTANGLE,
                Parts = new int[] { 4 },
                Points = new Point2D[] { point1, point2, point3, point4 }
            };

            Geometry[] operateRegions = new Geometry[] { region };
            DatasetSpatialAnalystResult result = spatialAnalyst.Overlay(sourceDataset, operateRegions, OverlayOperationType.INTERSECT);
            Assert.IsNotNull(result);
            Assert.IsTrue(!string.IsNullOrWhiteSpace(result.Dataset));
        }
        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);
        }
        public void DatasetAndGeometryOverlay_IntersectHasSourceFilter()
        {
            string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-overlay/restjsr", ip);
            SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
            string sourceDataset = "Sdzzd_P@overlay";
            string returnDatasetName = "PointAndCustomRegionOverlay";

            Point2D point1 = new Point2D(-119275.149508913, 2797273.49481734);
            Point2D point2 = new Point2D(2205422.68158318, 2797273.49481734);
            Point2D point3 = new Point2D(2205422.68158318, 3750228.67190104);
            Point2D point4 = new Point2D(-119275.149508913, 3750228.67190104);
            Geometry region = new Geometry()
            {
                Type = GeometryType.RECTANGLE,
                Parts = new int[] { 4 },
                Points = new Point2D[] { point1, point2, point3, point4 }
            };

            DatasetOverlayResultSetting resultSetting = new DatasetOverlayResultSetting()
            {
                DataReturnOption = new DataReturnOption()
                {
                    Dataset = returnDatasetName,
                    DeleteExistResultDataset = true,
                    DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET
                },
                Tolerance = 5,
            };

            QueryParameter sourceDatasetFilter = new QueryParameter()
            {
                Ids = new int[] { 159, 1272 },
            };

            Geometry[] operateRegions = new Geometry[] { region };
            DatasetSpatialAnalystResult result = spatialAnalyst.Overlay(sourceDataset, sourceDatasetFilter, operateRegions, OverlayOperationType.INTERSECT, resultSetting);
            Assert.IsNotNull(result);
            Assert.IsTrue(!string.IsNullOrWhiteSpace(result.Dataset));
            Assert.IsTrue(result.Recordset.Features[0].Geometry.Type == GeometryType.POINT);
        }
 public void GetDatasetInfo_Normal2()
 {
     string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip);
     SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl);
     string datasourceName = "Interpolation";
     string datasetName = "Temp5000";
     DatasetInfo datasetInfo = spatialAnalyst.GetDatasetInfo(datasourceName, datasetName);
     Assert.IsNotNull(datasetInfo);
     Assert.IsTrue(datasetInfo is DatasetGridInfo);
     DatasetGridInfo datasetGridInfo = datasetInfo as DatasetGridInfo;
     Assert.IsNotNull(datasetGridInfo);
     Assert.IsTrue(datasetGridInfo.DataSourceName == datasourceName);
     Assert.IsTrue(datasetGridInfo.Name == datasetName);
     Assert.IsTrue(datasetGridInfo.BlockSize == 128);
     Assert.IsTrue(datasetGridInfo.PixelFormat == PixelFormat.SINGLE);
 }