Merhaba,
cornford/googlmapper kütüphanesi kullanarak elimizde bulunan şehirlerin koordinatlarına göre harita üzerinde gösterimlerini sağlamak için küçük bir örnek üzerinde yaptığım çalışmayı sizlerle paylaşmak istiyorum.
Öncelikle cornford/googlmapper kütüphanesini projemize dahil ediyoruz.
// web.php dosyasında route tanımlıyoruz
Route::get('/mapping', 'HomeController@mapping');
Haritayı göstereceğimiz blade sayfamızı oluşturup haritayı göstermek istediğimiz kısıma aşağıdaki kodu ekliyoruz.
<div class="google_map">
{!! Mapper::render() !!}
</div>
CSS için;
<style type="text/css">
.google_map{
width: 100%;
height: 730px;
}
</style>
Son olarak controller dosyamızdaki metodumuza aşağıdaki kodları ekliyoruz.
public function mapping()
{
// Türkiye'nin merkez koordinatlarını (38.963745, 35.243322) kullanarak haritayı ortalamış oluyoruz
Mapper::map(38.963745, 35.243322, ['zoom' => 6.3, 'marker' => false, 'markers' => ['animation' => 'DROP']]);
// DB de ki şehirlerimizin tümünü alıyoruz
$cities = City::all();
foreach ($cities as $city) {
$html = "<div class='infowin' >
<h6>" . $city->name . "</h6>
<small>lat / lng : " . $city->lat . " / " . $city->lng . "</small>
</div>";
// Bilgi penceresine seçenekleri ve isteğe bağlı olan parametereleri ekliyoruz.
// Burada pointer tıklandığında bilgi penceresi açılacak şekilde kullanılmıştır.
// Seçenek olarak eventMouseOver kullanılıp pointer ın üzerine gelindiği anda da bilgi penceresi açılacak şekilde tasarlanabilir.
Mapper::informationWindow(
$city->lat,
$city->lng,
$html,
[
'title' => $city->name
]
);
}
return view('mapping');
}
Sayfamızı çalıştırdığımızda açılacak ekranın görüntüsüne buradan ulaşabilirsiniz.