Geoman Options API
The GmOptions instance manages the configuration and state of Geoman controls and modes. It handles settings, controls, and layer styles, and provides methods to manage mode states.
Accessing GmOptions
The GmOptions instance is available through the options property on the Geoman instance:
const options: GmOptionsPartial = {
// configuration options
// see Configuring Geoman section for more details
};
const gm = new Geoman(map,options);
const options = gm.options;
Methods
Mode Management
enableMode
Enables a specific mode for a mode type. Returns a Promise that resolves once the mode change has completed.
options.enableMode(modeType: ModeType, modeName: ModeName): Promise<void>;
Example:
options.enableMode('draw', 'polygon');
options.enableMode('edit', 'rotate');
disableMode
Disables a specific mode for a mode type. Returns a Promise that resolves once the mode change has completed.
options.disableMode(modeType: ModeType, modeName: ModeName): Promise<void>;
Example:
options.disableMode('draw', 'polygon');
options.disableMode('edit', 'rotate');
toggleMode
Toggles a specific mode for a mode type. Returns a Promise that resolves once the mode change has completed.
options.toggleMode(modeType: ModeType, modeName: ModeName): Promise<void>;
Example:
options.toggleMode('draw', 'polygon');
options.toggleMode('edit', 'rotate');
Mode State Queries
isModeEnabled
Checks if a specific mode is currently enabled.
options.isModeEnabled(actionType: ActionType, modeName: ModeName): boolean;
Example:
const isDrawing = options.isModeEnabled('draw', 'polygon');
const isEditing = options.isModeEnabled('edit', 'rotate');
isModeAvailable
Checks if a specific mode is available for use.
options.isModeAvailable(actionType: ActionType, modeName: ModeName): boolean;
Example:
const canDraw = options.isModeAvailable('draw', 'polygon');
const canEdit = options.isModeAvailable('edit', 'rotate');
Control Options
getControlOptions
Gets the options for a specific control.
options.getControlOptions({
modeType: ModeType,
modeName: ModeName
}): ControlOptions | null;
Example:
const polygonOptions = options.getControlOptions({
modeType: 'draw',
modeName: 'polygon'
});
Dynamic Configuration Example
// Get current control options
const polygonControl = gm.options.getControlOptions({
modeType: 'draw',
modeName: 'polygon'
});
// Check mode states
const isPolygonEnabled = gm.options.isModeEnabled('draw', 'polygon');
const isRotateAvailable = gm.options.isModeAvailable('edit', 'rotate');
// Toggle modes
if (isPolygonEnabled) {
gm.options.disableMode('draw', 'polygon');
} else {
gm.options.enableMode('draw', 'polygon');
}