API & Library

GPS ile En Yakın Noktaları Bulma: Android Location Services ve Google Maps Service API

GPS koordinatlarınızı yorumlayarak çalışan bir çok mobil uygulama bulunmaktadır.Örneğin; Bitaksi, Mobiett, Teknosa gibi mobil uygulamaları ele alırsak, Bitaksi uygulaması, size en yakın taksiyi tavsiye eder, gitmek istediğiniz noktaya ne kadar sürede ulaşacağınızı hesaplar. Mobiett uygulaması, duraklara yaklaşan otobüslerin takip edilmesinde fayda sağlar.Son olarak Teknosa mobil uygulamasından bahsetmek gerekirse, bu uygulama ise en yakın Teknosa mağazalarına ulaşım konusunda yardım için kullanılır.Gördüğünüz gibi mobil uygulamalarda GPS koordinatlarını kullanarak hayatınızı çok daha kolaylaştırabilirsiniz.

Malum devir kolaylık ve hız devri olduğu için bende bu makalemde,bir Android uygulamasında kullanıcının Gps konumu kullanarak, kullanıcıya en yakın mesafedeki restoranları bulup, Google Maps üzerinde gösterilmesini örnekledim.

Projenin İşleyişi
İlk önce Android uygulama tarafında, kullanıcının GPS koordinat (latitude ve longitude) değerlerini buluyoruz. Sonrasında bu GPS koordinatlarını RESTful Web servis aracılığıyla sunucuya post ediyoruz. Php programlama dili ile programlama yaparak, Mysql veritabanımda bulunan restoranların latitude ve longitude değerlerini alıp, Android uygulama tarafından gelen GPS koordinat değerleri ile karşılaştırarak kullanıcının konumuna en yakın mesafedeki restoranları bulduk. Bulduğumuz bu restoranların latitude ve longitude değerlerini Android uygulama tarafına gönderdik ve bu konumları Google Maps üzerinde işaretleyerek gösterdik.

Sonuç olarak da aşağıdaki gibi bir görüntü ortaya çıkıyor.

12

Örnek projemizi kodlamaya başlamadan önce bazı işlemler yapmamız gerekmektedir.Bu işlemleri sırayla yapmaya başlayalım.

1- Google Play Services Yükleme
Google haritayla ilgili bir geliştirme yapacağımızdan dolayı, Google Play Services yüklememiz gerekmektedir. Bunun için Sdk manager’ı açıp Extras bölümünden Google Play Services işaretleyip, yükleme işlemini gerçekleştirin.

googleplayservices

2- Google Maps API Key Oluşturma
Google Maps API Key oluşturma işlemini aşağıdaki video eğitimimi izleyerek öğrenebilirsiniz.

Şimdi ise projenin kodlarını yazmaya başlayalım…

Android Uygulamada Yapılacak İlgili Ayarlar ve Kod Yazımı

1-Oluşturduğumuz Android Projeye İlgili Kütüphaneleri Yükleme
Android Studio Ide ile oluşturduğum projemin app dizinin altındaki build.gradle dosyasını açıyoruz. Dependencies kod bloklarının arasına aşağıdaki kodları yerleştirerek Google Play services API ve Http Client kütüphanelerini yüklüyoruz.

2-AndroidManifest Dosyasına İlgili Ayarları Ekleme
•     AndroidManifest dosyasına, daha önce üretmiş olduğumuz Google API Key’i ekleme işlemini yapacağız.Bunun için aşağıda görmüş olduğunuz meta-data tag kodunun içindeki value özelliğine Google API Key’i ekleyeniz.

•     Google maps ile ilgili işlemler yapabilmemiz için AndroidManifest.xml dosyamıza kodlar ekleyerek, bazı izinleri vermemiz gerekmektedir.

Kullanacağımız izinlerin açıklamaları aşağıda bulunmaktadır.

ACCESS_NETWORK_STATE –veri indirilebilir mi yoksa indirilemez miyi anlamak için ağ durumunu kontrol etmede kullanılan izin
INTERNET – internet bağlantı durumunu kontrol etmede kullanılan izin
WRITE_EXTERNAL_STORAGE – Google Maps’in harita datalarını harici depolamaya yazdığı gibi yazma için izin
ACCESS_COARSE_LOCATION – WiFi ve cep verileri kullanarak, kullanıcının yerini belirlemek için kullanılan izin
ACCESS_FINE_LOCATION – GPS kullanarak, kullanıcının konumu belirlemek için kullanılan izin
OpenGL ES V2 –Google Maps V2 için gerekli izin

İzinler ve Maps key’in AndroidManifest dosyasında eklenmiş hali sonuç olarak şu şekildedir.

3-Xml Kodları
activity_main.xml kodları:

4-Java Kodları
MainActivity.java kodları:

HttpClientMy.java kodları:

Sunucuda Yapılacak İlgili Ayarlar ve Kod Yazımı
Sunucu veritabanındaki(mysql) tabloların oluşturulması
Sunucu veritabanındaki(mysql) tablonun oluşturulması gerekmektedir. restoranLokasyon tablosunu aşağıdaki resimde gösterildiği gibi oluşturulmalıdır.

db

Benim veritabanımda restoranların latitude ve longitude değerleri bulunmaktadır.Sizde veritabanınıza Google Maps’dan farklı restoranların latitude ve longitude değerlerini alıp, kayıt ederek örnek data oluşturabilirsiniz.

Php programlama dilini kullanarak yazılmış, sunucu taraflı kodlar

Son olarak ufak bir not: Bu yukarıda anlattığım projemin kodlarını indirmek isterseniz; yapmanız gereken tek şey github linkine tıklamak.

Hayatınızın daha da kolaylaşması dileğiyle…

Bülten
Bültene abone ol

Bültene abone olarak yeni makalelerimden haberdar olun.

9 Yorumlar

Bir cevap yazın

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