Data 组件接口,用以访问 SuperMap iServer 数据服务组件中的REST服务,封装了与空间数据相关的一系列功能。
只能对 SuperMap REST 接口类型服务的访问。 实例化Data对象时需要使用明确的数据服务组件地址(例如:http://localhost:8090/iserver/services/data-world/rest")
示例#1
0
        public void AddFeaturesTest()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
            List<Feature> list = new List<Feature>();
            Feature feature1 = new Feature();
            //World  Capitals
            feature1.FieldNames = new string[3] { "CAPITAL", "COUNTRY", "CAP_POP" };
            feature1.FieldValues = new string[3] { "古代", "现代", "30000" };
            feature1.Geometry = new Geometry();
            feature1.Geometry.Type = GeometryType.POINT;
            feature1.Geometry.Parts = new int[1] { 1 };
            feature1.Geometry.Points = new Point2D[1];
            feature1.Geometry.Points[0] = new Point2D(50, 50);
            list.Add(feature1);

            Feature feature2 = new Feature();
            //World  Capitals
            feature2.FieldNames = new string[3] { "CAPITAL", "COUNTRY", "CAP_POP" };
            feature2.FieldValues = new string[3] { "测试", "测试", "300" };
            feature2.Geometry = new Geometry();
            feature2.Geometry.Type = GeometryType.POINT;
            feature2.Geometry.Parts = new int[1] { 1 };
            feature2.Geometry.Points = new Point2D[1];
            feature2.Geometry.Points[0] = new Point2D(50, 50);
            list.Add(feature2);

            EditResult result = data.AddFeatures("World", "Capitals", list);
            Assert.IsTrue(result.Succeed);
            Assert.AreEqual(result.Ids.Count(), 2);


            List<Feature> listUpdate = new List<Feature>();
            Feature featureUpdate = new Feature();
            //World  Capitals
            featureUpdate.Id = result.Ids[0];
            featureUpdate.FieldNames = new string[4] { "SMID", "CAPITAL", "COUNTRY", "CAP_POP" };
            featureUpdate.FieldValues = new string[4] { "166", "古代", "update现代", "300001" };
            featureUpdate.Geometry = new Geometry();
            featureUpdate.Geometry.Id = result.Ids[0];
            featureUpdate.Geometry.Type = GeometryType.POINT;
            featureUpdate.Geometry.Parts = new int[1] { 1 };
            featureUpdate.Geometry.Points = new Point2D[1];
            featureUpdate.Geometry.Points[0] = new Point2D(50, 50);
            featureUpdate.Geometry.Style = new Style();
            listUpdate.Add(featureUpdate);
            EditResult resultUpdate = data.UpdateFeatures("World", "Capitals", listUpdate);
            Assert.IsTrue(resultUpdate.Succeed);


            EditResult resultDelete = data.DeleteFeatures("World", "Capitals", result.Ids);
            Assert.IsTrue(resultDelete.Succeed);

        }
示例#2
0
 public void UpdateFeaturesTest_NUllID()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     List<Feature> list = new List<Feature>();
     Feature feature = new Feature();
     //World  Capitals
     feature.FieldNames = new string[4] { "SMID", "CAPITAL", "COUNTRY", "CAP_POP" };
     feature.FieldValues = new string[4] { "166", "古代", "update现代", "300001" };
     feature.Geometry = new Geometry();
     feature.Geometry.Id = 166;
     feature.Geometry.Type = GeometryType.POINT;
     feature.Geometry.Parts = new int[1] { 1 };
     feature.Geometry.Points = new Point2D[1];
     feature.Geometry.Points[0] = new Point2D(50, 50);
     feature.Geometry.Style = new Style();
     list.Add(feature);
     EditResult result = data.UpdateFeatures("World", "Capitals", list);
     Assert.IsFalse(result.Succeed);
     Assert.AreEqual(result.Message, "参数 Feature.Id 不合法。");
 }
示例#3
0
 public void GetDatasourceInfosTest_Error()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world1/rest");
     try
     {
         List<DatasourceInfo> datasourceInfos = data.GetDatasourceInfos();
     }
     catch (ServiceException e)
     {
         Assert.IsNotNull(e.Message, "远程服务器返回错误: (404) 未找到。");
         Assert.AreEqual(e.Code,404);
     }
 }
