osrmroute
Documentação

SDKs móveis

Kotlin para Android/JVM e Swift para iOS. Modelos tipados e pedidos assíncronos para as APIs geográficas OSRMRoute.

Ligue através do seu backend

Guarde a chave OSRMRoute no servidor. A aplicação envia a sessão temporária ao seu proxy autenticado. O proxy valida endpoints permitidos, acesso e limites e adiciona a chave OSRMRoute no servidor. Não encaminhe o token da aplicação para OSRMRoute.

Transferir e instalar

A versão 0.1.0 está disponível em código-fonte. Kotlin não está publicado no Maven Central. Inclua Kotlin como módulo Gradle e a pasta Swift como pacote local no 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étodos disponíveis

Respostas tipadas: route, matrix, geocode, reverse e autocomplete. Places devolve JSON. getJson/getJSON e postJson/postJSON suportam outros endpoints geográficos. Aplicam-se os limites do plano e a cobertura.

Pedidos e erros

Sem repetição por predefinição. Opcionalmente até duas repetições GET para 429, 502, 503 ou 504. Não se repete se Retry-After exceder 30 segundos ou for uma data. Erros de rede e pedidos POST nunca são repetidos automaticamente.

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.

Apenas integração API

Não inclui renderização de mapas, mapas offline ou navegação guiada. Kotlin: Android API 21+ e JVM 17; Swift: iOS 15+ e macOS 12+. Testes do pacote não substituem testes em dispositivos.

Documentação →
Equipa de suporte

Suporte OSRMRoute

Escreva diretamente à nossa equipa

ESTAMOS PARA AJUDAR

Como podemos ajudar?

Pergunte sobre integração, faturação ou a sua conta. As respostas aparecem nesta conversa.

Suas conversas

Suas conversas aparecerão aqui.