Provider

Table of Contents

Provider

The default provider class

Parameters

  • props object

    • props.name string

    • props.displayName string

    • props.icon ReactElement React element

    • props.thumbnail object thumbnail size object

      • props.thumbnail.width number thumbnail width in pixels

      • props.thumbnail.height number thumbnail height in pixels

Examples

const myProvider = new Provider({
name: 'foo',
displayName: 'Foo Storage'
icon: Icon,
thumbnail: {width: 300, height: 200}
})

downloadMap

This method will be called when user select a map to load from the storage map viewer

Parameters

  • loadParams any the loadParams property of each visualization object

Examples

async downloadMap(loadParams) {
const mockResponse = {
map: {
datasets: [],
config: {},
info: {
app: 'kepler.gl',
created_at: ''
title: 'test map',
description: 'Hello this is my test dropbox map'
}
},
// pass csv here if your provider currently only support save / load file as csv
format: 'keplergl'
};
return downloadMap;
}

Returns MapResponse the map object containing dataset config info and format option

getAccessToken

This method is called to determine whether user already logged in to this provider

Returns boolean true if a user already logged in

getMapUrl

This method is called by kepler.gl demo app to pushes a new location to history, becoming the current location.

Parameters

  • fullURL boolean Whether to return the full url with domain, or just the location (optional, default true)

Returns string mapUrl

getShareUrl

This method is called after user share a map, to display the share url.

Parameters

  • fullUrl boolean Whether to return the full url with domain, or just the location (optional, default false)

Returns string shareUrl

getUserName

This method is called to get the user name of the current user. It will be displayed in the cloud provider tile.

Returns string true if a user already logged in

hasPrivateStorage

Whether this provider support upload map to a private storage. If truthy, user will be displayed with the storage save icon on the top right of the side bar.

Returns boolean

hasSharingUrl

Whether this provider support share map via a public url, if truthy, user will be displayed with a share map via url under the export map option on the top right of the side bar

Returns boolean

listMaps

This method is called to get a list of maps saved by the current logged in user.

Examples

async listMaps() {
return [
{
id: 'a',
title: 'My map',
description: 'My first kepler map',
imageUrl: 'http://',
lastModification: 1582677787000,
privateMap: false,
loadParams: {}
}
];
}

Returns Array<Viz> an array of Viz objects

login

This method will be called when user click the login button in the cloud provider tile. Upon login success, onCloudLoginSuccess has to be called to notify kepler.gl UI

Parameters

  • onCloudLoginSuccess function callbacks to be called after login success

logout

This method will be called when user click the logout button under the cloud provider tile. Upon login success, onCloudLoginSuccess has to be called to notify kepler.gl UI

Parameters

  • onCloudLogoutSuccess function callbacks to be called after logout success

uploadMap

This method will be called to upload map for saving and sharing. Kepler.gl will package map data, config, title, description and thumbnail for upload to storage. With the option to overwrite already saved map, and upload as private or public map.

Parameters

  • param Object

    • param.mapData Object the map object

      • param.mapData.map Object {datasets. config, info: {title, description}}

      • param.mapData.thumbnail Blob A thumbnail of current map. thumbnail size can be defined by provider by this.thumbnail

    • param.options Object (optional, default {})

      • param.options.overwrite boolean whether user choose to overwrite already saved map under the same name

      • param.options.isPublic boolean whether user wish to share the map with others. if isPublic is truthy, kepler will call this.getShareUrl() to display an URL they can share with others

MapResponse

The returned object of downloadMap. The response object should contain: datasets: [], config: {}, and info: {} each dataset object should be {info: {id, label}, data: {...}} to inform how kepler should process your data object, pass in format

Type: Object

Properties

  • map Object

  • format string one of 'csv': csv file string, 'geojson': geojson object, 'row': row object, 'keplergl': datasets array saved using KeplerGlSchema.save

Viz

Type: Object

Properties

  • id string An unique id

  • title string The title of the map

  • description string The description of the map

  • imageUrl string The imageUrl of the map

  • lastModification number An epoch timestamp in milliseconds

  • privateMap boolean Optional, whether if this map is private to the user, or can be accessed by others via URL

  • loadParams any A property to be passed to downloadMap