2019.0

2019.0

ImprovementGraph and Routing Engine

TLcdPartitionedShortestRoutePreprocessor: the return value of the preprocess method now uses generics.

2017.0

2017.0.05

ImprovementGraph and Routing Engine

LCD-7514
TLcdGraph#addEdge now throws an IllegalArgumentException with a clear message when this method is called with a start or end node that is not part of the graph.

2016.1

2016.1.26

ImprovementGraph and Routing Engine

LCD-8869
The network.numeric sample now has the option to save changes of the graph.

Bug fixGraph and Routing Engine

LCD-8871
TLcdPartitionedShortestRouteAlgorithm: The calculated shortest route could contain duplicate nodes.

2016.1.10

Bug fixGraph and Routing Engine

LCD-8378
TLcdNumericGraphEncoder#exportGraph threw an exception with a message referring to the incorrect interface when an ILcdEdgeValueFunction was used with an order > 1, while it was not an ILcdComplexEdgeValueFunction.

10.1

10.1.03

ImprovementGraph and Routing Engine

TLcdGDFModelEncoder and TLcdGDFMultiLevelTiledModelEncoder now allow configuring an ILcdOutputStreamFactory.

10.1

Upgrade considerationGraph and Routing Engine

The GDF data model now supports the unified generic model; all domain classes now implement the ILcdDataObject interface, the GDF model descriptors now implement ILcdDataModelDescriptor. To support the unified generic model, the ILcdGDFFeature interface has been modified to extend the ILcdDataObject interface. Classes implementing ILcdGDFFeature should be modified to implement the methods of ILcdDataObject. Wrappers around GDF domain classes can simply delegate these methods to the corresponding methods in the wrapped class. Since the GDF model descriptor now implements ILcdDataModelDescriptor, all elements in GDF models are required to implement ILcdDataObject. Custom domain objects wrapping GDF model elements will need to implement ILcdDataObject as well, if they are contained in a model with an GDF model descriptor.

9.1

9.1.01

Bug fixGraph and Routing Engine

A bug in the implementation of ILcdGDFLineFeature.getPoint(int) has been fixed.

9.1

ImprovementGraph and Routing Engine

LMAP-3526
The implementation of ILcdGDFLineFeature has been adjusted to make its getPoint(int) and getPointCount() methods thread-safe.

ImprovementGraph and Routing Engine

TLcdClusteredPartitioningAlgorithm now provides additional API for configuring the algorithm in case the default settings do not result in a suitable partitioning schema.

ImprovementGraph and Routing Engine

Support was added for Cross-Country-Movement (CCM) calculations. CCM allows computing the shortest route, through the field, between any two points in a geographical area. The algorithm is available in the Network API via the TLcdCrossCountryShortestRouteAlgorithm class. A custom cost function can be implemented and plugged in in the algorithm via the com.luciad.network.function.ILcdCrossCountryDistanceFunction interface.

ImprovementGraph and Routing Engine

A new package, com.luciad.network.graph.numeric, has been added to the API. This packages provides functionality for working with numerical graphs. Numerical graphs provide better performance (graph queries, memory usage) than traditional graphs, and provide direct support for working with very large, partitioned graphs.

Bug fixGraph and Routing Engine

When a node or edge is removed from a graph, the actual node or edge that is contained in the graph is now passed to the graph listeners, instead of the object which was passed to the removeNode/removeEdge method.

Upgrade considerationGraph and Routing Engine

The classes in the com.luciad.network.* packages have been generified. This mainly includes adding generic types for nodes and edges to all graph interfaces, implementations and helper classes.

Upgrade considerationGraph and Routing Engine

The signature of the following method of ILcdLimitedEditablePartitionedGraph and its implementations have been changed:
  • void removeBoundaryEdge( S aEdge, int aPartitionedGraphFireEventMode, int aGraphFireEventMode )
  • void removeBoundaryEdges( ILcdGraph aPartition, int aPartitionedGraphFireEventMode, int aGraphFireEventMode )
These methods now return the edge(s) that has/have been removed, instead of void. Custom implementations of the ILcdLimitedEditablePartitionedGraph interface should be extended accordingly.

Upgrade considerationGraph and Routing Engine

The signature of the following methods of ILcdEditableGraph and its implementations have been changed:
  • void removeNode(Object, int)
  • void removeEdge(Object, int)
These methods now return the object that has been removed, instead of void. Custom implementations of the ILcdEditableGraph interface should be extended accordingly.

