Windows Phone 7.1 GPS Lokasyon Bulma ve Pinleme - 2

By Burak TUNGUT - 21.11.2012 - 8 Yorum - Kategori Windows Phone 8

Bu makale ile Windows Phone 7.1 de Bing Maps konusuna devam ediyor, GPS den aldığımız enlem ve boylam bilgilerine göre haritada cihaz yerini işaretliyor olacağız.
Bu konu ile cihazın hem GPS özelliğini kullanmayı hem de Bing Maps konusunu pekiştirerek, Pushpin ile Pinleme yapmayı öğreneceğiz.

 Sadece konum bilgisini almak ve ekrana mesaj göstermekten ziyade bir önceki konumuzda gördüğümüz Bing Maps kontorlünün devamı niteliğinde konum bilgisini harita üzerinde işaretleme yaparak göstereceğiz.
Yapacağımız uygulama içersine ekleyeceğimiz butonun tetiklenmesi halinde lokasyon bilgimizi alıp, alınan bu bilgilere göre de harita kontrolümüzün üzerinde pinleme işlemini gerçekleştireceğiz.

Dilerseniz hemen Visual Studio IDE'lerimizi açalım,

Yeni bir Windows Phone projesi yaratalım ve adını wpLokasyon olarak değiştirelim.

Sayfamıza bir adet Map kontrolü ve biri adet Button ekleyelim. Map kontrolünün ve bu sınıfın yükleme işlemleri için bir önceki makalemi inceleyebilirsiniz.

Sayfamızın kod tarafına geçelim Constructor (yapılandırma) bölümünde her katmandan erişebilmek üzere GeoCoordinateWatcher sınıfından bir nesne türetelim. Öncelikle tam adını yazdığımız nesnenin ait olduğu isimuzayının yani namespacein eklenmesi için CTRL + (nokta) tuş kombinasyonunu kullanarak şekildeki gibi açılacak olan popupdan ilk seçeneğe tıklayalım.

Arından sonuç olarak GeoCoordinateWatcher lokasyon; şeklinde devam edelim.

Buton kontrolümüz için yazacağımız onClick olayı ise şekildeki gibi olacaktır. Kod bloğunda öncelikle yukarıda tanımladığımız ancak new anahtar kelimesi ile türetmediğimiz nesnenin null olup olmadığını kontrol edelim.

null olması halinde gerekli türetmeyi gerçekleştirip, StatusChanged eventini yazmak üzere iki kere TAB tuşlarımıza basalım ve koşul bloğunun en sonuna lokasyonun GPS den alınmasını sağlayacak olan Start methodunu tetikleyelim.

Dikkat ederseniz butona 2. tıklamadan sonra tek yapılacak işlem lokasyonun Start tetiklenmesi olacaktır.

İki kere yaptığımız TAB kombinasyonunu üzerine Visual Stuido IDE'mizin bize sağladığı nimetden yararlanarak oluşturaln methodumuzda ise yine bazı kontrolleri gerçekleştirmek üzere koşul bloğu yazacağız.

Yine bu nimetlerden birinden yararlanmak için switch(e.Status) yazdıktan sonra TAB ve Click kombinasyonu ile tanımlı olan enumerationlar önümüze gelecektir. Bizde resimdeki gibi dolduralım.
Disabled gelmesi sonucunda telefonun GPS hizmetinin olmadığı ya da kapalı olduğunu anlıyor, NoData gelmesi sonucunda ise GPS çalışır vaziyette ancak konum bilgisi alınmadığını anlıyor ve mesaj ile ekrana gösteriyoruz.

Ready ile gelen hayırlı haber ile de Pushpin sınıfından bir nesne türetiyor ve Content yani içeriğini "Burdasınız" şeklinde doldurtuyor, Location propertysini ise yukarıda tanımladığımız ve yapılandırıcılar arasında deklare ettiğimiz nesneden alıyoruz.
Bu bölümün son işlemi olarak da haritaya nesnemizi ekliyor ve haritanın GPS konumunu ortalıyıp 10 Level Zoom yapması için SetView methodunu kullanıyor işimizi bitirdiğimiz lokasyon nesnemizi ise durduruyoruz.

               

Ekran görüntülerimiz ise şekildeki gibi olacaktır.
Bir sonraki makalelerde yine Bing Maps ve çeşitli harita uygulamalarına devam edeceğiz.

 

Bir sonraki makalem de görüşmek üzere, esen kalın :)

H.Burak TUNGUT
Bilgisayar Mühendisliği Öğrencisi
www.buraktungut.com

PushPin sınıfı hangi using içinde ben bulamadım yardım ederseniz çok sevinirim.
Benim konumumu doğru bulmadı, nerede sorun olabilir, yardımcı olursanız sevinirim.
Emülatörden deniyorum, araştırdım biraz emülatörün gps desteği yokmuş sanırım. Ama yukarıda paylaştığınız fotoğraflarda İstanbulu gösteren emülatör görüntüleri var. Nasıl olduğunu anlamadım.
Yardımınız için teşekkür ederim, iyi çalışmalar :)
Yorum Bırak

Facebook
Son Yorumlar