Top  Previous  Next

This method is for calculating input to the voronoi-based methods for drivetime isochrone, service areas etc.


Main input is two lists with nodes and locations. If you only have nodes or locations, set the other list parameter to nil. No more than 65535 items are allowed in the lists in total.


The lists contain your facilities or just a single facility. Isochrones are calculated for each of them and the output keeps track of which node / location was the nearest and cost. This is done for all nodes in the network.


For each facility you can define if there is an offset, i.e. a cost>0 value that is added to the cost. This can for instance be used to create drivetime regions around a number of fire-stations, which has different start times. Set parameter to nil, if offset=0 for all facilities.


Addnodes can be used to define if the calculation should be done for additional locations along long links. If the value of addnodes is, say 1 (km), and a link is 3.6 km long, additional nodes will be inserted at 0.9, 1.8 and 2.7 km in the output. No additional nodes are added if the link is shorter than 1 km.


MaxCost & MBR can both be used to define if the isochrone should be restricted in size. If MaxCost=0 and MBR=cFRNull, the whole network is covered.


Includelinks can be used to decide which links should be part of the output. Nodes are only part of the output if they are connected to at least one link, that is included. Specify nil, if all links should be included.


If you run this method in turnmode and with addnodes<>0, certain smaller details next to actual turn restrictions may come out wrong.


See also IsoPolyFast, IsoPolyRandomnization and Isochrones - overview.


Syntax: IsoPoly(NL: TIntegerList; LL: TLocationList; Offset: TCostArray; addnodes: TCost; MBR: TFloatRect; includelinks: TBitArray): TPolyGeneration