// Small hand-authored monoline SVG icons for the sidebar, so the app
// doesn't need to vendor an icon font/library for four glyphs.
export const LAYERS_ICON = `
`;
export const GPX_ICON = `
`;
export const RADAR_ICON = `
`;
export const GNSS_ICON = `
`;
export const NEW_FOLDER_ICON = `
`;
export const UPLOAD_ICON = `
`;
// Shown next to each file in the GPX tree, indicating whether it has
// waypoints, a track, or both.
export const WAYPOINT_ICON = `
`;
export const TRACK_ICON = GPX_ICON;
// Same shape as TRACK_ICON, dashed — a route is planned rather than
// recorded, the same visual convention most map apps use for the
// distinction.
export const ROUTE_ICON = `
`;
// A rounded-square badge — used as the map marker for individual waypoints,
// tinted by category color via icon-color (see gpx.js). Not a plain dot,
// which blended in with a base map style's own small circular POI icons,
// and not a pin/teardrop either — a rounded square is the National Park
// Service's own convention for framing these exact category symbols
// (POI_ICONS below), so pairing the two looks native rather than like two
// mismatched icon styles. Centered on the coordinate (no tip to anchor at),
// which also means the category glyph on top needs no offset — both layers
// just share the same center anchor at [0, 0].
export const MAP_MARKER_ICON = `
`;
// POI category glyphs (park4night/OsmAnd exports), keyed by the OsmAnd icon
// name a file's extension carries — a small curated set for
// the categories park4night actually uses (see waypoint_style in
// lib/maptool/gpx.rb), not an exhaustive OsmAnd icon set.
//
// Six of these are the National Park Service's own map pictograms
// (github.com/nationalparkservice/symbol-library, src/standalone/*-black-22),
// not hand-drawn — a professional, widely-recognized icon set built for
// exactly this job (small monochrome map markers) beats reinventing "fuel
// pump"/"picnic table" glyphs from scratch. Used under that repo's license:
//
// BSD License. Copyright (c) 2013, Mapbox, LLC. All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the copyright notice and
// this list of conditions are retained.
//
// `forest` has no NPS equivalent (that set covers facilities, not land
// cover) and stays hand-drawn. All filled shapes — these render at ~14px on
// the map, where a hairline stroke disappears — and rasterized/used as SDF
// map icons (see gpx.js), so only the alpha shape matters, not the actual
// `currentColor` value.
// src/standalone/bicycle-trail-black-22.svg — pulled out to its own constant
// since it's also used unrasterized, inline, as PARK4NIGHT_TAGS.vtt below.
const BICYCLE_TRAIL_ICON = `
`;
export const POI_ICONS = {
// src/standalone/parking-black-22.svg
amenity_parking: `
`,
// src/standalone/campground-black-22.svg
tourism_camp_site: `
`,
// src/standalone/picnic-area-black-22.svg
leisure_picnic_table: `
`,
// src/standalone/gas-station-black-22.svg
amenity_fuel: `
`,
// src/standalone/lodging-black-22.svg
tourism_hotel: `
`,
forest: `
`,
// src/standalone/bicycle-trail-black-22.svg
sport_cycling: BICYCLE_TRAIL_ICON,
};
// National Park Service map symbols (same source/license as POI_ICONS above)
// used as small inline glyphs next to a park4night waypoint's Services/
// Activities tags (see PARK4NIGHT_TAGS and formatDescription in
// public/js/gpx.js) — pulled into named constants first since a few codes
// share the same real-world facility (eau_noire/eau_usee are both a dump
// station, gaz/gpl are both a propane refill, peche/peche_pied are both
// fishing) and BICYCLE_TRAIL_ICON is also POI_ICONS.sport_cycling above.
const PETS_ON_LEASH_ICON = `
`;
const SHOWERS_ICON = `
`;
const SANITARY_DISPOSAL_ICON = `
`;
const ELECTRICAL_HOOKUP_ICON = `
`;
const PROPANE_ICON = `
`;
const LAUNDRY_ICON = `
`;
const SWIMMING_ICON = `
`;
const DRINKING_WATER_ICON = `
`;
const TRASH_DUMPSTER_ICON = `
`;
const RESTROOMS_ICON = `
`;
const RIVER_RAFTING_ICON = `
`;
const CLIMBING_ICON = `
`;
const PLAYGROUND_ICON = `
`;
const MOTOR_BIKE_TRAIL_ICON = `
`;
const FISHING_ICON = `
`;
const SCENIC_VIEWPOINT_ICON = `
`;
const WALKING_ICON = `
`;
const GUIDED_TOURS_ICON = `
`;
const WIND_SURFING_ICON = `
`;
// park4night's fixed vocabulary of Services/Activities codes (the ones
// p4n2gpx exports actually use — not necessarily park4night's entire API),
// each with a human label (always shown) and an icon where the NPS set has
// a reasonable match. formatDescription (public/js/gpx.js) reads this;
// an unrecognized code just renders as its raw text, same as before this
// existed, so nothing p4n2gpx might add later is ever hidden.
export const PARK4NIGHT_TAGS = {
// Services
animaux: { icon: PETS_ON_LEASH_ICON, label: "Pets allowed" },
boulangerie: { label: "Bakery nearby" },
caravaneige: { label: "Winter/snow camping" },
donnees_mobile: { label: "Mobile data coverage" },
douche: { icon: SHOWERS_ICON, label: "Showers" },
eau_noire: { icon: SANITARY_DISPOSAL_ICON, label: "Black water disposal" },
eau_usee: { icon: SANITARY_DISPOSAL_ICON, label: "Grey water disposal" },
electricite: { icon: ELECTRICAL_HOOKUP_ICON, label: "Electricity" },
gaz: { icon: PROPANE_ICON, label: "Gas/propane refill" },
gpl: { icon: PROPANE_ICON, label: "LPG refill" },
lavage: { label: "Vehicle wash" },
laverie: { icon: LAUNDRY_ICON, label: "Laundry" },
piscine: { icon: SWIMMING_ICON, label: "Swimming pool" },
point_eau: { icon: DRINKING_WATER_ICON, label: "Drinking water" },
poubelle: { icon: TRASH_DUMPSTER_ICON, label: "Trash disposal" },
wc_public: { icon: RESTROOMS_ICON, label: "Public toilet" },
wifi: { label: "Wi-Fi" },
// Activities
baignade: { icon: SWIMMING_ICON, label: "Swimming" },
eaux_vives: { icon: RIVER_RAFTING_ICON, label: "Whitewater sports" },
escalade: { icon: CLIMBING_ICON, label: "Climbing" },
jeux_enfants: { icon: PLAYGROUND_ICON, label: "Playground" },
moto: { icon: MOTOR_BIKE_TRAIL_ICON, label: "Motorcycling" },
peche: { icon: FISHING_ICON, label: "Fishing" },
peche_pied: { icon: FISHING_ICON, label: "Shore fishing" },
point_de_vue: { icon: SCENIC_VIEWPOINT_ICON, label: "Scenic viewpoint" },
rando: { icon: WALKING_ICON, label: "Hiking" },
visites: { icon: GUIDED_TOURS_ICON, label: "Sightseeing" },
vtt: { icon: BICYCLE_TRAIL_ICON, label: "Mountain biking" },
windsurf: { icon: WIND_SURFING_ICON, label: "Windsurfing" },
};
export const LIVETRACK_ICON = `
`;