explaingit

keplergl/kepler.gl

11,818TypeScriptAudience · dataComplexity · 3/5LicenseSetup · moderate

TLDR

A browser-based tool for visualizing millions of GPS coordinates and location datasets on a map, created by Uber. Upload a CSV or GeoJSON file and instantly see dots, heatmaps, arc flows, or hexagonal grid aggregations, no code required for the demo app.

Mindmap

mindmap
  root((kepler.gl))
    What it does
      Location data viz
      Large dataset maps
      Real-time filters
    Layer types
      Heatmap
      Arc flows
      Hex grid
      Point clusters
    Two modes
      Demo app no code
      React component
    Tech Stack
      TypeScript React
      Mapbox
    Use Cases
      Trip analysis
      Logistics density
      Geospatial research
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Upload a CSV of delivery GPS coordinates and visualize route density as a heatmap to identify high-traffic zones.

USE CASE 2

Display origin-to-destination arc flows between cities using a dataset of trip records with start and end coordinates.

USE CASE 3

Embed a kepler.gl map component in a React app so users can explore their own location data interactively.

USE CASE 4

Apply time filters to a dataset of earthquake records to animate how events spread across a region over time.

Tech stack

TypeScriptReactMapboxnpm

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a free Mapbox access token to render the base map, the no-code demo app works in any browser without installation.

Use freely for any purpose, including commercial projects, as long as you retain the copyright notice.

In plain English

Kepler.gl is a web-based tool for visualizing large sets of location data on a map. It can handle millions of data points and still run in a browser, which makes it practical for datasets that would slow down most mapping tools. You can upload CSV or GeoJSON files containing coordinates, then choose how to display them: as individual dots, as a heatmap of density, as arcs between origin and destination points, or as hexagonal grid aggregations that summarize many points into regional buckets. The project has two main forms. One is a standalone demo application you can open in a browser and use directly without writing any code. You load your data, pick a layer type, adjust colors and sizes, and share or export the result. The other form is a React component that developers can embed into their own web applications. When used as a component, it connects to the application state management system and can be controlled programmatically. Both forms require a Mapbox access token to render the base map tiles underneath the data layers. The token is free to obtain from Mapbox for reasonable usage volumes. The library is installed via npm or Yarn using individual packages, since kepler.gl is split into separate modules for components, reducers, and other functionality. The tool is described as data-agnostic, meaning it works with location data regardless of what the points represent: taxi trips, earthquake records, delivery routes, or anything else that has coordinates. Filters can be applied to focus on time ranges or other attributes, and spatial aggregations happen in real time as you adjust settings. Kepler.gl is open source under the MIT license and was created by the team at Uber. The repository includes documentation, a user guide, and several example projects.

Copy-paste prompts

Prompt 1
I have a CSV with latitude, longitude, and timestamp for 500,000 taxi trips. Show me how to load it into kepler.gl and configure a hexagon aggregation layer to show pickup density.
Prompt 2
Embed kepler.gl as a React component in my Next.js app, connect it to Redux, and load a GeoJSON file of city boundaries as a polygon layer.
Prompt 3
Configure a kepler.gl arc layer that draws lines between origin and destination coordinate pairs in my CSV, colored by trip duration.
Prompt 4
Add a time playback filter to a kepler.gl map to animate data points appearing over a 30-day period and control the animation speed.
Prompt 5
Set up kepler.gl locally with my own Mapbox token and load a local GeoJSON file, show me the full setup steps including token configuration.
Open on GitHub → Explain another repo

← keplergl on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.