User Tools

Site Tools


api:dk11:net:tatukgis.ndk.tgis_layervector.loop_tgis_extent_string

TGIS_LayerVector.Loop(TGIS_Extent, string) method

DK11 for .NET | TatukGIS.NDK.TGIS_LayerVector.Loop | Overloads | Constructors | Fields | Methods | Properties | Events

Prepare enumerator (also known as iterator or cursor) to iterate layer.

Available also on: Delphi | Java | ActiveX.

Syntax

// C#
public TGIS_LayerVectorEnumeratorFactory Loop(
  TGIS_Extent _extent,
  string _query
);
' VisualBasic
Public Function Loop(
  ByVal _extent As TGIS_Extent,
  ByVal _query As String
) As TGIS_LayerVectorEnumeratorFactory
// Oxygene
public
  function Loop(
    _extent : TGIS_Extent;
    _query : String
  ) : TGIS_LayerVectorEnumeratorFactory; virtual;

Parameters

Name Type Description
_extent TGIS_Extent extent of items to be found; expected _extent units are in a Layer coordinate space
_query string
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.

Result

Type Description
TGIS_LayerVectorEnumeratorFactory Shape itself or nil.

Example

C#

// Indirect use
foreach (shp in layer.Loop( some_extent, "POPULATION>100000 AND AREA>50333") )
{
  dosomething();
}
 
// Direct enumerator use
TGIS_LayerVectorEnumerator en ;
en = layer.Loop( some_extent, "POPULATION>100000 AND AREA>50333").GetEnumerator() ;
while (en.MoveNext())
{
  shp = en.GetCurrent();
  dosomething();
}
en.Dispose() ; 

VisualBasic

'Indirect use
For Each shp In layer.Loop( some_extent, "POPULATION>100000 AND AREA>50333") )
  dosomething()
Next
 
'Direct enumerator use
Dim en As TGIS_LayerVectorEnumerator
en = layer.Loop( some_extent, "POPULATION>100000 AND AREA>50333").GetEnumerator()
While (en.MoveNext())
  shp = en.GetCurrent()
  dosomething()
End While
en.Dispose() ; 

References

2019/08/13 10:54