Skip to main content

onLocationMessageReceived

Triggered when a message sharing location details is received.

Received properties

Along with the Base, Ephemeral, and Replyable properties, a WireMessage.Location object includes:

  • coordinates – latitude and longitude as floating point numbers.
  • name - Location description.
  • zoom - Google Maps zoom level.

Sample usage

Calculate user distance from Wire headquarters

override suspend fun onLocationMessageReceived(wireMessage: WireMessage.Location) {
// Wire HQ in Berlin
val hqLat = 52.5240008
val hqLon = 13.4025010

// User location
val lat = wireMessage.latitude
val lon = wireMessage.longitude

// Simple approximate distance (in km)
val latDiff = lat - hqLat
val lonDiff = (lon - hqLon) * kotlin.math.cos(Math.toRadians((lat + hqLat) / 2))
val distanceKm = kotlin.math.sqrt(latDiff * latDiff + lonDiff * lonDiff) * 111.0

val message = WireMessage.Text.createReply(
conversationId = wireMessage.conversationId,
text = "You are $distanceKm km away from Wire GmbH headquarters.",
originalMessage = wireMessage
)
manager.sendMessageSuspending(message = message)
}