SDK mobiles
Kotlin pour Android/JVM et Swift pour iOS. Des modèles typés et des requêtes asynchrones pour les API géographiques OSRMRoute.
Connexion via votre backend
Conservez la clé OSRMRoute sur votre serveur. L’application envoie sa session temporaire à votre proxy authentifié. Celui-ci contrôle les endpoints autorisés, les accès et les quotas, puis ajoute la clé OSRMRoute côté serveur. Ne transmettez pas le jeton de l’application à OSRMRoute.
Télécharger et installer
La version 0.1.0 est disponible en sources. Kotlin n’est pas publié sur Maven Central. Ajoutez Kotlin comme module Gradle et le dossier Swift comme paquet local dans 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éthodes disponibles
Réponses typées : route, matrix, geocode, reverse et autocomplete. Places renvoie du JSON. getJson/getJSON et postJson/postJSON couvrent les autres endpoints géographiques. Les limites du forfait et la couverture restent applicables.
Requêtes et erreurs
Aucune répétition par défaut. Jusqu’à deux tentatives facultatives pour les réponses GET 429, 502, 503 ou 504. Pas de répétition si Retry-After dépasse 30 secondes ou contient une date. Les erreurs réseau et POST ne sont jamais répétés automatiquement.
// 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.Intégration API uniquement
Ces paquets ne proposent ni rendu de carte, ni cartes hors ligne, ni navigation guidée. Kotlin : Android API 21+ et JVM 17 ; Swift : iOS 15+ et macOS 12+. Les tests de paquets ne remplacent pas les tests sur appareil.
Documentation →