Murat Mutlu
Akkim Akademi
Published in
4 min readOct 20, 2022

--

Power BI’da İki Konum Arasındaki Mesafe ve Varış Süresi Hesabı

Merhabalar,

Bu yazıda Power BI’da konumlar arası mesafe ve süre hesabı için kullandığım teknoloji ve uyguladığım yöntemlerden bahsedeceğim.

İlk olarak projeye hazırlamış olduğum satış temsilcilerinin müşteri ziyaretlerini içeren veri setini ekliyorum. Veri setinin içinde temsilci ve müşterilere ait enlem, boylam ve şehir ismi gibi konum bilgileri bulunmaktadır.

Temsilci ve müşteri arasındaki mesafe ve süre hesaplarını yapmak için projemizde Google Cloud servislerinden Distance Matrix API ‘yi ekleyeceğiz. Google Cloud’a kayıtlı değilseniz console.developers.google.com adresi üzerinden kayıt olabilirsiniz.

Google Cloud’a giriş yaptıktan sonra Distance Matrix API servisini kullanabilmek için sırasıyla aşağıdaki adımları takip ediyoruz.

  1. Yukarıda bulunan proje seçme butonuna tıklayarak yeni bir proje ekleyiniz.

2.Sol tarafta bulunan Libary bölümüne giriniz. Bu bölümde bulunan Distance Matrix API servisini projenize dahil ediniz.

3.Credentials bölümüne giriniz. Yukarıda bulunan Create Credentials butonuna tıklayarak yeni API anahtarı oluşturunuz.

4.Oluşturduğunuz API anahtarını görüntüleyip kaydediniz. Bu anahtarı Web API servisimizde kullanacağız.

5.Distance Matrix API dokümanında örnek olarak belirtilmiş API İsteklerinden birini kullanarak API anahtarınızın aktif olup olmadığını kontrol edebilirsiniz.

Not: API isteğinin sonuna anahtar kodunuzu yapıştırıp oluşan URL’yi tarayıcıda aratınız. Arattıktan sonra aşağıda belirtildiği gibi json formatında mesafe ve süre bilgileri geliyor ise servisiniz sorunsuz çalışıyor demektir.

Google Cloud tarafında ayarları bitirdikten sonra API servisini Power BI projenize dahil etmek için aşağıdaki adımları takip ediniz.

  1. Yeni veri kaynağı bölümünden Web’i seçiniz. Daha sonra açılan ekran üzerine API URL’yi yapıştırınız.

Raporda kullanılacak API servisi aşağıda belirtilmiştir.

https://maps.googleapis.com/maps/api/distancematrix/json?
units=metric
&origins=”&Origin&”
&destinations=”&Destination&”
&mode=driving
&key=xxxxxxxxxxxxxxxxxxxxxxxxxx

Serviste kullanılan parametrelerin açıklamaları;
units: mesafe ölçmede kullanılan birim. Her zaman metre cinsinden kullanılır.
origins: Başlangıç adresi yada konumu
destinations: Hedef adresi yada konumu
mode: Ulaşım modu(Yürüme, Sürüş, Bisiklet, Toplu Taşıma vs.)
key: Servis için oluşturduğumuz API anahtarı

2. Eklenen kaynak üzerinden Advanced Editor’ü açınız. Başlangıç ve Hedef noktaları için parametre ekleyerek sorguyu fonksiyona dönüştürünüz.

Sorgu çalıştıktan sonraki fonksiyon görüntüsü aşağıda belirtilmiştir. Adres ya da konum bilgilerini girerek fonksiyonu kullanabilirsiniz.

3.Konum bilgilerinin bulunduğu tabloda Add Column bölümünden Invoke Custom Function’a tıklayınız. Açılan ekran üzerinden fonksiyonu seçip şehir ismi ya da konum bilgilerinin bulunduğu sütunları seçiniz.

Fonksiyonu çalıştırdıktan sonra konumlar arasındaki mesafe ve süre bilgileri gelecektir.

Not: Şehir ya da bölge gibi sözel konumları kullandığınızda bazı yer isimlerini algılayamadığından hesaplamada boş değerler gelebilir. Bunun önüne geçmek için sözel konum yerine enlem ve boylam bilgilerini kullanabilirsiniz.

Hesaplamada temsilci ve müşteriye ait enlem ve boylam bilgileri kullanıldığına aşağıda belirtildiği gibi boş değer getirmeden hesaplamaktadır.

Raporumuz için gerekli olan mesafe ve süre hesaplarını tamamladıktan sonra artık görselleştirme bölümüne geçebiliriz.

Temsilci ziyaretlerinin harita üzerinden takip edilebilmesi için Route map harita eklentisi kullanılmıştır. Bu haritayı görsellerden projenize dahil edebilirsiniz.

Haritaya eklenen alanlar aşağıda belirtilmiştir. Enlem ve boylam bilgileri sayesinde başlangıç ve hedef noktası arasındaki güzergah çizilmektedir.

Rapora filtreler ekleyerek dinamik bir şekilde kullanabilirsiniz.

Raporda kullanmış olduğum veri setine aşağıdaki linkten ulaşabilirsiniz.

https://www.kaggle.com/datasets/muratmutlubi/sales-representative-visits/settings

— Konum hesabı gereken raporlarınızda artık bu yöntemleri de kullanabilirsiniz.

--

--

Murat Mutlu
Akkim Akademi

Business Intelligence Responsible | HTML/CSS | JavaScript | C# | ASP.NET MVC | Python | Machine Learning | PowerBI | Excel | SQL | SSAS | SSRS |SSIS