Skip to main content

Map-Grid URL Parameters

Complete reference for all URL parameters supported by the map-grid embed page.

Table of Contents


Required Parameters

ParameterTypeDefaultDescription
slug / boundarystring-Location slug for fetching boundary and data (e.g., "austin", "dc", "westwood")
liststring-Alternative to slug. List slug that provides configuration from the Lists API

Note: Either slug (or boundary) or list should be provided:

  • slug: Fetches boundary and places within that geographic area
  • list: Fetches list configuration which may include an organization (boundary), search filters, and theme settings

When using list:

  • If the list has an organization, its slug is used as the boundary
  • If the list has no organization, places are fetched globally using the list's filters and the map centers on markers
  • URL parameters override list configuration (e.g., ?list=foo&editorialCategory=bar uses bar instead of list's default)

Content & Data

ParameterTypeDefaultDescription
typestring"places"Content type: "places" or "events"
vibesstring-Comma-separated list of vibes to filter by (e.g., "chill,artsy")
categoriesstring-Comma-separated list of categories to filter by
tagsstring-Comma-separated list of tags to filter by
editorial_categoriesstring-Comma-separated list of editorial categories (aliases: editorial_category, editorialCategory)
strictFilterbooleanfalseWhen true, applies strict taxonomy filtering (AND logic)
dist / radiusnumber-Radius in meters for proximity search
hideNoImageItemsboolean-Hide items that don't have images
ordering / sortstring"-score_combined"Sort order for results (see below)

Sort Order (ordering / sort)

Controls how places are sorted in the grid/list.

ValueDescription
nameAlphabetical by place name (A-Z)
-score_combinedDefault. By relevance/popularity score (highest first)
-vibe_countBy number of vibes (most vibes first)

Map Viewport

ParameterTypeDefaultDescription
latitude / latnumberFrom boundaryInitial map center latitude
longitude / lngnumberFrom boundaryInitial map center longitude
zoomnumberFrom boundaryInitial zoom level (0-22)
bearingnumber0Map rotation in degrees (0-360)
pitchnumber0Map tilt in degrees (0-85)
zoomModestring"fit-boundary"Initial zoom behavior: "fit-boundary" (fit to boundary polygon), "fit-markers" (fit to all markers), or "custom" (use explicit lat/lng/zoom)
refitMarkersOnFilterChangebooleantrueWhen true and zoomMode="fit-markers", re-zoom to fit markers whenever filters change

Zoom Mode Details

The zoomMode parameter controls how the map determines its initial viewport:

ValueBehavior
fit-boundaryDefault. Fits the map to the boundary polygon returned by the API
fit-markersCalculates bounds from all marker coordinates and fits the map to show all markers with padding
customUses explicit latitude, longitude, and zoom parameters; ignores boundary/marker bounds

Example - Fit to markers with auto-refit:

/embed/map-grid?slug=austin&zoomMode=fit-markers&refitMarkersOnFilterChange=true

Map Display

ParameterTypeDefaultDescription
mapStylestringVibemap defaultMapbox style URL (e.g., "mapbox://styles/mapbox/streets-v12")
mapHeightnumber/string"100%"Map container height (px or CSS value)
showBoundarybooleantrueShow boundary polygon on map
showMarkersbooleantrueShow place/event markers
showMarkersOutOfBoundarybooleanAutoShow markers outside boundary (auto-enabled with radius/strictFilter)
showMapCardsbooleantrueShow info cards when clicking markers
showHeatbooleantrueShow heatmap layer
map3dbooleanfalseLegacy 3D mode (use terrain3d instead)

3D & Effects (styleConfig)

These parameters control Mapbox GL terrain, weather effects, and layer visibility.

Terrain

ParameterTypeDefaultDescription
terrain3dbooleanfalseEnable 3D terrain elevation
terrainExaggerationnumber1.0Terrain height multiplier (0.1-3.0)
buildings3dbooleanfalseEnable 3D building extrusions
hillshadebooleanfalseEnable hillshade relief shading

Weather Effects

ParameterTypeDefaultDescription
fogbooleanfalseEnable atmospheric fog effect
fogDistancenumber10Fog visibility distance (1-20 km)
snownumber/booleanfalseSnow effect intensity (0-1, or true for 0.5)
rainnumber/booleanfalseRain effect intensity (0-1, or true for 0.5)

Layer Visibility

ParameterTypeDefaultDescription
hideLayersstring-Comma-separated layer IDs to hide (e.g., "poi-label,road-label")
showLayersstring-Comma-separated layer IDs to show (overrides theme defaults)

Common Layer IDs: poi-label, road-label, transit-label, water-label, place-label, building, road, landuse


Markers

ParameterTypeDefaultDescription
markerStylestring"mixed"Marker display style: "mixed", "icons", "images", "only_featured"
markerLabelsstring"hide"Label display: "hide", "featured", "all"
maxImageMarkersnumberTheme defaultMax number of image markers to show
maxIconMarkersnumberTheme defaultMax number of icon markers to show

Location Dots

Shows small dots at every GeoJSON location regardless of clustering, marker limits, or other display restrictions. Useful for showing the full extent of data when markers are limited.

ParameterTypeDefaultDescription
showDotsbooleanfalseEnable dots at all GeoJSON locations
dotsColorstringTheme accentDot fill color (hex, e.g., "9B59B6" or "#9B59B6")
dotsRadiusnumber4Dot radius in pixels
dotsOpacitynumber1Dot opacity (0-1)
dotsStrokeColorstring-Optional stroke/outline color for dots
dotsStrokeWidthnumber0Stroke width in pixels (only applies if color is set)

Example - Show Dots with Custom Styling

/embed/map-grid?slug=austin&showDots=true&dotsColor=4a90e2&dotsRadius=3&dotsOpacity=0.5

Clustering

ParameterTypeDefaultDescription
shouldClusterbooleanfalseEnable marker clustering
clusterRadiusnumberTheme defaultPixel radius for clustering (typically 35-80)
clusterMaxZoomnumberTheme defaultMax zoom level for clustering (integer, typically 14-18)

Grouping (Co-located Markers)

Groups markers that are at the same location (e.g., multiple events at the same venue). When clicked, groups expand to show individual items using either "spider" mode (circular spread) or "list" mode (scrollable popup).

ParameterTypeDefaultDescription
enableGroupingbooleantrueEnable grouping of co-located markers
groupingTolerancenumber3Distance in meters within which items are considered co-located
spiderModeMaxItemsnumber8Max items for "spider" expansion (circular spread); larger groups show a scrollable list instead

How Grouping Works

  1. Detection: Items within groupingTolerance meters of each other are grouped together
  2. Display: Groups show a purple marker with a count badge indicating the number of items
  3. Expansion modes:
    • Spider mode (≤ spiderModeMaxItems): Items spread out in a circle around the centroid with connecting lines
    • List mode (> spiderModeMaxItems): A scrollable popup appears with all items listed
  4. Collapse: Click the X button at the centroid (spider mode) or close the popup (list mode)

Grouping vs Clustering

FeatureGroupingClustering
PurposeItems at the same address/venueVisual decluttering of nearby markers
Tolerance~3 meters (same building)35-80 pixels (screen distance)
ExpansionSpider web or scrollable listZoom to cluster bounds
ColorPurpleTeal (places) or Red (events)
WhenAlways (co-located items exist)When zoomed out

Both features can be enabled simultaneously - clustering happens at zoom-out levels, grouping handles co-located items at any zoom level.


Boundary

Display

ParameterTypeDefaultDescription
boundaryFilterstring-Filter to specific polygon by name (for MultiPolygon boundaries)
showBoundarySelectorListbooleantrueShow boundary selector dropdown for MultiPolygon boundaries
boundarySelectorLabelstring"Boundaries"Custom label for boundary selector (e.g., "Neighborhoods", "Districts")

Styling

ParameterTypeDefaultDescription
boundaryFillColorstring-Fill color (hex, e.g., "#ff0000" or "%23ff0000" URL-encoded)
boundaryFillOpacitynumber0Fill opacity (0-1)
boundaryLineColorstring-Line color (hex)
boundaryLineOpacitynumber1Line opacity (0-1)
boundaryLineWidthnumber2Line width in pixels

Filters

ParameterTypeDefaultDescription
search / searchTermstring""Pre-populate the search filter with an initial query

Filter Visibility

ParameterTypeDefaultDescription
showFiltersbooleantrueShow filter UI
showVibeFilterbooleantrueShow vibes filter
showCategoryFilterbooleanAutoShow categories filter (auto for places)
showTagFilterbooleantrueShow tags filter
showSearchFilterbooleantrueShow search input
showTopLevelFiltersbooleantrueShow filters at top level (vs inside map)
showItemCountOnFiltersbooleantrueShow item counts on filter chips

Filter Behavior

ParameterTypeDefaultDescription
filterViewModestring"horizontal"Filter layout: "horizontal" or "tabbed"
filterSelectionModestring"auto"Selection mode: "single", "multiple", "auto"
filterBehaviorstring"trapped"Navigation behavior when taxonomy filters are passed (see below)
multiSelectTaxonomiesarray[]JSON array of taxonomy names that allow multi-select
taxonomySortOrderstring"count"Sort order per taxonomy (see below)

Taxonomy Sort Order (taxonomySortOrder)

Controls how filter chips are sorted within each taxonomy. Default is count (most items first).

Format: "taxonomy:order,taxonomy:order" — comma-separated key:value pairs

Values:

ValueDescription
countDefault. Sort by item count (most items first), then alphabetically
alphaAlphabetical sorting (theme order → color → A-Z)

Examples:

# All taxonomies alphabetical
taxonomySortOrder=vibes:alpha,categories:alpha,tags:alpha

# Categories by count, vibes alphabetical
taxonomySortOrder=categories:count,vibes:alpha

# Just change tags to alphabetical (others stay as count)
taxonomySortOrder=tags:alpha

Filter Behavior Values (filterBehavior)

Controls how users can navigate taxonomy hierarchies when a taxonomy filter is passed via URL with strictFilter=true.

ValueDescription
trappedDefault. User is locked within the passed taxonomy. Only the passed category/vibe/tag and its children are shown. User cannot navigate to parent/sibling taxonomies.
selectedThe passed filter is pre-selected, but user can deselect it to see parent-level filters. Allows escaping the passed taxonomy.
openCurrent behavior - all taxonomies from returned items are shown, regardless of what was passed.

Important Notes:

  • Only applies when strictFilter=true. Without strictFilter, the parameter is ignored and behavior defaults to open.
  • If multiple taxonomy values are passed (e.g., ?categories=shop,food), behavior automatically switches to open.
  • Applies to all taxonomy types: categories (hierarchical), vibes (flat), and tags (flat).

Date Filters (Events)

ParameterTypeDefaultDescription
showDateRangeSelectorbooleantrueShow date range selector (events only)
dateFilterOptionsarray["upcoming","today","weekend","next_week","month"]Available date filter options

Grid/List View

ParameterTypeDefaultDescription
initialViewstring"map"Initial view: "map", "grid", or "list"
gridColumnsnumber3Number of columns in grid view
shownAtStartnumber100Number of items shown initially
hideSidebarbooleanfalseHide the sidebar card list (map view only)

Card Display

ParameterTypeDefaultDescription
cardStylestring"list"Card style variant
showVibesOnCardsbooleantrueShow vibes on cards
showTagsOnCardsbooleanfalseShow tags on cards
showAddressOnCardsbooleantrueShow address on cards
subtitleSourcestring"none"Subtitle content: "none", "category", "address", etc.
showRatingbooleanfalseShow ratings on cards
showBookmarkbooleanfalseShow bookmark button
openSinglePostbooleanfalseOpen item detail page on click

Updates Display

Show offers, specials, clues, and updates from places on cards and in the details panel.

ParameterTypeDefaultDescription
showUpdatesbooleanfalseEnable updates display on cards and detail panels
updatesDisplayModestring"badge"Card display mode: "badge", "text", or "both"
updatesFilterTypesstring-Comma-separated types: Update,Offer,Clue,Sponsor,Special
updatesPositionstring"under-vibes"Detail panel position (see below)
updatesExpandedbooleantrueUpdates section expanded by default in detail panels

Update Types:

  • Update - General updates and announcements
  • Offer - Special offers and discounts
  • Clue - Hints and tips (e.g., for scavenger hunts)
  • Sponsor - Sponsored content
  • Special - Special events or limited-time promotions

Updates Position Values: under-vibes, under-description, before-hours, before-links, after-links

Example - Show Offers Only:

/embed/map-grid?slug=austin&showUpdates=true&updatesFilterTypes=Offer&updatesDisplayMode=badge

Theme

ParameterTypeDefaultDescription
theme / themeNamestring"default"Theme slug for styling (e.g., "dark", "minimal")

Themes can provide defaults for many parameters above, reducing URL complexity.


Advanced

ParameterTypeDefaultDescription
heatmapbooleantrueEnable heatmap functionality
showExplorebooleantrueShow explore features
showEventsbooleantrueShow events on map
showPlacesbooleantrueShow places on map

Not URL-Controllable

The following features require complex configuration that cannot be easily passed via URL parameters:

Complex Objects

  • Custom layer paint/layout properties - Layer styling beyond visibility requires nested objects
  • Custom GeoJSON boundaries - Must be fetched from API via slug
  • Custom combined taxonomies - Complex hierarchical taxonomy configurations
  • Custom filters array - Advanced filter configurations with custom logic

Runtime Features

  • Selected items state - Managed internally based on user interaction
  • Search term state - User input, not initial URL param
  • Current view state - Changes as user toggles map/grid
  • Focused/hovered items - Managed by user interaction

Theme-Dependent

  • Tooltip styling - Controlled by theme's map.boundaryTooltip config
  • Clear button styling - Controlled by theme's map.boundaryClearButton config
  • Accent colors - Controlled by theme's accent property
  • Card themes - Controlled by theme's cards configuration

API-Dependent

  • Specific item IDs - Cannot pre-select specific items by ID via URL
  • Custom boundary data - Must use slug to fetch boundary from API
  • Taxonomy term details - Fetched from API, including colors and hierarchy

Example URLs

Basic Places Map

/embed/map-grid?slug=austin&type=places

Events with Filters

/embed/map-grid?slug=dc&type=events&showVibeFilter=true&showDateRangeSelector=true

3D Terrain with Snow

/embed/map-grid?slug=denver&terrain3d=true&terrainExaggeration=1.5&snow=0.7

Clustered Markers with Custom Boundary Style

/embed/map-grid?slug=sf&shouldCluster=true&clusterRadius=50&boundaryLineColor=%23ff6600&boundaryLineWidth=3

Grid View with Custom Columns

/embed/map-grid?slug=la&initialView=grid&gridColumns=4&shownAtStart=20

Rain Effect with Hidden Labels

/embed/map-grid?slug=seattle&rain=0.6&hideLayers=poi-label,road-label
/embed/map-grid?slug=nyc&type=places&terrain3d=true&buildings3d=true&shouldCluster=true&showVibesOnCards=true&boundaryLineColor=%234a90e2&boundaryLineWidth=2&markerLabels=featured&theme=dark

Notes

  1. Boolean parameters accept: true, false, 1, 0, "true", "false"
  2. Colors can be passed without the # prefix (e.g., dotsColor=ff0000 or dotsColor=%23ff0000)
  3. Arrays are comma-separated strings (e.g., vibes=chill,artsy)
  4. Theme defaults - Many parameters have theme-based defaults; only specify to override
  5. Parameter precedence: URL params > Theme defaults > Built-in defaults