osrmroute
Dokumentation

Mobile SDKs

Kotlin für Android/JVM und Swift für iOS. Geografische OSRMRoute-APIs mit typisierten Modellen und asynchronen Anfragen.

Über Ihr Backend verbinden

Speichern Sie den OSRMRoute-Schlüssel auf Ihrem Server. Die App sendet ihre kurzlebige Sitzung an Ihren authentifizierten Proxy. Dieser prüft erlaubte Endpunkte, Benutzerzugriff und Limits und ergänzt den OSRMRoute-Schlüssel serverseitig. Leiten Sie den App-Token nicht an OSRMRoute weiter.

Herunterladen und installieren

Version 0.1.0 ist als Quellpaket verfügbar. Kotlin ist nicht auf Maven Central veröffentlicht. Binden Sie Kotlin als Gradle-Modul und den Swift-Ordner als lokales Xcode-Paket ein.

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

Unterstützte Methoden

Typisierte Antworten: route, matrix, geocode, reverse und autocomplete. Places liefert JSON. getJson/getJSON und postJson/postJSON unterstützen weitere geografische Endpunkte. Tariflimits und Abdeckung gelten weiterhin.

Anfragen und Fehler

Standardmäßig keine Wiederholungen. Optional bis zu zwei Wiederholungen für GET mit 429, 502, 503 oder 504. Retry-After über 30 Sekunden oder als Datum wird nicht wiederholt. Netzwerkfehler und POST werden nie automatisch wiederholt.

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.

Nur API-Integration

Keine Kartendarstellung, Offlinekarten oder Navigation. Kotlin: Android API 21+ und JVM 17; Swift: iOS 15+ und macOS 12+. Pakettests ersetzen keine Gerätetests.

Dokumentation →
Support-Team

OSRMRoute Support

Schreiben Sie direkt unserem Team

WIR HELFEN IHNEN

Wie können wir helfen?

Fragen Sie zu Integration, Abrechnung oder Konto. Unsere Antworten erscheinen in diesem Gespräch.

Ihre Chats

Ihre Chats erscheinen hier.