Map-Grid URL Parameters
Complete reference for all URL parameters supported by the map-grid embed page.
Table of Contents
- Required Parameters
- Content & Data
- Map Viewport
- Map Display
- 3D & Effects (styleConfig)
- Markers
- Location Dots
- Parking Layer
- Clustering
- Grouping (Co-located Markers)
- Boundary
- Filters
- Grid/List View
- Card Display
- Theme
- Banner Ads
- Advanced
- Not URL-Controllable
Required Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
slug / boundary | string | - | Location slug for fetching boundary and data (e.g., "austin", "dc", "westwood") |
list | string | - | 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 arealist: 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=barusesbarinstead of list's default)
Content & Data
| Parameter | Type | Default | Description |
|---|---|---|---|
type | string | "places" | Content type: "places" or "events" |
vibes | string | - | Pipe-separated list of vibes to filter by (e.g., "chill|artsy") |
categories | string | - | Pipe-separated list of categories to filter by |
tags | string | - | Pipe-separated list of tags to filter by |
editorial_categories | string | - | Pipe-separated list of editorial categories to include (aliases: editorial_category, editorialCategory) |
editorial_categories__exclude | string | - | Pipe-separated list of editorial categories to exclude (e.g., "evanston-history" or "cat-a|cat-b") |
featured | boolean | false | When true, only show featured places/events |
strictFilter | boolean | false | When true, applies strict taxonomy filtering (AND logic) |
onlyShowPassedTaxonomies | boolean | false | When true, filter chips only show values passed via URL (plus subcategories for hierarchical categories) |
dist / radius | number | - | Radius in meters for proximity search |
hideNoImageItems | boolean | - | Hide items that don't have images |
hideRangedEvents | boolean | false | Hide events with a duration longer than 24 hours |
tiers | string | - | Filter by membership tier slugs. Comma-separated (e.g., "basic,premium"). Use "non-member" to show items with no membership tier (null). |
ordering / sort | string | "-score_combined" | Sort order for results (see below) |
Sort Order (ordering / sort)
Controls how places are sorted in the grid/list.
| Value | Description |
|---|---|
name | Alphabetical by place name (A-Z) |
-score_combined | Default. By relevance/popularity score (highest first) |
-vibe_count | By number of vibes (most vibes first) |
random | Random order (shuffled on each page load) |
Map Viewport
| Parameter | Type | Default | Description |
|---|---|---|---|
latitude / lat | number | From boundary | Initial map center latitude |
longitude / lng | number | From boundary | Initial map center longitude |
zoom | number | From boundary | Initial zoom level (0-22) |
bearing | number | 0 | Map rotation in degrees (0-360) |
pitch | number | 0 | Map tilt in degrees (0-85) |
zoomMode | string | "fit-boundary" | Initial zoom behavior: "fit-boundary" (fit to boundary polygon), "fit-markers" (fit to all markers), or "custom" (use explicit lat/lng/zoom) |
refitMarkersOnFilterChange | boolean | true | When 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:
| Value | Behavior |
|---|---|
fit-boundary | Default. Fits the map to the boundary polygon returned by the API |
fit-markers | Calculates bounds from all marker coordinates and fits the map to show all markers with padding |
custom | Uses 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
| Parameter | Type | Default | Description |
|---|---|---|---|
mapStyle | string | Vibemap default | Mapbox style URL (e.g., "mapbox://styles/mapbox/streets-v12") |
mapHeight | number/string | "100%" | Map container height (px or CSS value) |
mobileMaxHeight | number | - | Max iframe height in px on mobile viewports (does not affect desktop) |
mobileBreakpoint | number | 768 | Viewport width threshold for mobileMaxHeight (px) |
showBoundary | boolean | true | Show boundary polygon on map |
showMarkers | boolean | true | Show place/event markers |
showMarkersOutOfBoundary | boolean | Auto | Master toggle: show OOB markers everywhere (auto-enabled with radius/strictFilter). Logged-in users can also toggle via the Filters → Advanced panel. |
showMarkersOutOfBoundaryOnMap | boolean | (master) | Show OOB markers on the map; falls back to showMarkersOutOfBoundary |
showMarkersOutOfBoundaryInSidebar | boolean | (master) | Show OOB places in the sidebar card list; falls back to showMarkersOutOfBoundary |
showMarkersOutOfBoundaryInList | boolean | (master) | Show OOB places in the list/grid view; falls back to showMarkersOutOfBoundary |
showMapCards | boolean | true | Show info cards when clicking markers |
showHeat | boolean | true | Show heatmap layer |
map3d | boolean | false | Legacy 3D mode (use terrain3d instead) |
Mobile Height Cap: On some mobile devices, the default 90% viewport height calculation can make the map too tall (e.g., screen.availHeight doesn't account for browser chrome). Use mobileMaxHeight to set a pixel cap that only applies when the parent viewport is narrower than mobileBreakpoint (default 768px). Desktop is unaffected.
# Cap map height at 500px on mobile
/embed/map-grid?slug=austin&mobileMaxHeight=500
# Cap at 600px for viewports under 1024px
/embed/map-grid?slug=austin&mobileMaxHeight=600&mobileBreakpoint=1024
3D & Effects (styleConfig)
These parameters control Mapbox GL terrain, weather effects, and layer visibility.
Terrain
| Parameter | Type | Default | Description |
|---|---|---|---|
terrain3d | boolean | false | Enable 3D terrain elevation |
terrainExaggeration | number | 1.0 | Terrain height multiplier (0.1-3.0) |
buildings3d | boolean | false | Enable 3D building extrusions |
hillshade | boolean | false | Enable hillshade relief shading |
Weather Effects
| Parameter | Type | Default | Description |
|---|---|---|---|
fog | boolean | false | Enable atmospheric fog effect |
fogDistance | number | 10 | Fog visibility distance (1-20 km) |
snow | number/boolean | false | Snow effect intensity (0-1, or true for 0.5) |
rain | number/boolean | false | Rain effect intensity (0-1, or true for 0.5) |
Layer Visibility
| Parameter | Type | Default | Description |
|---|---|---|---|
hideLayers | string | - | Comma-separated layer IDs to hide (e.g., "poi-label,road-label") |
showLayers | string | - | 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
| Parameter | Type | Default | Description |
|---|---|---|---|
markerStyle | string | "mixed" | Marker display style: "mixed", "icons", "images", "only_featured" |
markerLabels | string | "hide" | Label display: "hide", "featured", "all" |
maxImageMarkers | number | Theme default | Max number of image markers to show |
maxIconMarkers | number | Theme default | Max 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.
| Parameter | Type | Default | Description |
|---|---|---|---|
showDots | boolean | false | Enable dots at all GeoJSON locations |
dotsColor | string | Theme accent | Dot fill color (hex, e.g., "9B59B6" or "#9B59B6") |
dotsRadius | number | 4 | Dot radius in pixels |
dotsOpacity | number | 1 | Dot opacity (0-1) |
dotsStrokeColor | string | - | Optional stroke/outline color for dots |
dotsStrokeWidth | number | 0 | Stroke 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
Parking Layer
Separates parking items into a dedicated map layer rendered below regular markers. Parking items are detected by category (slugs starting with parking, e.g., parking, parking-charging, parking-private). When disabled, parking items are treated like any other place.
| Parameter | Type | Default | Description |
|---|---|---|---|
showParkingLayer | boolean | false | Separate parking items into a dedicated layer below regular markers |
Example - Show Parking Layer
/embed/map-grid?slug=austin&showParkingLayer=true
Clustering
| Parameter | Type | Default | Description |
|---|---|---|---|
shouldCluster | boolean | false | Enable marker clustering |
clusterRadius | number | Theme default | Pixel radius for clustering (typically 35-80) |
clusterMaxZoom | number | Theme default | Max 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).
| Parameter | Type | Default | Description |
|---|---|---|---|
enableGrouping | boolean | true | Enable grouping of co-located markers |
groupingTolerance | number | 3 | Distance in meters within which items are considered co-located |
spiderModeMaxItems | number | 8 | Max items for "spider" expansion (circular spread); larger groups show a scrollable list instead |
How Grouping Works
- Detection: Items within
groupingTolerancemeters of each other are grouped together - Display: Groups show a purple marker with a count badge indicating the number of items
- 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
- Spider mode (≤
- Collapse: Click the X button at the centroid (spider mode) or close the popup (list mode)
Grouping vs Clustering
| Feature | Grouping | Clustering |
|---|---|---|
| Purpose | Items at the same address/venue | Visual decluttering of nearby markers |
| Tolerance | ~3 meters (same building) | 35-80 pixels (screen distance) |
| Expansion | Spider web or scrollable list | Zoom to cluster bounds |
| Color | Purple | Teal (places) or Red (events) |
| When | Always (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
| Parameter | Type | Default | Description |
|---|---|---|---|
boundaryFilter | string | - | Filter to specific polygon by name (for MultiPolygon boundaries) |
showBoundarySelectorList | boolean | true | Show boundary selector dropdown for MultiPolygon boundaries |
boundarySelectorLabel | string | "Boundary" | Custom label for boundary selector (e.g., "Neighborhood", "District") |
showHoverPopoverOnPolygon | boolean | theme | Enable the hover popover/tooltip on boundary + overlay polygons. Falls back to theme.map.showHoverPopoverOnPolygon (default false). |
Styling
| Parameter | Type | Default | Description |
|---|---|---|---|
boundaryFillColor | string | - | Fill color (hex, e.g., "#ff0000" or "%23ff0000" URL-encoded) |
boundaryFillOpacity | number | 0 | Fill opacity (0-1) |
boundaryLineColor | string | - | Line color (hex) |
boundaryLineOpacity | number | 1 | Line opacity (0-1) |
boundaryLineWidth | number | 2 | Line width in pixels |
Filters
Search
| Parameter | Type | Default | Description |
|---|---|---|---|
search / searchTerm | string | "" | Pre-populate the search filter with an initial query |
Filter Visibility
| Parameter | Type | Default | Description |
|---|---|---|---|
showFilters | boolean | true | Show filter UI |
showVibeFilter | boolean | true | Show vibes filter |
showCategoryFilter | boolean | Auto | Show categories filter (auto for places) |
showTagFilter | boolean | true | Show tags filter |
showSearchFilter | boolean | true | Show search input |
showTopLevelFilters | boolean | true | Show filters at top level (vs inside map) |
showItemCountOnFilters | boolean | true | Show item counts on filter chips |
visibleCats | number | - | Max categories to show before "Show More" pill (undefined = show all) |
visibleVibes | number | - | Max vibes to show before "Show More" pill (undefined = show all) |
visibleTags | number | - | Max tags to show before "Show More" pill (undefined = show all) |
Filter Behavior
| Parameter | Type | Default | Description |
|---|---|---|---|
filterViewMode | string | "horizontal" | Filter layout: "horizontal" or "tabbed" |
filterSelectionMode | string | "auto" | Selection mode: "single", "multiple", "auto" |
filterBehavior | string | "trapped" | Navigation behavior when taxonomy filters are passed (see below) |
multiSelectTaxonomies | array | [] | JSON array of taxonomy names that allow multi-select |
taxonomySortOrder | string | "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:
| Value | Description |
|---|---|
count | Default. Sort by item count (most items first), then alphabetically |
alpha | Alphabetical 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.
| Value | Description |
|---|---|
trapped | Default. 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. |
selected | The passed filter is pre-selected, but user can deselect it to see parent-level filters. Allows escaping the passed taxonomy. |
open | Current behavior - all taxonomies from returned items are shown, regardless of what was passed. |
Important Notes:
- Only applies when
strictFilter=true. WithoutstrictFilter, the parameter is ignored and behavior defaults toopen. - If multiple taxonomy values are passed (e.g.,
?categories=shop,food), behavior automatically switches toopen. - Applies to all taxonomy types: categories (hierarchical), vibes (flat), and tags (flat).
Taxonomy Labels
Customize the display names for taxonomy sections in the filters UI.
| Parameter | Type | Default | Description |
|---|---|---|---|
vibesLabel | string | "Vibes" | Custom display name for the Vibes taxonomy |
categoriesLabel | string | "Categories" | Custom display name for the Categories taxonomy |
tagsLabel | string | "Tags" | Custom display name for the Tags taxonomy |
Examples:
# Rename "Vibes" to "Feel"
/embed/map-grid?slug=austin&vibesLabel=Feel
# Rename all taxonomies
/embed/map-grid?slug=austin&vibesLabel=Mood&categoriesLabel=Types&tagsLabel=Keywords
# Partial override (only change Vibes, others keep defaults)
/embed/map-grid?slug=austin&vibesLabel=Tags
Date Filters (Events)
| Parameter | Type | Default | Description |
|---|---|---|---|
showDateRangeSelector | boolean | true | Show date range selector (events only) |
dateFilterOptions | array | ["upcoming","today","weekend","next_week","month"] | Available date filter options |
Date Boundary (Events)
Hard date limits that exclude events outside the range, regardless of user filter selections.
| Parameter | Type | Default | Description |
|---|---|---|---|
dateBoundaryStart | string | - | Events before this date are excluded. Accepts yyyy-MM-dd or relative offset. |
dateBoundaryEnd | string | - | Events after this date are excluded. Accepts yyyy-MM-dd or relative offset. |
Relative offset format: +Nd (days), +Nm (months), +Ny (years). Negative values work too (-7d = 7 days ago). The offset is computed fresh on each page load relative to the current date.
Examples:
# Only show events in the next 14 days
/embed/map-grid?slug=austin&type=events&dateBoundaryEnd=%2B14d
# Next 3 months of events
/embed/map-grid?slug=austin&type=events&dateBoundaryEnd=%2B3m
# Events between specific dates
/embed/map-grid?slug=austin&type=events&dateBoundaryStart=2026-06-01&dateBoundaryEnd=2026-09-01
# Events from today through end of year
/embed/map-grid?slug=austin&type=events&dateBoundaryStart=%2B0d&dateBoundaryEnd=%2B1y
Note: The + character must be URL-encoded as %2B in query strings.
Past Event Window
Controls how long after an event's end time it remains visible. Default keeps every event visible for 90 minutes after it ends, so events with identical start/end times don't disappear the instant they begin.
| Parameter | Type | Default | Description |
|---|---|---|---|
pastWindow | integer (minutes) | 90 | Minutes after end_date that an event remains eligible. 0 cuts at end. 1440 shows for 1 day. 10080 shows for a week. Overridden by pastCutoff if both are set. |
pastCutoff | ISO 8601 datetime | – | Absolute floor — only events with end_date >= pastCutoff are shown, e.g. 2026-06-01T00:00:00. Site-local time. Overrides pastWindow when set. |
Examples:
# Show events for 6 hours after they end
/embed/map-grid?slug=austin&type=events&pastWindow=360
# Show all events from the past week onward
/embed/map-grid?slug=austin&type=events&pastWindow=10080
# Show every event ending on/after June 1, 2026
/embed/map-grid?slug=austin&type=events&pastCutoff=2026-06-01T00:00:00
Grid/List View
| Parameter | Type | Default | Description |
|---|---|---|---|
initialView | string | "map" | Initial view: "map", "grid", or "list" |
gridColumns | number | 3 | Number of columns in grid view |
shownAtStart | number | 99 | Number of items shown initially |
hideSidebar | boolean | false | Hide the sidebar card list (map view only) |
showContentModeToggle | boolean | true (events) / false (places) | Show Events/Venues toggle. Users can switch between viewing events and venues with event counts. Defaults to true when type=events. |
Card Display
| Parameter | Type | Default | Description |
|---|---|---|---|
cardStyle | string | "list" | Card style variant |
showVibesOnCards | boolean | true | Show vibes on cards |
showTagsOnCards | boolean | false | Show tags on cards |
showAddressOnCards | boolean | true | Show address on cards |
Deprecated: Use
subtitle2Source=address&subtitle2Position=below-titleinstead.
| descriptionLength | number | - | Max description length. If > 0, shows description |
| subtitleSource | string | "none" | Subtitle content: "none", "category", "address", etc. |
| subtitlePosition | string | "above-title" | Subtitle position: "above-title" or "below-title" |
| subtitle2Source | string | content-type default | Data source for the second subtitle. Default: places="address", events="none". Options: "none", "category", "tag", "vibe", "address", "venue", "date" (date only, e.g. "Jun 15th"), "start_date_time" (date + time, e.g. "Jun 15th • 7:00 PM"), "price", "custom" (combine multiple — see subtitle2Sources) |
| subtitle2Sources | string | - | Comma-separated list of sources to combine when subtitle2Source=custom. Each token uses the same vocabulary as subtitle2Source (e.g. category, venue, start_date_time). Empty values are skipped; the rest are joined with •. Example: subtitle2Source=custom&subtitle2Sources=venue,start_date_time → "Great Hall • Jun 15th • 7:00 PM" |
| subtitle2Position | string | "below-title" | Position of the second subtitle: "above-title" or "below-title" |
| showRating | boolean | false | Show ratings on cards |
| showBookmark | boolean | false | Show bookmark button |
| openSinglePost | boolean | false | Open item detail page on click |
| randomizeImages | boolean | true | When false, always use first image (no random) |
| smartCrop | boolean | true | ImageKit AI smart crop. false → center crop |
| linkToExternalUrl | boolean | false | Open card source URL in new tab (grid view). Fallback to permalink. |
| showVibesInDetails | boolean | true | Show vibes under hero image in item details panel |
Updates Display
Show offers, specials, clues, and updates from places on cards and in the details panel.
| Parameter | Type | Default | Description |
|---|---|---|---|
showUpdates | boolean | false | Enable updates display on cards and detail panels |
updatesDisplayMode | string | "badge" | Card display mode: "badge", "text", or "both" |
updatesFilterTypes | string | - | Comma-separated types: Update,Offer,Clue,Sponsor,Special |
updatesPosition | string | "under-vibes" | Detail panel position (see below) |
updatesExpanded | boolean | true | Updates section expanded by default in detail panels |
Update Types:
Update- General updates and announcementsOffer- Special offers and discountsClue- Hints and tips (e.g., for scavenger hunts)Sponsor- Sponsored contentSpecial- 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
| Parameter | Type | Default | Description |
|---|---|---|---|
theme / themeName | string | "default" | Theme slug for styling (e.g., "dark", "minimal") |
Themes can provide defaults for many parameters above, reducing URL complexity.
Banner Ads
| Parameter | Type | Default | Description |
|---|---|---|---|
mobileAdPlacement | string | "above" | Where banner ads appear on mobile (see below) |
Banner ads are configured per-theme (via the theme parameter) or per-block in WordPress. The mobileAdPlacement parameter controls where ads render on mobile viewports (< 768px). On desktop, ads always appear in the header alongside filter chips.
| Value | Behavior |
|---|---|
header | Ads stay inside the header on mobile (legacy behavior) |
above | Default. Both ad slots render above the map/grid on mobile |
below | Both ad slots render below the map/grid on mobile |
split | Slot 1 renders above, Slot 2 renders below the map/grid on mobile |
Mobile ads render outside the map container, so they do not affect the map height (e.g., a 700px map stays 700px; ads take additional space).
# Both ads above the map on mobile
/embed/map-grid?slug=austin&theme=lynnwood&mobileAdPlacement=above
# Split: one ad above, one below
/embed/map-grid?slug=austin&theme=lynnwood&mobileAdPlacement=split
# Keep ads in the header (desktop-like behavior on mobile)
/embed/map-grid?slug=austin&theme=lynnwood&mobileAdPlacement=header
Advanced
| Parameter | Type | Default | Description |
|---|---|---|---|
heatmap | boolean | true | Enable heatmap functionality |
showExplore | boolean | true | Show explore features |
showEvents | boolean | true | Show events on map |
showPlaces | boolean | true | Show places on map |
Admin Display Settings (logged-in users only)
The Advanced panel exposed in the Filters bar to logged-in users surfaces display toggles that change what appears in the embed:
- Show unapproved — drops
is_approved=truefrom API queries - Show closed places — drops
is_closed=false(places only) - Hide items without images
- Min completeness score
- Show items outside boundary (map-grid only — overrides the existing
showMarkersOutOfBoundarycascade)
These are admin-only and intentionally have no URL surface. The toggles
exist solely in the Advanced panel for logged-in users. User overrides are
persisted per-embed-instance in localStorage. Cascade for resolution:
user override (panel) > theme default > code default.
The persistence scope is keyed by a hash of
themeName + type + listId + cityId + boundary + embedInstance. Two
identically-configured iframes on the same host page share state by design;
pass embedInstance=foo (URL param) to force separation.
| Parameter | Type | Default | Description |
|---|---|---|---|
embedInstance | string | - | Optional opaque suffix used to give two otherwise-identical embeds independent admin-override scopes. |
hideNoImageItems | boolean | false | Pre-existing public param; logged-in users can also override via the panel. |
showMarkersOutOfBoundary | boolean | (theme/auto) | Pre-existing public param (see Map Display); logged-in users can also override via the panel. |
Developer guide for adding a new admin display toggle:
web/src/hooks/useAdvancedDisplaySettings.ts.
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.boundaryTooltipconfig - Clear button styling - Controlled by theme's
map.boundaryClearButtonconfig - Accent colors - Controlled by theme's
accentproperty - Card themes - Controlled by theme's
cardsconfiguration
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
Full Featured Example
/embed/map-grid?slug=nyc&type=places&terrain3d=true&buildings3d=true&shouldCluster=true&showVibesOnCards=true&boundaryLineColor=%234a90e2&boundaryLineWidth=2&markerLabels=featured&theme=dark
Notes
- Boolean parameters accept:
true,false,1,0,"true","false" - Colors can be passed without the
#prefix (e.g.,dotsColor=ff0000ordotsColor=%23ff0000) - Arrays are comma-separated strings (e.g.,
vibes=chill,artsy) - Theme defaults - Many parameters have theme-based defaults; only specify to override
- Parameter precedence: URL params > Theme defaults > Built-in defaults