Add geolocation picker to event creation and map-based event discovery #30

Open
opened 2026-04-27 16:20:12 +00:00 by padreug · 0 comments
Owner

Summary

Allow users to geotag events when creating them, and discover events on a map. The activities module already has map infrastructure (ActivitiesMapPage, Leaflet integration) — extend it to support geotagged LNbits events.

Event creation

  • Add a map picker to the CreateEventDialog (or a "Pin location" button that opens a map)
  • Convert selected coordinates to geohash
  • Send latitude, longitude (or geohash) to the events extension API
  • The existing location text field (venue name/address) remains for human-readable location

Event discovery

  • Geotagged events appear on the activities map view
  • NIP-52 g tag enables relay-level geographic filtering
  • The ActivitiesMapPage already renders activities with coordinates — extend to show events too

Dependencies

  • aiolabs/events#13 — backend geohash support (NIP-52 g tag)
  • ngeohash library (already in webapp dependencies)
  • Leaflet map components (already in activities module)

Files to modify

  • src/modules/activities/components/CreateEventDialog.vue — add location picker
  • src/modules/activities/views/ActivitiesMapPage.vue — render geotagged events
  • src/modules/activities/types/ticket.ts — add geohash/lat/lng to CreateEventRequest
## Summary Allow users to geotag events when creating them, and discover events on a map. The activities module already has map infrastructure (ActivitiesMapPage, Leaflet integration) — extend it to support geotagged LNbits events. ## Event creation - Add a map picker to the CreateEventDialog (or a "Pin location" button that opens a map) - Convert selected coordinates to geohash - Send `latitude`, `longitude` (or `geohash`) to the events extension API - The existing `location` text field (venue name/address) remains for human-readable location ## Event discovery - Geotagged events appear on the activities map view - NIP-52 `g` tag enables relay-level geographic filtering - The ActivitiesMapPage already renders activities with coordinates — extend to show events too ## Dependencies - aiolabs/events#13 — backend geohash support (NIP-52 `g` tag) - `ngeohash` library (already in webapp dependencies) - Leaflet map components (already in activities module) ## Files to modify - `src/modules/activities/components/CreateEventDialog.vue` — add location picker - `src/modules/activities/views/ActivitiesMapPage.vue` — render geotagged events - `src/modules/activities/types/ticket.ts` — add geohash/lat/lng to CreateEventRequest
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/webapp#30
No description provided.