26-Jan-2026 — walks: add map-based venue selection and bidirectional postcode sync #132
Summary
Additional enhancements to venue management: interactive map selection,
OS Explorer style markers, and prompts to keep venue and starting point aligned.
User Guide
Walk Editing - Adding Venue Details
URL: /walks/edit/<walk-id> → Details tab → Route & Venue section
What's Changed
- Venue details have moved from the Links tab to the Route & Venue tab, keeping
all location-related information in one place
- Route and Venue can be toggled independently or viewed together
- Venue and starting point stay in step:
- When you update the venue postcode, you'll be prompted to update the walk
starting point to match
- When you update the starting point, you'll be prompted to update the venue
postcode to match
Search Previous (Default)
- Type to search across all previously used venues
- Results sorted by distance from walk start point (nearest venues shown first)
- Shows usage count and last-used date for each venue
- Select a venue to auto-fill all fields (name, address, postcode, type, URL)
Website URL
- Paste a venue's website URL (e.g., https://www.theredlion.co.uk)
- Click "Fetch Details" to automatically extract venue information
- System checks local venues first, then scrapes the website if needed
- Use the search button next to URL field to find a venue's website
Smart Paste
- Copy venue details from any website (e.g., a pub's contact page)
- Paste into the text area and click "Parse & Apply"
- Intelligently extracts name, address lines, postcode, and URL
- Confidence score indicates how well the text was parsed
Map
- Interactive split-panel view with venue markers on the left
- Filter venues by type using the dropdown (pub, cafe, car park, etc.)
- Click an existing marker to select that venue
- Click anywhere on the map to create a new venue at that location
- OS Explorer style pins show venue type icons
Starting Point Integration
- Prompts are optional
- choose "Yes" to sync or "No" to keep them different
- This reduces duplicate data entry when the walk starts from the venue
- Useful when venue and meeting point are the same location
Administration - Managing Venues
URL: /admin/venue-settings
Administrators can also access venue management via the "Manage Venues" button
shown on the walk edit venue section (admin users only).
Venue List
- View all stored venues with name, address, type, and usage statistics
- Sort by name, usage count, or last used date
- Search to filter the venue list
Adding Venues
- Click "Add Venue" to create a new venue
- Enter name, address lines, postcode, type, and optional website URL
- Postcode is automatically geocoded for map positioning
Editing Venues
- Click any venue to edit its details
- Update venue type using the icon-based dropdown
- Changes apply to future walks; existing walks retain their data
Venue Types
- Pub (beer mug icon)
- Cafe (coffee cup icon)
- Restaurant (utensils icon)
- Car Park (parking icon)
- Church (cross icon)
- Hall (building icon)
- Station (train icon)
- Other (map marker icon)
Technical
New Components
- VenueEditorComponent: reusable venue editing form
- VenueLookupComponent: tabbed interface for venue search methods
- VenueMapSelectorComponent: interactive map with venue markers
Enhancements
- OS Explorer style teardrop pins with venue type icons
- Local venue lookup by base URL before web scraping
- Fire station recognition in venue parser
- DRY field references using EventField enum in migrations
- Mobile responsive toggle layout
- Consistent button heights and text alignment
Venue Management:
- Add venue smart paste to parse venue details from clipboard text
- Add venue autocomplete with distance-based sorting from walk start point
- Create new VenueService, StoredVenueService, and VenueParserService
- Add venue settings admin page and backend API endpoints
- Implement venue type selection with icons (pub, cafe, restaurant, etc.)
- Fix venue selection to properly clear old field values
Map View:
- Add fullscreen map toggle for expanded walk viewing
- Ensure map centres correctly when a GPX route is displayed on it
- Finer graduations added to Zoom controls
Walk List & Search:
- Simplify walk list by removing client-side pagination (server always returns 10 rows)
- Load area groups once on service startup and share via ReplaySubject
- Advanced search now uses cached group data instead of separate API calls
- Remove dead code (replaceWalkInList, lookupPlaceName)
Related Links Tab:
- Reorder tabs to: Ramblers, OS Maps, Meetup (Ramblers as default)
- Add section titles for Ramblers, OS Maps, and Meetup tabs
- Remove duplicate frame wrapper from Meetup component
- Move DetailsTab enum from component to walk.model.ts
Meeting Point:
- Fix alignment between Meeting Time and Meeting Location inputs
- Add venue postcode prompt to update walk starting point
- Add option to use venue as meeting point