8.1

8.1.05

Bug fixGraph and Routing Engine

LMAP-2747
A bug in the polygon creation algorithm of the GDF model decoder was fixed; holes in GDF faces are now decoded correctly.

8.0

8.0.11

Bug fixGraph and Routing Engine

GDF files could no longer be decoded in JRE 1.4 environements as of bug fix #7539. This has been fixed.

8.0.03

Bug fixGraph and Routing Engine

LMAP-2524
GDF features which are referred to in a GDF file from another feature or relationship, but which are not defined themselves in that file are no longer included in the model.

Bug fixGraph and Routing Engine

LMAP-2407
Decoding of GDF files no longer fails when an invalid MARC language code is encountered. Instead, a warning message is logged and the code is ignored (the TLcdGDFLanguage attribute is left empty).

Bug fixGraph and Routing Engine

LMAP-2516
TLcdGDFModelDecoder now supports non-ASCII encodings (UTF-8 and ISO 8859-1).

7.0

7.0

ImprovementGraph and Routing Engine

The order of point, line, area and complex feature records is preserved now, when converting a GDF file to a multi-leveled GDF file.

Bug fixGraph and Routing Engine

A bug in TLcdGDFModelEncoder, causing models to be encoded wrong on systems having other default file encoding than ISO-8859-1, is fixed.

6.2

6.2.02

ImprovementGraph and Routing Engine

Edge directions of Navteq datasets are now decoded correctly (the encoding of edge directions in Navteq data is not compliant with the GDF specification).

Bug fixGraph and Routing Engine

The clustered partitioning algorithm has been improved, generating better partitionings (the algorithm sometimes couldn't find any suitable partioning). Performance of the algorithm has also been improved with a factor 3-4.

6.0

6.0

Bug fixGraph and Routing Engine

A bug, causing the partitioned routing algorithm not to find the shortest route in some cases, was fixed.

5.2

5.2

ImprovementGraph and Routing Engine

The setDecodeCurviMetricPositionMeasurement flag is removed from TLcdGDFModelDecoder. The data supplier name field in the header record is used now to detect whether the data are created by a provider not supporting the curvimetric position measurement field.

ImprovementGraph and Routing Engine

As of LuciadMap 5.2, this package is no longer BETA.

ImprovementGraph and Routing Engine

As of LuciadMap 5.2, this package is no longer BETA.

Upgrade considerationGraph and Routing Engine

The com.luciad.network.graph.partition package is extended with support for partitioned graph events.

Upgrade considerationGraph and Routing Engine

TLcdGDFMultilevelTiledModelEncoder now implements ILcdModelEncoder. The method encode has been renamed to export.

Upgrade considerationGraph and Routing Engine

The boolean argument 'inverseDirection' in ILcdEdgeValueFunction has been replaced by a typesafe enumeration com.luciad.network.graph.TLcdTraversalDirection.

Upgrade considerationGraph and Routing Engine

The editing methods (addNode, removeNode, ...) of ILcdEditableGraph and ILcdLimitedEditableGraph interfaces and their implementations do no long perform any checks on the validity of their arguments. The checks on the arguments have been formulated as preconditions now, and can be checked explicitly via the corresponding 'can...' method (canAddNode, canRemoveNode). As a consequence, editing performance of graphs is increased significantly.

Upgrade considerationGraph and Routing Engine

The network.graph.partition package has been reorganized. The interface ILcdBoundaryEditablePartitionedGraph and ILcdEditablePartitionedGraph have been removed. TLcdEditablePartitionedGraph has been renamed to TLcdPartitionedGraph and extends now TLcdLimitedEditablePartitionedGraph.

Upgrade considerationGraph and Routing Engine

Event support is added to all graph interfaces and implementations. All existing calls to graph methods, requiring an ILcdFireEventMode, can be called with ILcdFireEventMode.NO_EVENT to obtain the same effect as before.

Upgrade considerationGraph and Routing Engine

All model descriptor interfaces (ILcdGDFDatasetModelDescriptor, ILcdGDFLayerModelDescriptor, IlcdGDFSectionModelDescriptor) have been replaced by concrete classes.

5.1

5.1

ImprovementGraph and Routing Engine

This package is a new LuciadMap option since v5.1.

ImprovementGraph and Routing Engine

This package is a new LuciadMap option, provided as a BETA in LuciadMap v5.1.