Find first occurrence of an item which meets extent and query. Will use RTree if available.
// C# public TGIS_Shape FindFirst( TGIS_Extent _extent, string _query, TGIS_Shape _shape, string _de9im, bool _skipDeleted );
' VisualBasic Public Function FindFirst( ByVal _extent As TGIS_Extent, ByVal _query As String, ByVal _shape As TGIS_Shape, ByVal _de9im As String, ByVal _skipDeleted As Boolean ) As TGIS_Shape
// Oxygene public function FindFirst( _extent : TGIS_Extent; _query : String; _shape : TGIS_Shape; _de9im : String; _skipDeleted : Boolean ) : TGIS_Shape; virtual;
|_extent||TGIS_Extent||extent of items to be found; the layer has been attached to the Viewer then expected _extent units are in a Viewer coordinate space; otherwise expected _extent units are in a Layer coordinate space|
|_query|| string |
|query which must be matched by item; closely mimics SQL WHERE clause; for examples you can use 'AGE >= 18'; empty (default) means that no items will match.|
|_shape||TGIS_Shape||if not nil, then only shapes matched _de9im matrix with _shape will be found|
|_de9im|| string |
|DE-9IM matrix of comparison|
|_skipDeleted|| bool |
|set a skip deleted treatment; by default deleted items will be ignored|
|TGIS_Shape||Shape itself or nil.|
Use this method to find to the first shape in the layer matching given criteria. Using _query param we can narrow the result of the shape searching down to the minimum. This should speed up our process of locating a desirable shape.
To locate a shape, simply choose an existing layer and use FindFirst method of with a proper extent and SQL query as a WHERE clause.