GetFeature() public method

获取与指定几何对象具有特定空间查询模式的要素。
参数 datasetNames、geometry 为空时抛出异常。 服务端处理错误时抛出异常。
public GetFeature ( string datasetNames, Geometry geometry, SpatialQueryMode spatialQueryMode, string fields ) : List
datasetNames string 数据集名称数组(datasourceName:datasetName),如 World:Capitals,必选参数。
geometry Geometry 几何对象。
spatialQueryMode SpatialQueryMode 空间查询模式。
fields string 待返回的字段数组。当该参数为 null 时,返回全部字段。
return List
示例#1
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);

        }
示例#2
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);
        }
示例#3
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);
 }
示例#4
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);
        }
示例#5
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");
 }
示例#6
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);
 }