示例#4
0
 public void Statistic_SUM()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     double result = data.Statistic("World", "Countries", "COLOR_MAP", StatisticMode.SUM);
     Assert.IsTrue(result == 639);
 }
示例#5
0
 public void Statistic_AVERAGE()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     double result = data.Statistic("World", "Countries", "COLOR_MAP", StatisticMode.AVERAGE);
     Assert.IsTrue(result == 2.58704453441296);
 }
示例#6
0
        public void DeleteField()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
            bool createDatasetResult = data.CreateDataset("World", "testUpdate1", DatasetType.LINE);

            bool createFieldResult = data.CreateField("World", "testUpdate1", new FieldInfo() { Caption = "name", Name = "name", Type = FieldType.CHAR });
            bool deleteFieldResult = data.DeleteField("World", "testUpdate1", "name");
            data.DeleteDataset("World", "testUpdate1");

            Assert.IsTrue(deleteFieldResult);
        }
示例#7
0
 public void UpdateDatasourceInof_ErrorDatasourceName()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     try
     {
         bool succeed = data.UpdateDatasourceInfo("World", new DatasourceInfo() { Description = "世界地图1" });
     }
     catch (ServiceException exception)
     {
         Assert.IsTrue(exception.Code == 404);
     }
 }
示例#8
0
        public void UpdateDatasourceInfo()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");

            bool succeed = data.UpdateDatasourceInfo("World", new DatasourceInfo() { Description = "世界地图1" });
            Assert.IsTrue(succeed);
        }
示例#9
0
        public void GetFeatureTest_SPATIAL_ATTRIBUTEFILTER()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
            string[] datasetNames = { "World:Capitals", "World:Ocean" };

            Geometry geometry = new Geometry();
            geometry.Parts = new int[1] { 5 };
            geometry.Points = new Point2D[5];
            geometry.Points[0] = new Point2D(-45, -90);
            geometry.Points[1] = new Point2D(-45, 90);
            geometry.Points[2] = new Point2D(45, 90);
            geometry.Points[3] = new Point2D(45, -90);
            geometry.Points[4] = new Point2D(-45, -90);
            string[] fields = { "smid", "CAP_POP" };
            List<Feature> result = data.GetFeature(datasetNames, geometry, SpatialQueryMode.CONTAIN, "smid<10", fields);
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, 11);
            Assert.AreEqual(result[0].FieldValues.Length, 2);
            Assert.AreEqual(result[0].FieldNames.Length, 2);
            Assert.AreEqual(result[10].FieldNames.Length, 1);
            Assert.AreEqual(result[10].Id, 7);
        }
示例#10
0
 public void GetFeatureTest_ID()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     string[] datasetNames = { "World:Capitals", "World:Ocean" };
     int[] ids = { 1, 2, 3, 5, 7 };
     string[] fields = { "smid", "CAP_POP" };
     List<Feature> result = data.GetFeature(datasetNames, ids, fields);
     Assert.IsNotNull(result);
     Assert.AreEqual(result.Count, 10);
     Assert.AreEqual(result[0].FieldNames.Length, 2);
     Assert.AreEqual(result[0].FieldNames[0], "smid");
     Assert.AreEqual(result[0].FieldNames[1], "CAP_POP");
     Assert.AreEqual(result[0].FieldValues[0], "1");
     Assert.AreEqual(result[0].FieldValues[1], "582000.0");
     Assert.AreEqual(result[9].FieldNames.Length, 1);
     Assert.AreEqual(result[9].FieldNames[0], "smid");
     //Assert.AreEqual(result[9].FieldNames[1], null);
     //Assert.AreEqual(result[9].FieldValues[0], "7");
     //Assert.AreEqual(result[9].FieldValues[1], null);
     //Assert.AreEqual(result[9].Id, 7);
 }
