KodFeed İLMİN ZEKATI…

4Eyl/107

Google Maps ile çalışma

Selamlar arkadaşlar,

Bu yazımda google map ile neler yapabileceğimize ufaktan bir göz atacağız. Öncelik ile google map ile çalışma yapabilmek için google'a kayıt olmalı ve buradan giriş yapmalısınız. Giriş yaptıktan sonra açılan sayfada size hangi sitede kullanacağınızı sormaktadır. Kullanacağınız siteye göre google, yeni bir google api key dediğimiz bir key üretecektir. 

Marker Ekleme

Marker ekleme bir noktayı belirtmek için kullanılmaktadır. Örneğin bir iş rehberi yapacaksınız ve haritada iş yerlerini nokta olarak göstermek istiyorsunuz. O zaman iş yerinin koordinatına marker eklememiz gerekmektedir. Örnek olarak aşağıdaki resimdeki gibi görüntü ortaya çıkacaktır.


Bir koordinatı ekranda göstermek için;
html kodumuz

<html>
	<head>
		<title>Google Uygulaması</title>
		 <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true_or_false&amp;key=ABQIAAAAZckZM60zgACcrXtkrpdA_xT2yXp_ZAY8_ufC3CFXhHIE1NvwkxS7B825UY7KfVxsH_7RT1mKPUtjJA" type="text/javascript"></script>
		 <script src="/document/js/googlemap.js" type="text/javascript"></script>
	</head>
	<body onLoad="load()">
		<div id="map" style="width: 500px; height: 300px"></div>
	</body>
</html>

Javascript kodumuz.

function load() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		//Ekranda ortalanacak koordinat
		map.setCenter(new GLatLng(37.76052011000952, 38.27514410018921), 13);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setMapType(G_NORMAL_MAP);
		//Markerin oluşturulacağı koordinat
		var marker = new GMarker(new GLatLng(37.76052011000952, 38.27514410018921));
		//Markerın açıklaması.
		var html = "Adıyaman";
		GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });
		map.addOverlay(marker);
		marker.openInfoWindowHtml(html);
	}
}

Marker Ekleme

Yukardaki vermiş olduğumuz örnek bir koordinatı ekranda markerlar ile gösterilmesiydi. Fakat bir iş rehberi yapıyorsanız ve kullanıcının kendi iş yerini kendisinin eklenmesini istiyorsanız kullanıcıdan koordinat bilgilerini istemek biraz abes kaçar. Onun için yapılması gereken harita açılır, kullanıcı haritadan iş yerini bulup marker ekleme yapar ve kaydeder. Arka planda koordinatlar alınıp veritabanına veya başka bir depolama birimine kaydedilir ve o firmanın haritadaki yerini göster dediğimizde ise yukarıdaki gibi haritada gösterim yapılır. Peki haritaya marker nasıl eklenir.

Ekleme işlemi sadece mouse eventten ibaret aslında. Haritanın mouse event olayına oluşturmuş olduğumuz bir formun içindeki hidden inputların değerlerini değiştiriyoruz. Örneğin;

HTML Kodlar

<html>
	<head>
		<title>Google Uygulaması</title>
		 <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true_or_false&amp;key=ABQIAAAAZckZM60zgACcrXtkrpdA_xT2yXp_ZAY8_ufC3CFXhHIE1NvwkxS7B825UY7KfVxsH_7RT1mKPUtjJA" type="text/javascript"></script>
		 <script src="/document/js/googlemap.js" type="text/javascript"></script>
	</head>
	<body onLoad="addmarkerload()">
		<div id="map" style="width: 500px; height: 300px"></div>
		<form name="mapclick" action="/php/mapsave.php?islem=post" method="POST"><input type="hidden" name="coordinats">
			<input type="hidden" name="MAPZOOM">
			<input type="submit" value="Kaydet">
		</form>
	</body>
</html>

JS Kodları

function addmarkerload(){
	if (GBrowserIsCompatible()){
		var map = new GMap2(document.getElementById("map"));
		//Haritanın ortalanacağı koordinatlar.
		map.setCenter(new GLatLng(37.763539630638334, 38.27235460281372), 16);
		//GSmallMapControl ile Yön ve Zoom tuşlarını ekliyoruz...
		//GMapTypeControl ile Harita Tipini ekliyoruz...
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setMapType(G_NORMAL_MAP);
		//Mouse'ın click eventına bağlı olarak, tıklanan noktanın koordinatlarını alıyoruz...
		GEvent.addListener(map, 'click', function(marker, point) { if (marker) { map.removeOverlay(marker);} else {map.clearOverlays(); var marker = new GMarker(point); map.addOverlay(marker); document.mapclick.coordinats.value = point; document.mapclick.MAPZOOM.value = map.getZoom();}});
	}
}

Unutulmaması gereken en önemli nokta en başta da vurguladığım gibi google api key alınmasıdır.Alınan google api key kodu ise aşağıdaki kodda buraya yazan bölüme eklenmelidir.

< script src="http://maps.google.com/maps?file=api&v=2&sensor=true_or_false&key=buraya" type="text/javascript">

VN:F [1.9.13_1145]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)
Google Maps ile çalışma, 10.0 out of 10 based on 1 rating
Etiketler: Yorum gönder.
Yorumlar (7) Geri izlemeler (1)
  1. çok tşk ederim hocam çok yardımcı oldu emegine sagliık

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  2. Üstadım Eline Koluna Bilgine Bileğine Sağlık :))))
    Bi Çok Yerde Senin Kodu Alıntı Yapmışlar Onu Bile Becerememişler.
    Çok Düzgün ve Açıklayıcı Anlatımın İçin Çok Çok Teşekkür Ederim.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  3. Hocam teşekkür ederim. Çok faydalı oldu.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  4. Hocam eyvallah çok işime yaradı yarım saattir aradım böyle açık ve net olanını daha görmedim. Eline koluna sağlık ;)

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  5. Hocam marker ekleyebiliyoruz da ,eklediğimiz markerı silemiyoruz :) Acaba böyle bir özellik varmıdır?

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  6. Selam Hakan, tabi ki mevcut. Akşam müsait olursam yeni bir yazıda anlatırım.

    VN:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  7. çok işime yaradı, teşekkürler..

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)

Leave a comment

(required)