Abstract
Protected
cursorThe CSS cursor to use on the map, for this controller.
If null
, the map will fall back to the previous cursor that was set on the map.
Note that changing this cursor will update the cursor on the map's DOM node. When using multiple controllers (e.g. in a CompositeController), the controller that updates the cursor last (to a non-null value), will override any other non-null cursors of active controllers on the map.
A hook to customize retrieval of candidates at a certain pixel point. The default implementation returns the closest object under the pixel point.
The point to query, as returned by getPickPoint
The sensitivity to pick the map with, as returned by getSensitivity
The paint representations to pick the map with, as returned by getPaintRepresentations
Whether or not to consider multiple candidates, cf. isPickMultiple
A hook to customize the paint representations used to pick the map.
The default implementation always returns a list of PaintRepresentation.BODY
The event to determine paint representations for
A hook to customize at which (pixel) point the is picked. By default, GestureEvent.viewPoint is returned.
The (pixel) point to pick the map at
A hook to customize the sensitivity of a pick event. The sensitivity is the number of pixels 'padded' around the event's location used to retrieve candidates.
The default behavior returns a small sensitivity for mouse events, and a larger sensitivity for touch events. The type of event is determined by GestureEvent.inputType.
The event to determine sensitivity for
Abstract
handleA hook to customize what happens with the list of candidates, retrieved by getCandidates.
Examples:
The gesture event for which the list of candidates was retrieved
The candidates, as returned by getCandidates
Call this method to indicate that the controller's appearance has changed. Calling this method ensures the onDraw will be called during the next rendering pass.
Abstract
isA hook to determine if an event is a pick event, ie. if it should be handled by this controller.
The gesture event to check
Indicates whether getCandidates should consider multiple candidates.
When this returns false
, getCandidates stops when it has found the first (closest) feature.
Picking the closest feature is faster than considering multiple candidates.
By default, this returns false.
The event that triggers the pick
2024.0
Callback that is invoked when this controller is activated on a map. This method allows controller implementations to perform setup work.
the map on which the controller has been activated
Callback that is invoked when this controller is deactivated on a map. This method allows controller implementations to perform cleanup work. This method must return either any resolved value or a promise to indicate completion of deactivation. This allows controller implementation to perform asynchronous deactivation work. During the period between this method being called and the resolution of the deactivation promise, this controller will no longer receive input events, but will still get the opportunity to draw itself.
the map on which the controller has been deactivated
a concrete value to indicate immediate deactivation or a deactivation promise.
Callback that allows controller implementations to perform custom drawing on the map. Controller shapes and icons are drawn on top of all other content in the map. Note that the map may perform caching which may cause this method to only be invoked once. When a controller implementation's appearance changes the implementation should call invalidate on itself.
the GeoCanvas on which the controller can draw shapes.
Callback that allows controller implementations to draw labels on the map. Note that the map may perform caching which may cause this method to only be invoked once. When a controller implementation's appearance changes the implementation should call invalidate on itself.
the LabelCanvas on which the controller can draw labels.
Called when a gesture event has been received. This is not intended to be overridden by subclasses. You should override the hooks instead (isPickEvent, isPickMultiple, getSensitivity, getPickPoint, getPaintRepresentations, getCandidates and handleCandidates).
The gesture event to handle
Called when a key event has been received. This method must return a HandleEventResult value to indicate if the event was handled or not, If this method returns EVENT_IGNORED, the map will be given the opportunity to perform default key event behaviour. If default event handling is not desired, this method should return EVENT_HANDLED. (See the Controller class description for the default behavior.)
The key event to be handled. Note that this is a KeyEvent and not a DOMEvent. You can access the corresponding DOMEvent through KeyEvent.domEvent.
The key event handling result.
An event indicating that this Controller has been activated. Activated means that the controller is active on the map, and the controller's onActivate has been called.
You can use this event to set up UI elements or other listeners related to the controller and the controller's map.
Optional
context: any2021.0
An event indicating that this Controller has been deactivated. Deactivated means that the controller has been removed from the map, and the controller's onDeactivate has been called.
You can use this event to clean up UI elements or other listeners related to the controller and the controller's map.
Optional
context: any2021.0
An event indicating that this Controller is invalidated. Invalidated means that the Controller requests for its onDraw to be called during the next rendering pass (because its appearance has changed). This event fires when invalidate is called.
Optional
context: any
A base class for controllers that perform picks. For example the HoverController.
This controller can be used if you want to implement clicks / interaction with map objects under the mouse or finger.
This base class provides hooks to customize how the picking is performed, as well as a callback to handle the candidates returned by a pick.
See the Managing user input with LuciadRIA controllers tutorial for more information.
Since
2022.1