Mobil SDK’lar
Android/JVM için Kotlin, iOS için Swift. Tipli modeller ve asenkron isteklerle OSRMRoute coğrafi API’lerine bağlanın.
Kendi sunucunuz üzerinden bağlanın
OSRMRoute API anahtarını sunucunuzda tutun. Uygulama kısa ömürlü oturumunu kendi kimlik doğrulamalı proxy hizmetinize gönderir. Proxy izin verilen uç noktaları, kullanıcı erişimini ve kullanım sınırlarını denetlemeli, OSRMRoute anahtarını sunucuda eklemelidir. Uygulama tokenini OSRMRoute’a iletmeyin.
İndirin ve kurun
0.1.0 kaynak paketi hazırdır. Kotlin Maven Central’da yayımlanmadı. Kotlin klasörünü Gradle modülü, Swift klasörünü Xcode’da yerel paket olarak ekleyin.
// 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].distanceDesteklenen metotlar
Tipli yanıtlar: route, matrix, geocode, reverse ve autocomplete. Places JSON döndürür. getJson/getJSON ve postJson/postJSON diğer coğrafi uç noktaları destekler. Sunucu plan sınırları ve kapsamı geçerlidir.
İstekler ve hatalar
Varsayılan tekrar sayısı sıfırdır. İsteğe bağlı tekrar yalnızca 429, 502, 503 veya 504 GET yanıtlarında en fazla iki kez yapılır. Retry-After 30 saniyeyi aşıyorsa veya tarih biçimindeyse tekrarlanmaz. Ağ hataları ve POST istekleri otomatik tekrarlanmaz.
// 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.Yalnızca API entegrasyonu
Paketler harita çizmez, çevrimdışı harita veya adım adım navigasyon sunmaz. Kotlin Android API 21+ ve JVM 17; Swift iOS 15+ ve macOS 12+ içindir. Paket testleri gerçek cihaz testlerinin yerini tutmaz.
Dokümantasyon →