SDK móviles
Kotlin para Android/JVM y Swift para iOS. Modelos tipados y solicitudes asíncronas para las API geográficas de OSRMRoute.
Conecta mediante tu backend
Guarda la clave de OSRMRoute en tu servidor. La aplicación envía su sesión temporal a tu proxy autenticado. El proxy valida endpoints permitidos, acceso y límites e incorpora la clave de OSRMRoute en el servidor. No reenvíes el token de la aplicación a OSRMRoute.
Descarga e instalación
La versión 0.1.0 está disponible como código fuente. Kotlin no está publicado en Maven Central. Incluye Kotlin como módulo Gradle y la carpeta Swift como paquete local en Xcode.
// Extract the Kotlin archive into your project folder.
include(":osrmroute-kotlin")
project(":osrmroute-kotlin").projectDir = file("osrmroute-kotlin-0.1.0")dependencies {
implementation(project(":osrmroute-kotlin"))
}
// AndroidManifest.xml:
// <uses-permission android:name="android.permission.INTERNET" />Xcode → File → Add Package Dependencies → Add Local
// Select the extracted osrmroute-swift-0.1.0 folder.
// Add the OSRMRoute library to your application target.Kotlin · Android / JVM
import com.osrmroute.OSRMRoute
import com.osrmroute.Coordinate
// Call from a coroutine. Use your app session, not an embedded OSRMRoute key.
val client = OSRMRoute(
baseUrl = "https://your-backend.example/location",
tokenProvider = { applicationSessionToken }
)
val result = client.route(listOf(
Coordinate(latitude = 52.52, longitude = 13.405),
Coordinate(latitude = 52.50, longitude = 13.39)
))
val metres = result.routes.first().distance
// Close the shared client when its owner is disposed.
client.close()Swift · iOS
import Foundation
import OSRMRoute
// Call from an async function. Use your own authenticated backend.
let client = try OSRMRouteClient(
baseURL: URL(string: "https://your-backend.example/location")!,
tokenProvider: { applicationSessionToken }
)
let result = try await client.route([
Coordinate(latitude: 48.8566, longitude: 2.3522),
Coordinate(latitude: 48.8606, longitude: 2.3376)
])
let metres = result.routes[0].distanceMétodos compatibles
Respuestas tipadas: route, matrix, geocode, reverse y autocomplete. Places devuelve JSON. getJson/getJSON y postJson/postJSON admiten otros endpoints geográficos. Se aplican los límites del plan y la cobertura.
Solicitudes y errores
Sin reintentos por defecto. Opcionalmente hasta dos reintentos GET para 429, 502, 503 o 504. No se repite si Retry-After supera 30 segundos o tiene formato de fecha. Los errores de red y las solicitudes POST nunca se reintentan automáticamente.
// Kotlin: OSRMRouteException.status and .code
// Swift: SDKError.http(status:), .transport, .invalidResponse, .invalidInput
// Cancellation propagates to the caller.
// Default timeout: 30 seconds. Configurable maximum: 120 seconds.
// Coordinates: latitude, longitude. Distances: metres. Durations: seconds.
// Matrix null cells mean unreachable, not zero.Solo integración API
No incluye renderizado de mapas, mapas sin conexión ni navegación guiada. Kotlin: Android API 21+ y JVM 17; Swift: iOS 15+ y macOS 12+. Las pruebas del paquete no sustituyen pruebas en dispositivos.
Documentación →