Directions api nedir? Direction yön, istikamet anlamına gelmektedir. Google’ın hizmeti olan Google mapin bize sunduğu bu api bizim başlangıç noktasını ve bitiş noktasını belirtmemiz takdirinde bizi yönlendiren bize en kısa, en verimli, en müsait yolu çizerek bu istikamette bize yol tarifi yapan Google’ın yol tarifi api dir. Aklımıza hemen şu soru gelecek illa Google’ın çizdiği yolu kullanmak zorunda mıyız ben Konya dan İstanbul’a Ankara üzerinden gitmek istiyorum bana yol tarifi yaparken bu güzergah üzerinden yapsın diyebiliyoruz. Veya sadece araba değil yürüme veya bisiklet ile gittiğimizi belirterek buna göre bir yol tarifi de çizdirebiliyoruz. Yani Google bize istediğimiz şekilde özelleştirilmiş bir yol tarifi imkanı sunuyor. Peki bu apiyi nasıl kullanıyoruz gelin beraber bunu inceleyelim.
Bu apiyi kullanmamız için apiyi etkinleştirmemiz gerekiyor ve api keyi edinmiş olmamız gerekiyor bilgilendirme kategorisinin altındaki makalemizde api keyin nasıl alındığını ve api yi nasıl etkinleştirdiğimizi anlatmıştık. Buraya tıklayarak api key etkinleştirme makalesine gidebilir veya Genel Bilgilendirme kategorisine göz atabilirsiniz.
Öncelikle şunu bilmeliyiz ki bu apiyi kullanırken url olarak bir link oluşturuyoruz. parametreleri bu url içerisine giriyoruz ve bize iki şekilde sonuç veriyor. Bunlardan birincisi json diğeri de xml aşağıdaki url örneğine bakalım.
https://maps.googleapis.com/maps/api/directions/outputFormat?parameters
Örnekteki url de directions yazısından sonra hangi formatta sonuçları listelemek istiyorsak kullanmak istediğimiz formatı(outputFormat) buraya yazıyoruz. Yukarıda da söylediğimiz gibi 2 tür format var bunlar;
- Json
- Xml
? işareti ile devam ederek artık gerekli olan parametreleri ve isteğe bağlı yani özelleştirmek istersek bu parametreleri de girerek URL’imizi de tamamlayacağız. Öncelikle gerekli olan parametrelere bakalım.
Bu URL de gerekli parametrelerimiz:
- orgin: Başlangıç noktası olarak belirletiğimiz nokta,bu nokta bir yer adı,adres veya o adresin kimliği olabilir. Örneğin “Bosna+Mahallesi,Konya” şeklinde kullanabiliriz.
- Orgin=konya+bosnahersek+mahallesi
- Orgin=41.43206,-81.13648
- Orgin=place_id: ChIJ3S-JXmauEmsRUcIaWtf4MzE
- destination: Varış noktamız. Orgin ile aynı parametreleri alır
- Key=My_Api_Key Google dan aldığımız api keyimizdir.
İsteğe bağlı kullanılabilecek parametreler:
- waypoints: kullanımı place_id: t0MRBtvV4wrVr8REDHjV şeklinde kullanılır. Bu id bulunduğun konuma en yakın yolu işaret eder. Örneğin bu id içerisinde evinizin konum konumu saklıysa evinizin önüne kadar gelen yol işaret etmektedir.
- mode : yürüyerek,araç veya bisiklet olarak yol tarifi göstermesi için kullanılır.
- avoid : istenmeyen yol güzergahlarından kaçınmamızı sağlar örneğin feribot,otoyol,ücretli geçiş yerlerinden yol tarifi yapma. Sonuç olarak istenildiğinde ücretli yerlerden feribot vs yol tarif etmeyerek daha elverişli bir yol güzergahı çizmiş olur
- units :metric veya imperial gibi değerler alır. sanırım kuşbakışı bir çizgi çizer.
https://maps.googleapis.com/maps/api/directions/json?&origin=konya+bosnahersek&destination=konya+merkez&key=Api_Key
İlk json yazısını görüyoruz bu bize geriye dönecek verileri json formatında olacağı anlamına geldiğini zaten söylemiştik. Sonrasında origin yani başlangıç konumu destination bitiş konum ve en sonunda da key Google dan aldığımız api keyimizi giriyoruz. Artık direction apimiz hazır.
Yol Güzergahını Özelleştirmek – Waypoints
Bir noktadan diğer noktaya giderken yol güzergahını özelleştirebiliriz. En başta anlattığımız gibi Konya’dan İstanbul’a Ankara üzerinden gitmek isteyebiliriz. Normalde Google’a başlangıç ve bitiş konumlarını belirttiğimizde en kısa yolu çizer biz bu yolu istenilen nokta üzerinden geçmesini sağlarız.
https://maps.googleapis.com/maps/api/directions/json?origin=bosnahersek+mahallesi+konya&destination=meram+konya&waypoints=optimize:true|Karah%C3%BCy%C3%BCk+Mahallesi&key=Api_key
Yukarıdaki linkte olduğu gibi başlangıç konumu Bosnahersek mahallesi konya olarak belirledik hedef konum Konya Meram olarak belirledik. Fakat biz karaküyük mahallesinden de geçmek istiyoruz. Bu durumda linkteki gibi waypoints=optimize:true|üzerinden geçeceğimiz noka&key=api key kalıbında yazarak rotamızı bu nokta üzerinden geçecek şekilde en kısa yolu seçerek ayarlıyoruz.
Diğer Kullanım Yöntemleri
Kullanırken bir çok parametre var. İster hepsini kullanabiliriz sadece gerekli olan parametreleri kullanarak api kullanımı gerçekleştirebiliriz. Bu parametrelerden bazılarını kullanalım. Örneğin istenmeyen yol güzergahlarından kaçınalım ve bisiklet modunu seçerek bisikletle gittiğimizi var sayalım.
https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&avoid=highways&mode=bicycling&key=YOUR_API_KEY
Bu şekilde kullanarak sonuçları istediğimiz şekilde özelleştiriyoruz. Embed apiyi kullanmak için buradaki yazıya tıklayabiliriz.
Oluşturulan verinin kullanılması
Biz bu linke eriştiğimiz zaman karşımıza json olarak bir veri çıkıyor. Peki bu veriyi nasıl kullanacağız ? Aşağıdaki resmi inceleyelim.
Yukarıdaki resimde görünen veriler https://maps.googleapis.com/maps/api/directions/json?origin=bosnahersek+mahallesi+konya&destination=meram+konya&waypoints=optimize:true|Karah%C3%BCy%C3%BCk+Mahallesi&key=AIzaSyAYAbteT-XMxoTTP–efC09q6Wae0eeT-c
Linki üzerinden elde edilmiş verilerdir.
- Başlangıç ile biriş arasındaki mesafe
- İki mesafe arasında hareket ederken geçecek zaman
- Bitiş adresi
- Başlangıç Adresi
Aklımıza şöyle bir soru gelebilir linki incelediğimizde başlangıç adresi bosna hersek mahallesi ve bitiş adresi meram konya olarak gözükmesine rağmen neden bitiş adresi karahüyük olarak gözüküyor? Bunun cevabı waypoints belirlediğimiz için yani başlangıç adresi ile 1. Wayponit konumuna kadar en kısa aralığı buluyor. Bu yolu çizdikten sonra artık 1. Wayponit konumu bizim başlangıç adresimiz ve bitiş adresimiz varsa 2. Waypoint şeklinde devam ediyor yok ise destination adresimiz oluyor.
<?php $file = file_get_contents( https://maps.googleapis.com/maps/api/directions/json?origin=bosnahersek+mahallesi+konya&destination=meram+konya&waypoints=optimize:true|Karah%C3%BCy%C3%BCk+Mahallesi&key=api_key'); $json = json_decode($file); echo '<h3>'.$json-> routes->legs-> start_address.'</h3>'; ?>
Bu jsonu kullanmak oldukça basit file_get_contents ile linkdeki verileri $file değişkenine atarak $json değişkenine json_decode fonksiyonu ile php de kullanabileceğimiz bir yapıya sokuyoruz. Bundan sonra bu veriyi nasıl kullanacağınız size kalmış.