QueryByDistance() public method

在指定的地图上,查询距离指定几何对象一定范围内的几何对象。
到指定几何对象的一定距离范围,实际是以指定几何对象为中心的一个圆,在这个圆内以及与圆相交的几何对象都能够被查询出来。
public QueryByDistance ( string mapName, Geometry geometry, double distance, QueryParameterSet queryParameterSet ) : QueryResult
mapName string 地图名称。
geometry Geometry 几何对象。
distance double 查询的距离范围。
queryParameterSet SuperMap.Connector.Utility.QueryParameterSet 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameters.queryParams[i] 中进行设置。 ///
return SuperMap.Connector.Utility.QueryResult
Example #1
0
 public void QueryByDistanceTest_ErrorgeometryIsNull()
 {
     Map map = new Map("http://" + ip + ":8090/iserver/services/map-world/rest");
     QueryParameterSet queryParameterSet = new QueryParameterSet();
     queryParameterSet.QueryOption = QueryOption.ATTRIBUTE;
     queryParameterSet.QueryParams = new QueryParameter[1];
     queryParameterSet.QueryParams[0] = new QueryParameter("CountryLabel@World");
     queryParameterSet.ReturnContent = true;
     queryParameterSet.StartRecord = 0;
     queryParameterSet.ExpectCount = 200;
     QueryResult qr = null;
     try
     {
         qr = map.QueryByDistance("世界地图", null, 1.0, queryParameterSet);
     }
     catch (ArgumentNullException e)
     {
         Assert.AreEqual(e.Message, "参数不能为空。\r\n参数名: geometry");
     }
 }
Example #2
0
 public void QueryByDistanceTest()
 {
     Map map = new Map("http://" + ip + ":8090/iserver/services/map-world/rest");
     QueryParameterSet queryParameterSet = new QueryParameterSet();
     queryParameterSet.QueryOption = QueryOption.ATTRIBUTE;
     Geometry geometry = new Geometry();
     geometry.Parts = new int[1] { 5 };
     geometry.Points = new Point2D[5];
     geometry.Points[0] = new Point2D(-90, -45);
     geometry.Points[1] = new Point2D(90, -45);
     geometry.Points[2] = new Point2D(90, 45);
     geometry.Points[3] = new Point2D(-90, 45);
     geometry.Points[4] = new Point2D(-90, -45);
     geometry.Type = GeometryType.REGION;
     queryParameterSet.QueryParams = new QueryParameter[1];
     queryParameterSet.QueryParams[0] = new QueryParameter("CountryLabel@World");
     queryParameterSet.ReturnContent = true;
     queryParameterSet.StartRecord = 0;
     queryParameterSet.ExpectCount = 200;
     QueryResult qr = map.QueryByDistance("世界地图", geometry, 1.0, queryParameterSet);
     Assert.AreEqual(qr.CurrentCount, 122);
     Assert.AreEqual(qr.TotalCount, 122);
     Assert.AreEqual(qr.Recordsets[0].Features[3].FieldValues[0], "10");
     Assert.IsNull(qr.Recordsets[0].Features[1].Geometry);
     Assert.AreEqual(qr.Recordsets[0].DatasetName, "CountryLabel@World");
 }
Example #3
0
 public void QueryByDistanceTest_ErrorDistance()
 {
     Map map = new Map("http://" + ip + ":8090/iserver/services/map-world/rest");
     QueryParameterSet queryParameterSet = new QueryParameterSet();
     queryParameterSet.QueryOption = QueryOption.ATTRIBUTE;
     Geometry geometry = new Geometry();
     geometry.Parts = new int[1] { 5 };
     geometry.Points = new Point2D[5];
     geometry.Points[0] = new Point2D(-90, -45);
     geometry.Points[1] = new Point2D(90, -45);
     geometry.Points[2] = new Point2D(90, 45);
     geometry.Points[3] = new Point2D(-90, 45);
     geometry.Points[4] = new Point2D(-90, -45);
     geometry.Type = GeometryType.REGION;
     queryParameterSet.QueryParams = new QueryParameter[1];
     queryParameterSet.QueryParams[0] = new QueryParameter("CountryLabel@World");
     queryParameterSet.ReturnContent = true;
     queryParameterSet.StartRecord = 0;
     queryParameterSet.ExpectCount = 200;
     QueryResult qr = null;
     try
     {
         qr = map.QueryByDistance("世界地图", geometry, -1.0, queryParameterSet);
     }
     catch (ArgumentOutOfRangeException e)
     {
         Assert.AreEqual(e.Message, "必须为大于零的数值。\r\n参数名: distance");
     }
 }
Example #4
0
 public void QueryByDistanceTest_Default()
 {
     Map map = new Map("http://" + ip + ":8090/iserver/services/map-world/rest");
     QueryParameterSet queryParameterSet = new QueryParameterSet();
     queryParameterSet.QueryOption = QueryOption.ATTRIBUTE;
     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);
     geometry.Type = GeometryType.REGION;
     queryParameterSet.QueryParams = new QueryParameter[1];
     queryParameterSet.QueryParams[0] = new QueryParameter("ContinentLabel@World");
     QueryResult qr = map.QueryByDistance("世界地图", geometry, 1.0, queryParameterSet);
     Assert.IsNull(qr.Recordsets);
     Assert.IsTrue(qr.ResourceInfo.Succeed);
     Assert.IsNotNull(qr.ResourceInfo.NewResourceID);
     Assert.IsNull(qr.ResourceInfo.Bounds);
     Assert.IsNotNull(qr.ResourceInfo.NewResourceLocation);
     Assert.AreEqual(qr.TotalCount, 0);
 }