示例#11
0
        public void GetFeatureTest_Buffer()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
            string[] datasetNames = { "World:Capitals", "World:Ocean" };

            Geometry geometry = new Geometry();
            geometry.Parts = new int[1] { 5 };
            geometry.Points = new Point2D[5];
            geometry.Points[0] = new Point2D(-45, -90);
            geometry.Points[1] = new Point2D(-45, 90);
            geometry.Points[2] = new Point2D(45, 90);
            geometry.Points[3] = new Point2D(45, -90);
            geometry.Points[4] = new Point2D(-45, -90);

            double bufferDistance = 0.1;
            string[] fields = { "smid", "CAP_POP" };
            List<Feature> result = data.GetFeature(datasetNames, geometry, bufferDistance, fields);
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, 118);
            Assert.AreEqual(result[0].FieldNames.Length, 2);
            Assert.AreEqual(result[0].FieldNames[0], "smid");
            Assert.AreEqual(result[0].FieldNames[1], "CAP_POP");
            Assert.AreEqual(result[0].FieldValues[0], "1");
            Assert.AreEqual(result[0].FieldValues[1], "582000.0");
            Assert.AreEqual(result[0].Geometry.Id, 1);
            Assert.AreEqual(result[0].Id, 1);
            Assert.AreEqual(result[117].FieldNames.Length, 1);
            Assert.AreEqual(result[117].FieldNames[0], "smid");
            //Assert.AreEqual(result[117].FieldNames[1], null);
            //Assert.AreEqual(result[117].FieldValues[0], "68");
            //Assert.AreEqual(result[117].FieldValues[1], null);
        }
示例#12
0
 public void GetFeatureTest_SqlByMaxFeatures()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     string[] datasetNames = { "World:Capitals", "World:Ocean" };
     List<Feature> result = data.GetFeature(datasetNames, null, 1);
     Assert.IsNotNull(result);
     Assert.AreEqual(result.Count, 2);
     Assert.AreEqual(result[0].FieldValues.Length, 9);
     Assert.AreEqual(result[0].FieldValues[6], "维尔纽斯");
     Assert.AreEqual(result[1].FieldValues.Length, 10);
     Assert.AreEqual(result[1].FieldValues[7], "120.0");
 }
示例#13
0
 public void GetFeatureTestSQL()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     string[] datasetNames = { "World:Capitals", "World:Ocean" };
     List<Feature> result = data.GetFeature(datasetNames, new QueryParameter());
     Assert.IsNotNull(result);
     Assert.AreEqual(result.Count, 235);
     Assert.AreEqual(result[0].FieldNames.Length, 9);
     Assert.AreEqual(result[0].FieldValues[6], "维尔纽斯");
     Assert.AreEqual(result[234].FieldNames.Length, 10);
     Assert.AreEqual(result[234].FieldValues[8], "1944");
     Assert.AreEqual(result[234].Id, 72);
     Assert.AreEqual(result[234].Geometry.Id, 72);
 }
示例#14
0
 public void DeleteFeaturesTest_NUllDataset()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     int[] ids = new int[] { 2, 3 };
     EditResult result = data.DeleteFeatures("World", "", ids);
     Assert.IsFalse(result.Succeed);
     Assert.AreEqual(result.Message, "参数 datasetName 不能为空。");
 }
示例#15
0
 public void GetDatasourceInfo_SourceNameError()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     try
     {
         DatasourceInfo datasourceInfo = data.GetDatasourceInfo("World1");
     }
     catch (ServiceException exception)
     {
         Assert.IsTrue(exception.Code == 404);
     }
 }
示例#16
0
        public void GetFeatureTest_BOUNDS_ATTRIBUTEFILTER()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
            string[] datasetNames = { "World:Capitals", "World:Ocean" };
            Rectangle2D bound = new Rectangle2D(new Point2D(-45, -45), new Point2D(45, 45));
            string[] fields = { "smid", "CAP_POP" };
            List<Feature> result = data.GetFeature(datasetNames, bound, "smid<60", fields);
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, 32);
            Assert.AreEqual(result[0].FieldValues.Length, 2);
            Assert.AreEqual(result[0].FieldNames.Length, 2);
            Assert.AreEqual(result[10].FieldNames.Length, 2);
            Assert.AreEqual(result[31].Id, 56);

        }
示例#17
0
 public void CreateDatasetTest()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     DatasetInfo datasetInfo = new DatasetInfo();
     datasetInfo.Name = "World4";
     datasetInfo.Type = DatasetType.POINT;
     bool result = data.CreateDataset("World", datasetInfo.Name, datasetInfo.Type);
     Assert.IsTrue(result);
     bool deleteResult = data.DeleteDataset("World", "World4");
     Assert.IsTrue(deleteResult);
 }
