osrmroute
Dokümantasyon

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.

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

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

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 →
Destek ekibi

OSRMRoute Destek

Ekibimize doğrudan yazın

YARDIMA HAZIRIZ

Nasıl yardımcı olabiliriz?

Entegrasyon, ödeme veya hesabınız hakkında yazın. Yanıtlarımız bu sohbette görünür.

Sohbetleriniz

Sohbetleriniz burada görünecek.