Skip to content

An android application that makes mobile queries using taxi trajectory data, cloud computing (Firebase Firestore) and Google Map Api. (Flutter SDK)

Notifications You must be signed in to change notification settings

mustafayigit34/flutter-mobilSorgular-YazLab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MOBİL SORGULAR

YazLab 5. Proje

Daha fazla bilgi için --> Proje Raporu

Kurulum

Öncelikle pubspec.yaml dosyasında flutter pub get komutunu çalıştırmanız gerekmektedir. Aksi taktirde çalışmayacaktır. Daha sonra "lib\main.dart" yolunu izleyerek flutter emulators --launch "Your Emulator Name" (örn: flutter emulators --launch Pixel_2 API 26) ile sanal cihazınızı çalıştırıp ardından flutter run komutuyla uygulamayı çalıştırabilirsiniz.

Giriş

Bu projede Firebase Firestore üzerinden çeşitli sorgular yapılarak filtrelenmiş veriler alınmış, ardından bu veriler ile proje isterleri üç aşama halinde gerçeklenmiştir. İlk aşamada veritabanı üzerinde bulunan verilerden istere uygun olan veriler getirilmiştir. İkinci aşamada ise kullanıcı uygulamaya daha çok dahil edilmiş ve kullanıcı tarafından seçilen başlangıç-bitiş tarihine, bölge adına göre istere cevap niteliğinde olan veriler ekranda saydırılarak sıralanmıştır. Üçüncü ve son aşamada ise projeye Google Maps ürünleri dahil olmuş ve kullanıcıdan alınan sınırlamalara göre üretilen sonuç harita üzerinde çizdirilerek kullanıcıya görsel bir sonuç sunulmuştur. Kullanıcıların tüm bu işlemleri yapabilmesi için bir mobil uygulama tasarlanmıştır.

Proje İsterleri

Gezinge verileri hareket halindeki nesnelerin konumlarını ve hareketle ilgili diğer bilgileri içerir. The New York City Taxi and Limousine Commission (TLC) sarı taksi, yeşil taksi, kiralık araçlarla ilgilenmektedir. TLC düzenli olarak tamamlanan her taksi yolculuğu bilgilerini kaydetmektedir. Bu proje kapsamında Aralık 2020’de yayınlanan sarı taksi verisi kullanılacaktır.

Uygulamada bulut ortamından veriler çekilerek bir sonraki başlıkta belirtilen her bir sorgu tipinden birer sorguyu gerçekleştirmeniz beklenmektedir. Harita ile ilgili sorgularda Google Map API kullanılmalıdır.

Tip 1

Aşağıdaki sorgulardan birine mutlaka çözüm bulunmalıdır.

  • En fazla yolcu taşınan 5 günü ve toplam yolcu sayılarını listeleyiniz.
  • Belirli mesafenin altında en çok seyahat yapılan günü ve seyahat uzunluğunu bulunuz (mesafe seçilebilmeli).
  • 👌 En uzun mesafeli 5 yolculuktaki gün ve mesafeleri listeleyiniz.

Tip 2

Aşağıdaki sorgulardan birine mutlaka çözüm bulunmalıdır.

  • 👌 İki tarih arasında belirli bir lokasyondan hareket eden araç sayısı kaçtır (tarihler ve lokasyon seçilebilmeli)?
  • Günlük seyahat başına düşen ortalama alınan ücretlere göre; en az ücret alınan iki tarih arasındaki günlük alınan ortalama ücretleri listeleyiniz.
  • İki tarih arasında seyahat edilen en az mesafeli 5 yolculuk hangisidir (tarihler seçilebilmeli)?

Tip 3

