Top  Previous  Next

This method calculates a matrix, based upon the nodes in NL1 and NL2.


SL1 and SL2 contains strings, identifying the records. This can be as simple as the record ID or another text.


SL1 and NL1 need to hold the same amount of items.

SL2 and NL2 need to hold the same amount of items.


Optionally SL1 and SL2 can be nil, then list index is used in the output.

If SL1 or SL2 contains all integers, the field type in the output is generated accordingly.


Dist, time, cost and directdist can be set to false/true to determine which fields should be included in the output.

Set routeobject = true, if you want the route to be part of the output.


If symmetric is true, NL2 should be the same as NL1 and only combinations in one direction between members in NL1 is part of the output.


If threads > 1, symmetric is ignored / is always false.


If you set MaxCost, it is used as a filter on the output (but it doesn't go faster).


Output files can get very big if you have many items in the lists, especially if routeobject is also true. See the notes about TGISwrite.


Syntax: MatrixOut(filename: string; GF: TGISformat; NL1,NL2: TIntegerList; SL1,SL2: TStringList; dist, time, cost, directdist, symmetric, routeobject: boolean)