示例#18
0
        public void UpdateDatasourceInfo_Valid()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");

            bool succeed = data.UpdateDatasourceInfo("World", new DatasourceInfo() { Description = "世界地图1" });
            DatasourceInfo info = data.GetDatasourceInfo("World");
            Assert.IsTrue(succeed);
            Assert.IsNotNull(info);
            Assert.IsTrue(info.Description == "世界地图1");
        }
示例#19
0
        public void CopyDatasetTest()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");

            bool result = data.CopyDataset("World", "Countries", "CountriesCopy");
            Assert.IsTrue(result);

            DatasetInfo getResult = data.GetDatasetInfo("World", "CountriesCopy");
            Assert.IsNotNull(getResult);

            bool deleteResult = data.DeleteDataset("World", "CountriesCopy");
            Assert.IsTrue(deleteResult);
        }
示例#20
0
 public void GetFieldInfos()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     List<FieldInfo> fieldInfos = data.GetFieldInfos("World", "Capitals");
     Assert.IsNotNull(fieldInfos);
 }
示例#21
0
 public void GetDatasetInfoTest()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     DatasetInfo result = data.GetDatasetInfo("World", "Countries");
     Assert.IsNotNull(result);
 }
示例#22
0
 public void UpdateField()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     try
     {
         data.DeleteDataset("World", "testUpdate2");
     }
     catch { }
     bool createDatasetResult = data.CreateDataset("World", "testUpdate2", DatasetType.LINE);
     bool createFieldResult = data.CreateField("World", "testUpdate2", new FieldInfo() { Caption = "name", Name = "name", Type = FieldType.CHAR });
     bool upateFieldResult = data.UpdateField("World", "testUpdate2", "name", new FieldInfo() { Caption = "Name1" });
     FieldInfo filedInfo = data.GetFieldInfo("World", "testUpdate2", "name");
     Assert.IsTrue(filedInfo.Name == "name");
     Assert.IsTrue(filedInfo.Caption == "Name1");
 }
示例#23
0
 public void UpdateDatasetInfo()
 {
     DatasetInfo datasetInfo = new DatasetInfo();
     datasetInfo.Name = "Countries";
     datasetInfo.Type = DatasetType.POINT;
     datasetInfo.Description = "11111";
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     bool result = data.UpdateDatasetInfo("World", "Countries", datasetInfo);
     Assert.IsNotNull(result);
 }
示例#24
0
 public void Statistic_STDDEVIATION()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     double result = data.Statistic("World", "Countries", "COLOR_MAP", StatisticMode.STDDEVIATION);
     Assert.IsTrue(result == 1.09448108072884);
 }
示例#25
0
        public void GetDatasourceInfos()
        {
            Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
            List<DatasourceInfo> datasourceInfo = data.GetDatasourceInfos();

            Assert.IsNotNull(datasourceInfo);
            Assert.IsTrue(datasourceInfo.Count == 1);
            Assert.IsTrue(datasourceInfo[0] != null);
            Assert.IsTrue(datasourceInfo[0].Name == "World");
        }
示例#26
0
 public void Statistic_VARIANCE()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     double result = data.Statistic("World", "Countries", "COLOR_MAP", StatisticMode.VARIANCE);
     Assert.IsTrue(result == 1.19788883607337);
 }
示例#27
0
 public void GetDatasourceInfo()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     DatasourceInfo datasourceInfo = data.GetDatasourceInfo("World");
     Assert.IsNotNull(datasourceInfo != null);
     Assert.IsTrue(datasourceInfo.Name == "World");
 }
示例#28
0
 public void GetDatasourceInfoTest_Error()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     try
     {
         DatasourceInfo dataosurceInfo = data.GetDatasourceInfo("worl");
     }
     catch (ServiceException e)
     {
         Assert.AreEqual(e.Message, "数据源worl不存在,获取相应的数据服务组件失败");
     }
 }
示例#29
0
 public void UpdateFeaturesTest_NUllFeatures2()
 {
     Data data = new Data("http://" + ip + ":8090/iserver/services/data-world/rest");
     List<Feature> list = new List<Feature>();
     EditResult result = data.UpdateFeatures("World", "Capitals", list);
     Assert.IsFalse(result.Succeed);
     Assert.AreEqual(result.Message, "参数 targetFeatures 不能为空。");
 }