public void QueryByGeometry(string mapName, Geometry geometry, SpatialQueryMode spatialQueryMode, QueryParameterSet queryParameterSet, EventHandler<QueryEventArgs> completed, EventHandler<FailedEventArgs> failed) { QueryResource qr = BuildQueryResource(geometry, null, queryParameterSet, "SpatialQuery", spatialQueryMode.ToString(), null); QueryInternal(mapName, qr, completed, failed); }
/// <summary> /// 在指定的地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。 /// </summary> /// <param name="mapName">地图名。</param> /// <param name="geometry">几何对象。</param> /// <param name="spatialQueryMode">空间几何对象间的查询模式 /// <para>空间几何对象间的查询模式定义了一些几何对象之间的空间位置关系,根据这些空间关系来构建过滤条件执行查询。</para> /// <example>查询可被包含在面对象中的空间对象,与面有相离或者相邻关系的空间对象等。</example> /// </param> /// <param name="queryParameterSet">查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在queryParameters.queryParams[i]中进行设置。 </param> /// <returns>查询结果集。</returns> public QueryResult QueryByGeometry(string mapName, Geometry geometry, SpatialQueryMode spatialQueryMode, QueryParameterSet queryParameterSet) { if (string.IsNullOrEmpty(mapName)) throw new ArgumentNullException("mapName", Resources.ArgumentIsNotNull); QueryResource qrResource = new QueryResource(); if (geometry != null) { qrResource.Geometry = geometry; } else { throw new ArgumentNullException("geometry", Resources.ArgumentIsNotNull); } if (queryParameterSet != null && queryParameterSet.QueryParams != null) { qrResource.QueryParameters = queryParameterSet; } else { throw new ArgumentNullException("queryParameterSet", Resources.ArgumentIsNotNull); } qrResource.QueryMode = "SpatialQuery"; qrResource.SpatialQueryMode = spatialQueryMode.ToString(); return QueryInternal(mapName, qrResource); }