• Public
  • Public/Protected
  • All

Class RadialLayout

This is an extension and not part of the main GoJS library. Note that the API for this class may change at any time. If you intend to use an extension in production, you should copy the code to your own source directory. Extensions can be found in the GoJS kit under the extensions or extensionsTS folders. See the Extensions intro page for more information.


Given a root Node, this arranges connected nodes in concentric rings, layered by the minimum link distance from the root.

If you want to experiment with this extension, try the Radial Layout sample.




  • Create a minimal layout that only positions Nodes that do not have a location.

    Returns RadialLayout


layerThickness : number

  • Gets or sets the thickness of each ring representing a layer.

    The default value is 100.

maxLayers : number

  • Gets or sets the maximum number of layers to be shown, in addition to the root node at layer zero.

    The default value is Infinity.

root : Node

  • Gets or sets the Node that acts as the root or central node of the radial layout.


Override cloneProtected

  • Copies properties to a cloned Layout.


    Returns void

Virtual commitLayers

  • commitLayers(): void
  • Override this method in order to create background circles indicating the layers of the radial layout. By default this method does nothing.

    Returns void

Override commitLayout

  • commitLayout(): void
  • This override positions each Node and also calls rotateNode.

    Returns void

Override createNetwork

  • Use a LayoutNetwork that always creates RadialVertexes.

    Returns LayoutNetwork

Override doLayout

Virtual rotateNode

  • rotateNode(node: Node, angle: number, sweep: number, radius: number): void
  • Override this method in order to modify each node as it is laid out. By default this method does nothing.


    • node: Node
    • angle: number
    • sweep: number
    • radius: number

    Returns void