Area Map
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
/>
Examples
Custom Basemap
You can add a different basemap by passing in a basemap URL. You can find examples here: https://leaflet-extras.github.io/leaflet-providers/preview/
Note: you need to wrap the url in curly braces and backticks to avoid the curly braces in the URL being read as variables on your page
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
basemap={`https://tile.openstreetmap.org/{z}/{x}/{y}.png`}
/>
Using an Online GeoJSON
<AreaMap
data={orders_by_state}
areaCol=state
geoJsonUrl=https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_admin_1_states_provinces.geojson
geoId=name
value=orders
/>
Custom Tooltip
tooltipType=hover
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
tooltip={[
{id: 'zip_code', fmt: 'id', showColumnName: false, valueClass: 'text-xl font-semibold'},
{id: 'sales', fmt: 'eur', fieldClass: 'text-[grey]', valueClass: 'text-[green]'}
]}
/>
With clickable link and tooltipType=click
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
tooltipType=click
tooltip={[
{id: 'zip_code', fmt: 'id', showColumnName: false, valueClass: 'text-xl font-semibold'},
{id: 'sales', fmt: 'eur', fieldClass: 'text-[grey]', valueClass: 'text-[green]'},
{id: 'link_col', showColumnName: false, contentType: 'link', linkLabel: 'Click here', valueClass: 'font-bold mt-1'}
]}
/>
Custom Styling
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
color=#fff5d9
borderColor=#737373
borderWidth=0.5
/>
Custom Color Palette
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
colorPalette={[
['yellow', 'yellow'],
['orange', 'orange'],
['red', 'red'],
['darkred', 'darkred'],
]}
/>
Link Drilldown
Pass in a link
column to enable navigation on click of the point. These can be absolute or relative URLs
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
link=link_col
/>
Use Map as Input
Use the name
prop to set an input name for the map - when a point is clicked, it will set the input value to that row of data
<AreaMap
data={la_zip_sales}
areaCol=zip_code
geoJsonUrl='path/to/your/geoJson'
geoId=ZCTA5CE10
value=sales
valueFmt=usd
height=250
name=my_area_map
/>
Click an area on the map to see the input value get updated:
Selected value for {inputs.my_area_map}
:
{ "zip_code": {} }
Selected value for {inputs.my_area_map.zip_code}
:
Filtered Data
Legends
Categorical Legend
<AreaMap
data={grouped_locations}
lat=lat
long=long
value=Category
geoId=ZCTA5CE10
areaCol=zip_code
/>
Custom Colors
Set custom legend colors using the colorPalette
prop to match the number of categories; excess categorical options will default to standard colors.
<AreaMap
data={grouped_locations}
lat=lat
long=long
value=Category
geoId=ZCTA5CE10
areaCol=zip_code
colorPalette={['#C65D47', '#5BAF7A', '#4A8EBA', '#D35B85', '#E1C16D', '#6F5B9A', '#4E8D8D']}
/>
Scalar Legend
<AreaMap
data={grouped_locations}
lat=lat
long=long
value=sales
geoId=ZCTA5CE10
areaCol=zip_code
valueFmt=usd
/>
Custom Colors
Define scalar legend colors using the colorPalette
prop, allowing specified colors to create a gradient based on the range of values.
<AreaMap
data={grouped_locations}
lat=lat
long=long
value=sales
geoId=ZCTA5CE10
areaCol=zip_code
colorPalette={['#C65D47', '#4A8EBA']}
valueFmt=usd
/>
Required GeoJSON Data Structure
The GeoJSON data you pass to the map must be a feature collection. See here for an example
Map Resources
Below are a selection of publically available GeoJSON files that may be useful for mapping. These are from the Natural Earth Data project, and hosted by GeoJSON.xyz.
Country, State, and City Locations
Options
Areas
Query result, referenced using curly braces
- Options:
- query name
Path to source geoJSON data from - can be a URL (see Map Resources) or a file in your project.
If the file is in your static
directory in the root of your project, reference it as geoJsonUrl="/your_file.geojson"
- Options:
- URL
Column in the data that specifies the area each row belongs to.
- Options:
- column name
Property in the GeoJSON that uniquely identifies each feature.
- Options:
- geoJSON property name
Column that determines the value displayed for each area (used for color scale)
- Options:
- column name
Format string for displaying the value.
- Options:
- format string
Color Scale
Array of colors used for theming the areas based on data
- Options:
- array of colors
Minimum value to use for the color scale.
- Options:
- number
- Default:
- min of value column
Maximum value to use for the color scale.
- Options:
- number
- Default:
- max of value column
Legend
Interactivity
URL to navigate to when a area is clicked.
- Options:
- URL
Input name. Can be referenced on your page with {inputs.my_input_name}
- Options:
- string
Styling
Color for the areas. Use when you want all areas to be the same color.
- Options:
- CSS color value
Width of the border around each area.
- Options:
- pixel value
- Default:
- 0.75
Color of the border around each area.
- Options:
- CSS color value
Opacity of the areas.
- Options:
- number between 0 and 1
- Default:
- 0.8
Selected State
When area is selected: Color for the areas. Use when you want all areas to be the same color.
- Options:
- CSS color value
When area is selected: Width of the border around each area.
- Options:
- pixel value
- Default:
- 0.75
When area is selected: Color of the border around each area.
- Options:
- CSS color value
When area is selected: Opacity of the areas.
- Options:
- number between 0 and 1
- Default:
- 0.8
Tooltips
CSS class applied to the tooltip content. You can pass Tailwind classes into this prop to custom-style the tooltip
- Options:
- CSS class
Configuration for tooltips associated with each area. See below example for format
- Options:
- array of objects
tooltip
example:
tooltip={[
{id: 'zip_code', fmt: 'id', showColumnName: false, valueClass: 'text-xl font-semibold'},
{id: 'sales', fmt: 'eur', fieldClass: 'text-[grey]', valueClass: 'text-[green]'},
{id: 'zip_code', showColumnName: false, contentType: 'link', linkLabel: 'Click here', valueClass: 'font-bold mt-1'}
]}
All options available in tooltip
:
id
: column IDtitle
: custom string to use as title of fieldfmt
: format to use for valueshowColumnName
: whether to show the column name. Iffalse
, only the value will be showncontentType
: currently can only be "link"linkLabel
: text to show for a link when contentType="link"formatColumnTitle
: whether to automatically uppercase the first letter of the title. Only applies whentitle
not passed explicitlyvalueClass
: custom Tailwind classes to style the valuesfieldClass
: custom Tailwind classes to style the column names
Base Map
URL template for the basemap tiles.
- Options:
- URL
Attribution text to display on the map (e.g., "© OpenStreetMap contributors").
- Options:
- text
Optional title displayed above the map.
- Options:
- text
Starting latitude for the map center.
- Options:
- latitude coordinate
Starting longitude for the map center.
- Options:
- longitude coordinate
Initial zoom level of the map.
- Options:
- number (1 to 18)
Height of the map in pixels.
- Options:
- pixel value
- Default:
- 300