/**
* @class
* A strategy class for applying a layout to the LIMB elements.
*
* The layout strategy is primarily responsible for handling overlapping LIMBs. When two or more
* LIMBs overlap it can adjust their position to prevent overlap or group them together and show
* an aggregated icon.
*
* This base class does nothing. Use one of the concrete sub-classes, e.g. DefaultLayoutStrategy.
*
* @constructor
* @param {lucid.maps.limbs.layout.LayoutStrategyOptions} options The options controlling the layout.
*/
lucid.maps.limbs.layout.LayoutStrategy = function( options )
{
this.init = function()
{
};
this.layout = function( div, position, mapDetails )
{
};
this.complete = function()
{
};
this.getMaxZIndex = function()
{
return (typeof options.maxZ === "number") ? options.maxZ : 600;
}
this.getMinZIndex = function()
{
return (typeof options.minZ === "number") ? options.minZ : 500;
}
};
/**
* @type {object}
* @property {number} [maxZ] The maximum z-index to be applied to the LIMB DOM element.
* The maximum z-index is applied to features nearest to the map view.
* If not defined, a default value of 600 is used.
* @property {number} [minZ] The minimum z-index to be applied to the LIMB DOM element.
* The minimum z-index is applied to features furthest from the map view.
* If not defined, a default value of 500 is used.
*/
lucid.maps.limbs.layout.LayoutStrategyOptions = {};