Mobil SDK-lar
Android/JVM üçün Kotlin, iOS üçün Swift. Tipli modellər və asinxron sorğularla OSRMRoute coğrafi API-lərinə qoşulun.
Öz backend-iniz üzərindən qoşulun
OSRMRoute API açarını serverinizdə saxlayın. Tətbiq qısamüddətli sessiya tokenini sizin autentifikasiyalı proxy-yə göndərir. Proxy icazəli endpointləri, istifadəçi girişini və limitləri yoxlamalı, OSRMRoute açarını serverdə əlavə etməlidir. Tətbiqin tokenini OSRMRoute-a ötürməyin.
Endirin və quraşdırın
0.1.0 versiyası mənbə paketi kimi mövcuddur. Kotlin Maven Central-da yayımlanmayıb. Kotlin paketini açıb Gradle modulu kimi qoşun; Swift qovluğunu Xcode-da lokal paket kimi əlavə edin.
// 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].distanceDəstəklənən metodlar
Tipli cavablar: route, matrix, geocode, reverse və autocomplete. Places JSON qaytarır. getJson/getJSON və postJson/postJSON digər coğrafi endpointləri dəstəkləyir. Serverdəki paket limitləri və əhatə dairəsi qüvvədədir.
Sorğular və xətalar
Təkrar cəhd standart olaraq sıfırdır. İstəyə bağlı təkrar yalnız 429, 502, 503 və 504 GET cavabları üçün ən çox iki dəfə edilir. Retry-After 30 saniyədən çoxdursa və ya tarix formatındadırsa sorğu təkrarlanmır. Şəbəkə xətaları və POST sorğuları avtomatik təkrarlanmır.
// 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ız API inteqrasiyası
Bu paketlər xəritə göstərmir, offline xəritə və addım-addım naviqasiya vermir. Kotlin Android API 21+ və JVM 17, Swift iOS 15+ və macOS 12+ üçündür. Paket testləri real cihaz yoxlamasını əvəz etmir.
Sənədləşdirmə →