API Dokümantasyonu ve Playground
Giriş
OSRMRoute Directions API, uygulamalarınıza hızlı, yüksek performanslı coğrafi rotalama, seyahat matrisleri, adres arama (geocoding) ve rota optimizasyonu entegre etmek için oluşturulmuş RESTful bir web hizmetidir. Bu dokümantasyonda API'nin tüm yetenekleri, parametreleri ve entegrasyon adımları ayrıntılı olarak açıklanmıştır.
Kimlik Doğrulama
OSRMRoute API istekleri kimlik doğrulama için benzersiz bir API anahtarı kullanır. API anahtarınızı her isteğe sorgu parametresi olarak (?key=YOUR_KEY) veya HTTP Authorization başlığı aracılığıyla (Bearer token olarak) ekleyebilirsiniz.
Any endpointParametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| key | string | Zorunlu | - | Kişisel panelinizden edindiğiniz benzersiz API anahtarı. Bu anahtar isteklerinizin limitlerini belirler. |
Hata Kodları
OSRMRoute, bir isteğin durumunu belirtmek için standart HTTP durum kodları ve ayrıntılı JSON hata mesajları kullanır.
Yanıt Yapısının Açıklaması
Başlıca durum kodları ve anlamları: - **200 OK**: İstek başarıyla tamamlandı. - **400 Bad Request**: Parametreler geçersiz veya eksik. - **401 Unauthorized**: API anahtarı sağlanmadı veya geçersiz. - **403 Forbidden**: API anahtarı engellenmiş veya etkin değil. - **429 Too Many Requests**: Günlük kredi limiti aşıldı. - **500 Internal Error**: Dahili bir sistem hatası oluştu.
Routing API
A noktasından B noktasına (ve ara via-noktalarıyla) en hızlı ve en kısa rotayı hesaplar. Farklı ulaşım profilleri (driving, cycling, walking) için adım adım (turn-by-turn) talimatlar ve GeoJSON geometrisi döndürür.
/api/v1/osrm/route/v1/{profile}/{coordinates}Parametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| profile | string | Zorunlu | driving | Ulaşım türü profili. Desteklenen değerler: driving (otomobil), cycling (bisiklet), walking (yaya). |
| coordinates | string | Zorunlu | - | Noktaların koordinatları. Biçim: lon,lat;lon,lat;lon,lat... (en az 2 nokta). |
| overview | string | İsteğe bağlı | full | Döndürülen rota geometrisinin ayrıntı düzeyi: simplified (sadeleştirilmiş), full (tam geometri), false (geometrisiz). |
| geometries | string | İsteğe bağlı | geojson | Geometri biçimi: geojson (GeoJSON nesnesi), polyline (kodlanmış dize). |
| steps | boolean | İsteğe bağlı | true | Her dönüş için adım adım talimatların döndürülüp döndürülmeyeceği. |
Yanıt Yapısının Açıklaması
Başarılı yanıt; rotanın toplam mesafesini (metre cinsinden), seyahat süresini (saniye cinsinden), geçiş noktalarını ve GeoJSON rota çizgisini içerir.
Matrix API
Birden fazla nokta arasında hızlı bir mesafe ve seyahat süresi matrisi hesaplar (NxM tablosu). Lojistik rotalarını optimize etmek için ideal bir araçtır.
/api/v1/osrm/table/v1/{profile}/{coordinates}Parametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| profile | string | Zorunlu | driving | Ulaşım profili (driving, cycling, walking). |
| coordinates | string | Zorunlu | - | Matris noktaları. Biçim: lon,lat;lon,lat;lon,lat... |
| annotations | string | İsteğe bağlı | duration,distance | Hesaplanacak veri: duration (süre), distance (mesafe) veya her ikisi. |
Yanıt Yapısının Açıklaması
Başarılı yanıt, her başlangıç ve bitiş noktası kombinasyonu için iki boyutlu bir distances (mesafeler) ve durations (süreler) matris tablosu döndürür.
Map Matching API
Hatalı GPS izlerini gerçek yol ağına hizalar (snap to road). GPS sinyallerindeki gürültüyü temizlemek için kullanılır.
/api/v1/osrm/match/v1/{profile}/{coordinates}Parametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| profile | string | Zorunlu | driving | Ulaşım profili. |
| coordinates | string | Zorunlu | - | Hizalanacak GPS koordinatları dizisi (lon,lat;lon,lat...) |
| overview | string | İsteğe bağlı | full | Hizalanan rotanın geometri hassasiyeti. |
Nearest API
Herhangi bir koordinatı en yakın gerçek yol segmentine hizalar (snap) ve yol adı hakkında bilgi döndürür.
/api/v1/osrm/nearest/v1/{profile}/{coordinates}Parametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| profile | string | Zorunlu | driving | Ulaşım profili. |
| coordinates | string | Zorunlu | - | Yakınında arama yapılacak nokta. Biçim: lon,lat (tek çift). |
| number | integer | İsteğe bağlı | 3 | Bulunacak en yakın yol adaylarının sayısı. |
Trip API
Gezgin Satıcı Problemini (TSP) çözer: Verilen nokta kümesini ziyaret etmek için en optimal döngüsel (veya açık) rotayı bulur ve noktaları sıralar.
/api/v1/osrm/trip/v1/{profile}/{coordinates}Parametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| profile | string | Zorunlu | driving | Ulaşım profili. |
| coordinates | string | Zorunlu | - | Ziyaret edilecek noktalar. Biçim: lon,lat;lon,lat... |
| source | string | İsteğe bağlı | any | Rotanın başlayabileceği nokta (any veya ilk nokta). |
| destination | string | İsteğe bağlı | any | Rotanın biteceği nokta (any veya son nokta). |
Geocoding API
Adresleri coğrafi koordinatlara (veya tersine) dönüştürür. Entegre arama sistemleri için idealdir.
/api/1/geocodeParametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| q | string | Zorunlu | - | Aranacak adres (örn: "Nizami Caddesi, Bakü"). |
| reverse | boolean | İsteğe bağlı | false | Ters geocoding (koordinattan adrese arama) yapmak için true olmalıdır. |
Isochrone API
Belirli bir noktadan belirli bir süre veya mesafede ulaşılabilen coğrafi bölgelerin poligonlarını döndürür.
/api/1/isochroneParametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| point | string | Zorunlu | - | Merkez nokta. Biçim: lat,lon. |
| time_limit | integer | İsteğe bağlı | 600 | Seyahat süresi limiti (saniye cinsinden). |
Route Optimization API
Bir araç filosunun rotalarını optimize eder (Vehicle Routing Problem). Araçların teslimat ve taşıma planını en düşük maliyetle hesaplar.
/api/1/vrpParametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| vehicles | array | Zorunlu | [] | Araçların listesi (id, kapasite, başlangıç adresi vb.). |
| services | array | Zorunlu | [] | Hizmet verilecek adresler (id, koordinatlar, hizmet süresi vb.). |
Location Clustering API
Verilen koordinatları coğrafi yakınlıklarına ve yoğunluklarına göre gruplar (kümelere ayırır).
/api/1/clusterParametreler (Query Params)
| Parametre | Tür | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| customers | array | Zorunlu | [] | Kümelenecek müşteri koordinatları ve ağırlıkları. |