Android’de Location Parsing

Merhaba arkadaşlar bugün sizinle daha önce yapmış olduğumuz Android ile Konum Servisleri dersimizde elde ettiğimiz enlem ve boylam değerlerinden Ülke,Eyalet,Şehir gibi bilgilerin elde edilmesini sağlayacağız. Eğer Android ile Konum Servisleri dersini takip etmediyseniz buradan ulaşabilirsiniz.

Şimdi öncelikle bu projede de geçen projede yaptığımız işlemleri 2.defa yapmamak adına sıfırdan bir projeye başlamak yerine halen var olan proje içinde güncellemeler yaparak gideceğiz.

 1)Layout Tasarımı

Öncelikle Layout Dosyamızı açıyoruz ve layout dosyamızın içindeki an leyoutın içine şu elementleri ekliyoruz.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtEnlem"
        android:textAlignment="center"
        android:textSize="21sp"
        android:textColor="#ffffff"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtBoylam"
        android:textAlignment="center"
        android:textSize="21sp"
        android:textColor="#ffffff"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtUlke"
        android:textAlignment="center"
        android:textSize="21sp"
        android:textColor="#ffffff"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtSehir"
        android:textAlignment="center"
        android:textSize="21sp"
        android:textColor="#ffffff"/>
</LinearLayout>

2)Kodlama

Geçen dersimizde konum servislerini kullanarak enlem ve boylam değerlerini almıştık şimdi ise o değerleri parse ederek Ülke ve Şehir bilgisi alacağız.

Öncelikle activity sınıfımızın hemen altına global değişken olarak alttakileri ekliyoruz.

TextView txtUlke,txtSehir;

Sonrasında ise onCreate methodunun içine alttaki satırları ekliyoruz ve TextViewlerimizin birer nesnelerini yaratıyoruz.

txtUlke=(TextView)findViewById(R.id.txtUlke);
txtSehir=(TextView)findViewById(R.id.txtSehir);

Şimdi bütün ayarlar tamamlandı. Artık aldığımız enlem ve boylam değerlerini parse edebiliriz. Hatırlarsınız geçen derste onLocationChanged methodu ile her konum güncellemesi aldığımızda çalıştırılacak kodları yazmıştık. Şimdi bu methodun içine aşağıdaki kodları ekleyeceğiz ve bu şekilde her konum güncellemesi aldığımızda güncel konumun enlem ve boylam değerlerini parse dip bulunulan ülke ve şehri ekrana yazdıracağız.

try
{
    Geocoder geocoder;
    List<Address> addresses;
    geocoder = new Geocoder(this, Locale.getDefault());

    addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
    txtUlke.setText("Ülke:"+addresses.get(0).getCountryName());
    txtSehir.setText("Şehir:"+addresses.get(0).getLocality());

}
catch (Exception e)
{
    if(txtUlke.getText().toString()==null || txtUlke.getText().toString().equals(""))
    {
        txtUlke.setText("Bilinmiyor");
    }
    if(txtSehir.getText().toString()==null || txtSehir.getText().toString().equals(""))
    {
        txtSehir.setText("Bilinmiyor");
    }
    e.printStackTrace();
}

Arkadaşlar bu derste de elde ettiğimiz konum bilgileri üzerinden detaylı adres bilgisi almayı işledik. Bol bol örnek yapmayı unutmayın.

Leave a Reply

Your email address will not be published. Required fields are marked *