Summary
Add support for the community.lexicon.location.address type when publishing events to Bluesky, using address components from Nominatim geocoding.
Background
We already use Nominatim (OpenStreetMap) for geocoding addresses. Nominatim returns structured address components that we currently discard - we only extract lat/lon.
Nominatim Response Example
{
"lat": "38.272061",
"lon": "-85.640689",
"address": {
"house_number": "623",
"road": "Indian Ridge Road",
"city": "Louisville",
"state": "Kentucky",
"postcode": "40207",
"country": "United States",
"country_code": "us"
}
}
ATProto Address Schema
{
"$type": "community.lexicon.location.address",
"country": "US", // required - ISO 3166
"street": "623 Indian Ridge Road",
"locality": "Louisville", // city
"region": "Kentucky", // state
"postalCode": "40207",
"name": "Event Venue" // optional
}
Proposed Implementation
- Update
geocodeAddress() to request addressdetails=1 from Nominatim
- Store address components in event entity (new fields or in sourceData)
- When publishing to Bluesky with structured address data, use
address type
- Fall back to
geo type when only coordinates available
Current Code Location
src/event/services/event-integration.service.ts:399 - geocodeAddress() method
Related
Summary
Add support for the
community.lexicon.location.addresstype when publishing events to Bluesky, using address components from Nominatim geocoding.Background
We already use Nominatim (OpenStreetMap) for geocoding addresses. Nominatim returns structured address components that we currently discard - we only extract lat/lon.
Nominatim Response Example
{ "lat": "38.272061", "lon": "-85.640689", "address": { "house_number": "623", "road": "Indian Ridge Road", "city": "Louisville", "state": "Kentucky", "postcode": "40207", "country": "United States", "country_code": "us" } }ATProto Address Schema
{ "$type": "community.lexicon.location.address", "country": "US", // required - ISO 3166 "street": "623 Indian Ridge Road", "locality": "Louisville", // city "region": "Kentucky", // state "postalCode": "40207", "name": "Event Venue" // optional }Proposed Implementation
geocodeAddress()to requestaddressdetails=1from Nominatimaddresstypegeotype when only coordinates availableCurrent Code Location
src/event/services/event-integration.service.ts:399-geocodeAddress()methodRelated