osrmroute
Documentation

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.

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é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 / 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.

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 →
Équipe d’assistance

Assistance OSRMRoute

Écrivez directement à notre équipe

À VOTRE ÉCOUTE

Comment vous aider ?

Posez vos questions sur l’intégration, la facturation ou votre compte. Nos réponses apparaîtront ici.

Vos discussions

Vos discussions apparaîtront ici.