Map Initialization
initMap
Function
initMap(options) -> {Promise<Map>}
Returns
A Promise that delivers the Mapbox GL Map when initialized; this is the Mapbox web map object that will be used throughout the rest of the API.
Description
Initializes a Mapbox web map.
Parameter | Type | Required | Description |
---|---|---|---|
options | Object | Yes | A configuration object for the map |
options.mapDiv | String | Yes | The div ID of the web map container |
options.mapboxgl | Object | Yes | The Mapbox GL object |
options.mapboxKey | String | Yes | The Mapbox API key |
options.kineticaUrl | String | Yes | The URL of the Kinetica REST API |
options.wmsUrl | String | Yes | The URL of the Kinetica WMS endpoint |
options.center | Array<Number> | No | The center point at which the map should initialize |
options.zoom | Integer | No | The Mapbox zoom scale with which to initialize the map |
options.username | String | No | The basic auth username for the Kinetica REST API |
options.password | String | No | The basic auth password for the Kinetica REST API |
Example
Map centered on Kinetica HQ:
|
|
WMS Layer
addWmsLayer
Function
addWmsLayer(map, options) -> {Promise<Object>}
Returns
A layer parameters object; useful for testing purposes.
Description
Adds a WMS raster-styled layer to the Mapbox map.
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
options | Object | Yes | A configuration object for the WMS layer |
options.layerId | String | Yes | A unique identifier of the layer; cannot have the same ID as any other added layer |
options.layerType | String | Yes | The styling used to render the WMS image; options:
Can optionally use options.renderingOptions.layers in lieu of this property |
options.wmsUrl | String | Yes | The URL of the Kinetica WMS endpoint |
options.tableName | String | Yes | The name of the source table for the layer, containing geospatial data |
options.xAttr | String | Yes (if x,y) | The name of the column containing x values (often longitude) |
options.yAttr | String | Yes (if x,y) | The name of the column containing y values (often latitude) |
options.geoAttr | String | Yes (if WKT) | The name of the column containing WKT values |
options.before | String | No | The layer before (underneath) which to add the new layer; if specified layer ID is not found, the new layer will be added on top of all existing layers |
options.renderingOptions | Object | No | Rendering options that dictate the styling of the WMS layer; see the WMS documentation for the corresponding layer type for examples and default values: |
Example
Raster image of offices from an office table with lat & lon columns for coordinates:
|
|
updateWmsLayer
Function
updateWmsLayer(map, options) -> {Object}
Returns
An object containing the map, WMS URL, source name, layer name, query parameters, and the redraw function; useful for testing purposes
Description
Updates a WMS layer's parameters with the passed options. Useful for updating WMS output styling parameters based on UI interactions.
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
options | Object | Yes | A configuration object for the WMS layer |
options.layerId | String | Yes | The unique identifier of the layer to update |
options.wmsUrl | String | Yes | The URL of the Kinetica WMS endpoint |
options.renderingOptions | Object | No | Rendering options that dictate the styling of the WMS layer; see the WMS documentation for the corresponding layer type for examples and default values: |
Example
Update raster image of offices, turning each point into a green circle:
|
|
updateWmsLayerType
Function
updateWmsLayerType(map, layerId, layerType, debounceLimit) -> {Object}
Returns
An object containing the redraw function and the debounce limit; useful for testing purposes
Description
Changes an existing WMS layer's rendering type and sets all of its parameters to the default values. Useful for changing a layer's presentation without having to destroy the old layer and create a new one.
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
layerId | String | Yes | The unique identifier of the layer to update |
layerType | String | Yes | The type to which the layer should be updated |
debounceLimit | Number | No | The debounce limit to use as a delay between the end of panend/zoomend events; default is 2000ms |
Example
Update layer of offices to a heatmap:
|
|
removeWmsLayer
Function
removeWmsLayer(map, layerId) -> {Void}
Returns
Void
Description
Removes a WMS layer from the map, based on layer ID; this includes the layer source and event listeners
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
layerId | String | Yes | The unique identifier of the layer to remove |
Example
Remove offices layer:
|
|
addCbLegend
Function
addCbLegend(map, legendTitle, location, cbConfig) -> {Void}
Returns
Void
Description
Adds a WMS raster styled layer to the Mapbox map
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
legendTitle | String | Yes | A title to add to the top of the legend |
location | String | Yes | The location of the screen to render; e.g., top-right |
cbConfig | Object | Yes | An object containing the class-break configuration values |
cbConfig.cbVals | Array<String> | Yes | An array of class-break specifications to be shown next to the colored legend tokens |
cbConfig.pointColors | Array<String> | Yes | An array of class-break colors to be rendered as tokens next to the class breaks |
Example
Add a legend to a class break on offices by the number of employees at each; offices of up to 20 employees will be green, between 21 and 40 will be yellow, and 41 or more employees will be shaded red:
|
|
setLayerOpacity
Function
setLayerOpacity(map, layerId, opacity) -> {Void}
Returns
Void
Description
A helper function to easily set a layer's opacity
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
layerId | String | Yes | The unique identifier of the layer to modify |
opacity | Number | Yes | The opacity to assign the layer, between 0 and 1 |
Example
Set opacity of offices layer to 50%:
|
|
Cluster Layer
addClusterLayer
Function
addClusterLayer(map, options) -> {Promise}
Returns
Returns a promise that resolves with the map, cluster object, update function, and options used to generate the cluster. Useful for testing purposes.
Description
Adds a geohash cluster visualization layer to the Mapbox map
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
options | Object | Yes | A configuration object for the cluster layer |
options.layerId | String | Yes | A unique identifier for the layer; cannot have the same ID as any other added layer |
options.mapboxgl | Object | Yes | The Mapbox GL object |
options.kineticaUrl | String | Yes | The URL of the Kinetica REST API |
options.tableName | String | Yes | The name of the source table for the layer, containing geospatial data |
options.xAttr | String | Yes | The name of the column containing x values (often longitude) |
options.yAttr | String | Yes | The name of the column containing y values (often latitude) |
options.geohashAttr | String | Yes | The name of the column containing geohashes |
options.precision | Integer | Yes | The geohash precision (number of beginning geohash characters) to use on the initial database groupby of geohashes; cannot exceed the length of any geohash; higher numbers will produce a more granular view at some performance cost |
options.clusterRadius | Integer | No | The visual radius, in pixels, on the map within which to generate clusters; does not impact database performance, only client-side rendering |
options.clusterMaxZoom | Integer | No | The maximum zoom with which clusters can be generated; defaults to 14 |
options.useBbox | Boolean | No | Whether to generate clusters only within the current bounding box or not to restrict the generation area; defaults to No; when Yes, more granular, high-density clusters tend to be generated |
options.minSize | Integer | No | The minimum visual size of each cluster dot; defaults to 1 pixel |
options.maxSize | Integer | No | The maximum visual size of each cluster dot; defaults to 20 pixels |
options.minColor | String | No | The color of the smallest clusters; defaults to red; a gradient will form between this color and the one in maxColor |
options.maxColor | String | No | The color of the largest clusters; defaults to green; a gradient will form between this color and the one specified in minColor |
options.dbAggregations | Array<String> | No | An array of custom aggregations to perform at the database level at the specified precision of the geohashes; these will be included as properties for the custom client-side aggregations Note COUNT(*) is calculated by default and should not be specified as an aggregate |
options.clientAggregations | Array<Object> | No | An array of custom map/reduce aggregations to perform on the client side, for each cluster displayed at the current zoom level; aggregation configurations should be objects with the following properties:
Tip See below for an example setup using both database & client-side aggregations |
Note
A WKT column is not currently allowed when creating clusters--x/y columns must be used.
Example
Clustering of employees from an office_employee table with lat & lon columns for coordinates, each cluster calculating the total of the salaries earned by all employees located at offices within the cluster:
|
|
Events
The following events can be acted upon using the Kinetica Kickbox.js Event API
Event Name | Description |
---|---|
beforeWmsLayerAdded | Fires just before a WMS layer is added to the map |
afterWmsLayerAdded | Fires just after a WMS layer has been added to the map |
beforeClusterLayerAdded | Fires just before a cluster layer is added to the map |
afterClusterLayerAdded | Fires just after a cluster layer is added to the map |
beforeWmsLayerRemoved | Fires just before a WMS layer is removed from the map |
afterWmsLayerRemoved | Fires just after a WMS layer is removed from the map |
beforeWmsSourceRemoved | Fires just before a WMS layer is removed from the map |
afterWmsSourceRemoved | Fires just after a WMS layer is removed from the map |
beforeZoomToBounds | Fires just before zooming to bounds |
afterZoomToBounds | Fires just after zooming to bounds |
beforeWmsLayerUpdated | Fires just before a WMS layer is updated |
afterWmsLayerUpdated | Fires just before a WMS layer is updated |
on
Function
on(name, cb) -> {Void}
Returns
Void
Description
Registers a callback with the given event name; an ID can be specified to allow a subsequent unregister call by ID instead of function signature, which requires storing function references globally
Parameter | Type | Required | Description |
---|---|---|---|
name | String | Yes | The event name with which to register the listener callback |
cb | Function | Yes | The callback to invoke when the event is fired |
cb.kbFnId | String | No | The callback ID to use when unregistering the handler using offById |
Example
Log to console immediately after a WMS layer is added, and assign a callback ID of myCallbackId for subsequent use in turning this event handler off using offById:
|
|
off
Function
off(name, cb) -> {Void}
Returns
Void
Description
Unregisters a callback with the given event name and callback function
Parameter | Type | Required | Description |
---|---|---|---|
name | String | Yes | The event name from which to unregister the listener callback |
cb | Function | Yes | The callback function to unregister |
Example
Stop calling afterWmsLayerUpdateCb when afterWmsLayerUpdated events occur:
|
|
Note
As noted in on, the callback function reference passed in here must be the same reference passed to the on function
offById
Function
offById(name, cbId) -> {Void}
Returns
Void
Description
Unregisters a callback that has a kbFnId property equal to the specified cbId
Parameter | Type | Required | Description |
---|---|---|---|
name | String | Yes | The event name from which to unregister the listener callback |
cbId | String | Yes | The ID of the callback function to unregister |
Example
Stop calling the callback function with an ID of myCallbackId when afterWmsLayerUpdated events occur:
|
|
Note
This ID must match the one assigned to the callback function before calling the on function
trigger
Function
trigger(name) -> {Void}
Returns
Void
Description
Triggers a Kinetica Kickbox.js event for all listeners of the event with the specified name
Parameter | Type | Required | Description |
---|---|---|---|
name | String | Yes | The name of the event to trigger |
Example
Fire the afterWmsLayerUpdated event, triggering all listeners for that event to invoke their respective callback functions:
|
|
Identify Modes
enableIdentifyByRadiusMode
Function
enableIdentifyByRadiusMode(map, options) -> {Void}
Returns
Void
Description
Enables the identify-by-radius mode on a specified layer, after first disabling any currently active identify mode
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
options | Object | Yes | An object containing the identify-by-radius mode configuration values |
options.layerId | String | Yes | The unique identifier of the layer on which to enable identify-by-radius mode |
options.mapboxgl | Object | Yes | The Mapbox GL object |
options.MapboxDraw | Object | Yes | The Mapbox GL Draw object |
options.kineticaUrl | String | Yes | The URL of the Kinetica REST API |
options.tableName | String | Yes | The name of the source table for the layer, containing geospatial data |
options.xAttr | String | Yes (if x,y) | The name of the column containing x values (often longitude) |
options.yAttr | String | Yes (if x,y) | The name of the column containing y values (often latitude) |
options.geoAttr | String | Yes (if WKT) | The name of the column containing WKT values |
options.transformations | Array<Object> | No | An array of objects that contain two properties:
|
Note
The Mapbox GL and Mapbox GL Draw objects require a separate install from Kinetica Kickbox.js
Example
Enable geospatial filtering of data via click-and-drag of a circle on the offices map layer, prefixing hex values in the color_code column with a #:
|
|
enableIdentifyByPointMode
Function
enableIdentifyByPointMode(map) -> {Void}
Returns
Void
Description
Enables the identify-by-point mode on a specified layer, after first disabling any currently active identify mode
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
options | Object | Yes | An object containing the identify-by-point mode configuration values |
options.layerId | String | Yes | The unique identifier of the layer on which to enable identify-by-point mode |
options.mapboxgl | Object | Yes | The Mapbox GL object |
options.MapboxDraw | Object | Yes | The Mapbox GL Draw object |
options.kineticaUrl | String | Yes | The URL of the Kinetica REST API |
options.tableName | String | Yes | The name of the source table for the layer, containing geospatial data |
options.xAttr | String | Yes (if x,y) | The name of the column containing x values (often longitude) |
options.yAttr | String | Yes (if x,y) | The name of the column containing y values (often latitude) |
options.geoAttr | String | Yes (if WKT) | The name of the column containing WKT values |
options.radiusInMeters | Number | Yes | The radius (in meters) around the clicked point to use as the search area |
options.transformations | Array<Object> | No | An array of objects that contain two properties:
|
Note
The Mapbox GL and Mapbox GL Draw objects require a separate install from Kinetica Kickbox.js
Example
Enable geospatial filtering of data via click of a point on the offices map layer and applying a 200m fixed radius to determine the filtered area, prefixing hex values in the color_code column with a #:
|
|
disableIdentifyMode
Function
disableIdentifyMode(map) -> {Void}
Returns
Void
Description
Disables the currently active identify-by-radius or identify-by-point mode and unregisters all callbacks driving the user interaction with this mode
Parameter | Type | Required | Description |
---|---|---|---|
map | Object | Yes | The Mapbox web map object |
Example
Disable any active identify mode:
|
|