osrmroute
Documentación

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.

settings.gradle.kts
// Extract the Kotlin archive into your project folder.
include(":osrmroute-kotlin")
project(":osrmroute-kotlin").projectDir = file("osrmroute-kotlin-0.1.0")
app/build.gradle.kts
dependencies {
    implementation(project(":osrmroute-kotlin"))
}
// AndroidManifest.xml:
// <uses-permission android:name="android.permission.INTERNET" />
Xcode · Swift Package Manager
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

Kotlin
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

Swift
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].distance

Mé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 / Swift
// 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 →
Equipo de soporte

Soporte OSRMRoute

Escriba directamente a nuestro equipo

ESTAMOS PARA AYUDAR

¿Cómo podemos ayudarle?

Pregunte sobre integración, pagos o su cuenta. Las respuestas aparecerán en esta conversación.

Tus chats

Tus chats aparecerán aquí.