获取选中的专题元素。若指定的点与专题元素上最近点的距离是在指定的容限范围,则该专题元素被选中。目前只支持标签专题图,

命名空间:  SuperMap.Mapping
程序集:  SuperMap.Mapping (in SuperMap.Mapping)
版本: dll

语法

C#
public bool HitTest(
	Point2D pt,
	double tolerance,
	ref List<GeoText> testResult
)

参数

pt
Type: SuperMap.Data..::.Point2D
要测试的点。
tolerance
Type: System..::.Double
指定的容限。
testResult
Type: System.Collections.Generic..::.List<(Of <(GeoText>)>) %
用于存储该方法得到的专题图元素,在没有得到满足条件的对象时,该参数对象的长度为0。

返回值

是否得到了专题图元素,true表示通过该方法得到了专题元素。

示例

以下代码示范了获取选中的专题元素。假设已打开world.udb 数据源。
CopyC#
private void ButtonHitTest_Click(Object sender, EventArgs e)
{

    //获得指定名称的数据集
    DatasetVector dataset = m_datasources.Datasets["World"] as DatasetVector;

    // 制作标签专题图并将其添加到图层
    ThemeLabel themeLabel = ThemeLabel.MakeDefault(dataset, "SmID", RangeMode.EqualInterval, 4);
    themeLabel.LabelExpression = "SmID";
    Layer layer = mapControl1.Map.Layers.Add(dataset, themeLabel, true);
    mapControl1.Map.ViewEntire();

    //通过给定的条件查询得到记录集
    Int32 id = 217;
    Recordset recordset = dataset.Query(new Int32[] { id }, CursorType.Static);
    recordset.MoveFirst();

    //设置要测试的点、容限和专题图元素
    Point2D hitPoint = recordset.GetGeometry().InnerPoint;
    Double tolerance = 1000;
    List<GeoText>result = new List<GeoText>();

    //返回选中的专题元素
    layer.HitTest(hitPoint, tolerance, ref result);

    recordset.Dispose();

}

请参见