“Pratik, iyi bir noktaya geldikten sonra yaptığımız bir şey değildir. Sizi iyi bir noktaya getirmesi için yaptığımız bir şeydir.”
by Malcolm Gladwell Outliers S. 36

HTML5 ile Gelen Yeni Bir Özellik Geolocation

Tarih: Ekim 14th, 2010 | Yazar: | Kategoriler: HTML5 | Etiketler: , , , | 3 Yorum »

İnternetin ilk dönemlerinde insanlar genellikle rumuzlar(nickname) ile internette var olmayı tercih ederken, günümüzde gerçek isimleri ve gerçek kişilikleri ile var olmayı tercih ediyorlar. Eğilim bu yönde olunca sadece ad ve soyad paylaşmak da yetmiyor haliyle. Kullanıcılar gittikleri mekanları, o an bulundukları yerleri de bir şekilde paylaşmak istiyorlar. W3C konsorsiyumu da bu ihtiyacı görmüş olacak ki HTML5’e  Geolocation özelliğini ekledi. Bende bu yazımda basit olarak Geolocation’dan bahsetmek istiyorum.

Peki Geolocation nedir?

Geolocation eğer kullandığımız cihazda bir GPS aygıtı var ise GPS’den gelen veriler ile konumumuz tespit ediyor. Eğer herhangi bir GPS aygıtımız yoksa cihazımızda, “IP address, RFID, WiFi and Bluetooth MAC addresses, and GSM/CDMA cell IDs” bu bilgilerden yararlanarak konumuzu tespit etmeye çalışıyor. Çalışıyor diyorum çünkü bu yöntem ile pek doğru sonuçlar elde edemiyoruz :).  Geolocation bu işleri bizim adımıza yapan API’dir.

Hangi tarayıcılar Geolocation destekliyor?

Buradan hangi tarayıcıların Geolocation’a destek verdiğine bakabilirsiniz. Ayrıca buradan kullandığınız tarayıcının destek verip vermediğini test edebilirsiniz.

Nasıl kullanabiliriz?

Aslında kullanmak oldukça kolay. “navigator” nesnesi ile kolayca konumu tespit edebiliriz. Aşağıda kullanımını görebilirsiniz.

	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(function(position) {
			var lat = position.coords.latitude;
			var lng = position.coords.longitude;
		});
	} else {
		alert('Tarayıcınız Geolocation desteklemiyor.');
	}	

“navigator” nesnesi üzerinden “getCurrentPosition” methodu ile kullanıcının konumunu öğreniyoruz. Ancak bu işlemin gerçekleşmesi tarayıcıdan izin almamız gerekiyor, bu işlemi “getCurrentPosition” methodu bizim adımıza kendi gerçekleştiriyor.

“lat” değişkenimizin değeri enlemi “lng” değişkenimizin değeri ise boylam değerlerini veriyor.

Hepsi bu kadar. Aşağıdaki linkte google maps ile hazırladığım Geolocation demosuna bakabilirsiniz.

DEMO

Kaynaklar:


Bir Adresin Enlem ve Boylam Değerlerini Öğrenelim

Tarih: Eylül 13th, 2010 | Yazar: | Kategoriler: Php | Etiketler: , , | 14 Yorum »

Arkadaşlar bildiğiniz üzere Google Maps ile bir adresin enlem ve boylam değerlerini öğrenmemiz oldukça kolay. Ama bazı durumlarda bu işlemi kullanıcının tarayıcısında yapmak yerine sunucumuzda yapmamız gerekebilir. Bende bu yazımda Php ile bu işlemi sunucu tarafında nasıl yapılacağını anlatmaya çalışacağım.

Öncelikle buraya tıklayarak enlem boylam değerlerini alacağımız çıktıya bir göz atalım.

Adres ile ilgili veriyi çekeceğimiz url’i oluşturalım.

$address = "Ankara Keçiören";
$url = 'http://maps.google.com/maps/api/geocode/json?address=' . urlencode(htmlentities($address)) . '&sensor=false';

urlencode fonksiyonu ile özel karakterleri url yapısına göre kodlamış olduk. htmlentities fonksiyonu ise urlencode ile kodlanan Türkçe karakterleri Google Maps’in anlamadığı için kullandım.

$data = json_decode(file_get_contents($url));

Json türündeki veriyi çekiyoruz ve değişkenlere dönüştürüyoruz json_decode fonksiyonu ile.

$enlem = $data->results[0]->geometry->location->lat;
$boylam = $data->results[0]->geometry->location->lng;
echo "Enlem: '$enlem' Boylam: '$boylam'";

Gelen veriden enlem ve boylam değerlerini seçtikten sonra ekrana yazıyoruz ve hepsi bu kadar. Aşağıdan örneğin tamamına bakabilirsiniz.

$address = "Ankara Keçiören";

$url = 'http://maps.google.com/maps/api/geocode/json?address=' . urlencode(htmlentities($address)) . '&sensor=false';

$data = json_decode(file_get_contents($url));

$enlem = $data->results[0]->geometry->location->lat;
$boylam = $data->results[0]->geometry->location->lng;

echo "Enlem: '$enlem' Boylam: '$boylam'";

Kaynaklar:
Google Maps Geocoding API