Aşağıdaki sorgulardan birine mutlaka çözüm bulunmalıdır.

  • 👌 Belirli bir günde en uzun seyahatin harita üstünde yolunu çiziniz (gün seçilebilmeli).
    Başlangıç ve varış konumları lokasyonun merkezi kabul edip mesafeye görre bir yol bulunmalıdır.
  • Belirli bir günde aynı konumdan hareket eden araçların rastgele 5’inin yolunu çiziniz (gün ve konum seçilebilmeli).
    Başlangıç ve varış konumları lokasyonun merkezi kabul edip mesafeye göre bir yol bulunmalıdır.
  • En az 3 yolcunun bulunduğu seyahatlerden en kısa mesafeli ve en uzun mesafeli yolu çiziniz.
    Başlangıç ve varış konumları lokasyonun merkezi kabul edip mesafeye göre bir yol bulunmalıdır.

Yöntem

Bu projede izlenilen yol aşağıda anlatılmıştır:
Proje isterlerine geçmeden önce projede kullanılacak verilerin sayısının azaltılması ve bulut ortamına yüklenmesi işlemleri Python dili kullanılarak yapılmıştır. Daha sonra ise proje isterlerine geçilmiştir. Proje üç tip sorgu için üç aşama şeklinde tasarlanmıştır.
Veriler https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page sitesinden alınıp birkaç düzenleme ile Firebase Firestore'a aktarılmıştır. Dosya isimleri:

  • yellow tripdata 2020-12.csv
  • taxi+ zone lookup.csv

    olup indirildikten sonraki düzenlemeler ile Firestore'da şu şekilde görülmektedir:

    trips zones
    Belge (collection) isimleri sırasıyla "trips" ve "zones" olmalıdır.

    Belgede değişiklik yapılmasının sebebi, Google Maps'te yol çizdirme işleminin yapılabilmesi için enlem (latitude) ve boylam (longitude) bilgilerine ihtiyaç duyulmasıdır.

    Uygulama çalıştırıldığında şu şekilde görülecektir:

    anasayfa

Aşama 1 (Tip 1 Sorgu):

Kullanıcı ana menü ekranında “TİP 1 SORGU” butonuna tıkladığında Firebase Firestore üzerinden “en uzun mesafeli beş yolculuktaki gün ve mesafeler” isterini sağlayacak veriler çekilmektedir. Verilerin çekilmesini sağlayan sorgu, uygulamanın içerisinden Firebase’e gönderilmektedir. Sorgu ile elde edilen veriler cihaz ekranında art arda sıralanarak gösterilmektedir.

sorgu1

sorgu1_sayfa

Aşama 2 (Tip 2 Sorgu):

Kullanıcı ana menü ekranında “TİP 2 SORGU” butonuna tıkladığında başlangıçbitiş tarihleri ve mekan adı seçerek Firebase Firestore üzerinden “iki tarih arasında belirli bir lokasyondan hareket eden araç sayısı” isterini sağlayacak veriler çekilmektedir. Verilerin çekilmesini sağlayan sorgu, uygulamanın içerisinden Firebase’e gönderilmektedir. Sorgu ile elde edilen veriler cihaz ekranında detaylarıyla birlikte sıralanarak gösterilmiştir. Sadece araç sayısını göstermek yerine her yolculuğun detayları ile birlikte gösterilmesi ile ister daha da geliştirilmiştir.

sorgu2

sorgu2_sayfa

Aşama 3 (Tip 3 Sorgu):

Kullanıcı ana menü ekranında “TİP 3 SORGU” butonuna tıkladığında bir tarih seçerek ve hemen ardından “Haritada Göster” butonuna tıklayarak Firebase Firestore üzerinden “belirli bir günde en uzun seyahatin harita üzerinde yolunu çizdirme” isterini sağlayacak veriler çekilmektedir. Verilerin çekilmesini sağlayan sorgu, uygulamanın içerisinden Firebase’e gönderilmektedir. Sorgu ile elde edilen veriler (enlem-boylam bilgileri) doğrultusunda Google Maps üzerinde çizdirilerek cihaz ekranında gösterilmiştir.

sorgu3

sorgu3_sayfa1

sorgu3_sayfa2

Akış Şeması

sema

Referanslar

About

An android application that makes mobile queries using taxi trajectory data, cloud computing (Firebase Firestore) and Google Map Api. (Flutter SDK)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published