public QueryByDistance ( string mapName, Geometry geometry, double distance, |
||
mapName | string | 地图名称。 |
geometry | Geometry | 几何对象。 |
distance | double | 查询的距离范围。 |
queryParameterSet | 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameters.queryParams[i] 中进行设置。 /// | |
Результат |
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"); } }
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"); }
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"); } }
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); }