Distance Matrix Api – Mesafe Süre Hesapla

Distance matrix apisi ne işe yarar ? Distance matrix apisi başlangıç ve bitiş konumları bilinen iki nokta arasındaki mesafeyi ve süreyi hesaplar directions apisinde olduğu gibi bu apide de json olarak veya xml olarak geriye değer döndürmektedir.


Öncelikle 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.


Kullanım şekli

https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters

Örnekteki url de distancematrix yazısından sonra hangi formatta sonuçları listelemek istiyorsak kullanmak istediğimiz formatı(outputFormat) buraya yazıyoruz. En başta 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.

Örnek bir link oluşturacak olursak başlangıç adresimiz Bosna Hersek mahallesi, Konya olsun ve bitiş olarak da Meram Konya olsun linkimiz aşağıdaki gibi olacaktır.

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Bosna+hersek+mahallesi,Konya&destinations=Meram,Konya&key=api_key

Bu linke eriştiğimizde karşımıza json formatında şöyle bir sonuç çıkacak. Kaç dakika süreceği ve kaç km mesafe olduğunu basitçe görebiliriz.

{
   "destination_addresses" : [ "Meram/Konya, Türkiye" ],
   "origin_addresses" : [ "Bosna Hersek Mahallesi, 42250 Selçuklu/Konya, Türkiye" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "48,8 km",
                  "value" : 48796
               },
               "duration" : {
                  "text" : "54 dakika",
                  "value" : 3222
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

8 thoughts on “Distance Matrix Api – Mesafe Süre Hesapla”

  1. Merhaba,

    Bu seçeneği service724.net/deneme.php de kullandım. Fakat linke bakarsanız sonuçlar çok yavaş geliyor. Tüm sonuçlar tek tek döngü içersinde sıralanıyor. Sonra yazdırılıyor. Sorun nedir çözemiyorum.

    Ayrıca km bazlı en yakın yerleri tekrar sıralama yapmam lazım. Nasıl yapabilirim. Fikriniz varmı ?

    1. Merhabalar Mert Bey, sanırım deneme.php sayfanızı sildiğiniz için sayfa görünmemektedir.

        1. Aynı zamanda sizden bir konu hakkında daha bilgi rica edeceğim. Google Distance Matrix ve Google Geocode servisi ücretlimi ? Sitede yazdığınız gibi API key aldıktan sonra panelde bana 1 sorgu hakkı veriyor. Yardımınızı rica ediyorum.

          1. 1 Sorgudan daha fazla hakkınız var 🙂 Google coğrafi kodlama apisi için aylık kullanım olarak 40.000 çağrıya kadar ücretsiz olarak bize sunmaktadır. Fiyatlandırmayı ve diğer harita apilerinin fiyatlandırmasını Google şu sayfasında paylaşmış istersen bir göz atabilirisin. https://cloud.google.com/maps-platform/pricing/sheet/

  2. Fiyatlandırma ekleyebiliyor muyuz ? Örneğin kişi bir yerden bir yeri seçti ve 53 kilometre çıktı. Bu 53 km mesafeyi 265 TL olarak yansıtabilir miyiz ? Yani 1 kilometre başına 5 TL ücretlendirme ekleyebilir miyiz ? Uber gibi ancak sitemiz için.

    1. Tabiki yapabilirsiniz km ile birim fiyatı çarpmanız yeterli. Sonucu nereye yazacağınızı belirlediyseniz gerisi kolay 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir