<select id="cityselect" onchange="selectCity(event)">
<option value="">Seçiniz</option>
</select>
<div id="googlemap" class="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false" type="text/javascript"></script>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#googlemap {
height: 100%;
}
select{
position: absolute;
right: 300px;
top: 100px;
left: auto;
z-index: 1;
border-radius: 0;
color: #51474a;
padding: 10px 15px;
line-height: 20px;
border: none;
font-size: 16px;
cursor: pointer;
outline: none;
}
var data = [
{
name: 'İstanbul Merkez',
lat: 41.032636,
lng: 28.990179000000012,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Meclisi Mebusan Cad. Molla Bayırı Sk. No: 1 Fındıklı / İstanbul</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (212) 334 50 54</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (212) 334 50 35</p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Meclisi Mebusan Cad. Molla Bayırı Sk. No: 1 Fındıklı / İstanbul</p>'+
'<span class="title"> PHONE : </span>'+
'<p>0 (212) 334 50 54</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (212) 334 50 35</p>'+
'</div>'+
'</div>'
},
{
name: 'Ankara',
lat: 39.888837,
lng: 32.85239899999999,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Aziziye Mh. Piyade Sk. B Blok No: 3/7 Çankaya / Ankara</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (312) 441 75 22</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (312) 441 75 66</p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Aziziye Mh. Piyade Sk. B Blok No: 3/7 Çankaya / Ankara</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (312) 441 75 22</p>' +
'<span class="title"> PHONE : </span>'+
'<p>0 (312) 441 75 66</p>'+
'</div>'+
'</div>'
},
{
name: 'İzmir',
lat: 38.429575,
lng: 27.13538600000004,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Cumhuriyet Bulvarı, No: 140, Alan Apt., Kat: 1 Pasaport, Alsancak / İzmir</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (232) 463 12 00</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (232) 463 33 50</p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Cumhuriyet Bulvarı, No: 140, Alan Apt., Kat: 1 Pasaport, Alsancak / İzmir</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (232) 463 12 00</p>' +
'<span class="title"> PHONE : </span>'+
'<p>0 (232) 463 33 50</p>'+
'</div>'+
'</div>'
},
{
name: 'Bursa',
lat: 40.182087,
lng: 29.067286999999965,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Hocaalizade Mh, Atatürk Cad. 7. Hamam Sk., Sönmez İş Hanı, No: 5 Kat:3 Ofis No: 1-2-3-9 Osmangazi / Bursa</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (224) 225 40 30</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (224) 225 40 31</p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Hocaalizade Mh, Atatürk Cad. 7. Hamam Sk., Sönmez İş Hanı, No: 5 Kat:3 Ofis No: 1-2-3-9 Osmangazi / Bursa</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (224) 225 40 30</p>' +
'<span class="title"> PHONE : </span>'+
'<p>0 (224) 225 40 31</p>'+
'</div>'+
'</div>'
},
{
name: 'Adana',
lat: 37.0044333,
lng: 35.32543529999998,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Cemal Paşa Mahallesi, C.Yurdakul Caddesi, Sular Plaza, No: 47-1003 Seyhan / Adana</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (322) 459 59 80</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (322) 459 59 81</p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Cemal Paşa Mahallesi, C.Yurdakul Caddesi, Sular Plaza, No: 47-1003 Seyhan / Adana</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (322) 459 59 80</p>' +
'<span class="title"> PHONE : </span>'+
'<p>0 (322) 459 59 81</p>'+
'</div>'+
'</div>'
},
{
name: 'Antalya',
lat: 36.897006,
lng: 30.71246999999994,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Etiler Mahallesi, Evliya Çelebi Caddesi, Mirador İş Merkezi, No: 3/29, Muratpaşa / Antalya</p>'+
'<span class="title"> TEL : </span>'+
'<p></p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (242) 322 20 97</p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Etiler Mahallesi, Evliya Çelebi Caddesi, Mirador İş Merkezi, No: 3/29, Muratpaşa / Antalya</p>'+
'<span class="title"> PHONE : </span>'+
'<p>0 (242) 322 20 90</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (242) 322 20 97</p>'+
'</div>'+
'</div>'
},
{
name: 'Diyarbakır',
lat: 37.9190632,
lng: 40.22915330000001,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Yenişehir Mahallesi, Elazığ Bulvarı No:19/1 Kat: 1 Azel Plaza A Blok Yenişehir / Diyarbakir</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (412) 229 09 00</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (412) 229 09 01</p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Yenişehir Mahallesi, Elazığ Bulvarı No:19/1 Kat: 1 Azel Plaza A Blok Yenişehir / Diyarbakir</p>'+
'<span class="title"> PHONE : </span>'+
'<p>0 (412) 229 09 00</p>' +
'<span class="title"> FAX : </span>'+
'<p>0 (412) 229 09 01</p>'+
'</div>'+
'</div>'
},
{
name: 'Trabzon',
lat: 41.004772,
lng: 39.71001630000001,
content:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADRES </p></div>'+
'<p>Gülbahar Hatun Mahallesi, İnönü Caddesi, No:91/2 Kat:1 Ortahisar / Trabzon</p>'+
'<span class="title"> TEL : </span>'+
'<p>0 (462) 229 06 91</p>' +
'<span class="title"> FAX : </span>'+
'<p> 0 (462) 229 06 02 </p>'+
'</div>'+
'</div>',
content_en:'<div class="content-gamma clearfix map-alpha-content">'+
'<div class="address"><div class="title w100"><p> ADDRESS </p></div>'+
'<p>Gülbahar Hatun Mahallesi, İnönü Caddesi, No:91/2 Kat:1 Ortahisar / Trabzone</p>'+
'<span class="title"> PHONE : </span>'+
'<p>0 (462) 229 06 91</p>' +
'<span class="title"> FAX : </span>'+
'<p> 0 (462) 229 06 02 </p>'+
'</div>'+
'</div>'
}
];
var mapstyle = {
background: [{
featureType: "all",
elementType: "labels.text.fill",
stylers: [{
saturation: 36
}, {
color: "#000000"
}, {
lightness: 40
}]
}, {
featureType: "all",
elementType: "labels.text.stroke",
stylers: [{
visibility: "on"
}, {
color: "#000000"
}, {
lightness: 16
}]
}, {
featureType: "all",
elementType: "labels.icon",
stylers: [{
visibility: "off"
}]
}, {
featureType: "administrative",
elementType: "geometry.fill",
stylers: [{
color: "#a42d2d"
}]
}, {
featureType: "administrative",
elementType: "geometry.stroke",
stylers: [{
color: "#000000"
}, {
lightness: 17
}, {
weight: 1.2
}]
}, {
featureType: "administrative.country",
elementType: "geometry.fill",
stylers: [{
gamma: "1.00"
}, {
color: "#ca3d3d"
}]
}, {
featureType: "landscape",
elementType: "geometry",
stylers: [{
color: "#000000"
}, {
lightness: "20"
}, {
gamma: "1"
}, {
saturation: "0"
}]
}, {
featureType: "poi",
elementType: "geometry",
stylers: [{
color: "#000000"
}, {
lightness: "20"
}]
}, {
featureType: "road.highway",
elementType: "geometry.fill",
stylers: [{
color: "#000000"
}, {
lightness: 17
}]
}, {
featureType: "road.highway",
elementType: "geometry.stroke",
stylers: [{
color: "#000000"
}, {
lightness: 29
}, {
weight: .2
}]
}, {
featureType: "road.arterial",
elementType: "geometry",
stylers: [{
color: "#000000"
}, {
lightness: 18
}]
}, {
featureType: "road.local",
elementType: "geometry",
stylers: [{
color: "#000000"
}, {
lightness: 16
}]
}, {
featureType: "transit",
elementType: "geometry",
stylers: [{
color: "#000000"
}, {
lightness: 19
}]
}, {
featureType: "water",
elementType: "geometry",
stylers: [{
color: "#000000"
}, {
lightness: "10"
}]
}]
}
function initMap() {
// İlk açılışta haritayı ortalayacağı yer
var turkey = {lat: 39.060481, lng: 35.179593};
var map = new google.maps.Map(document.getElementById('googlemap'), {
zoom: 6,
styles: mapstyle.background,
disableDefaultUI: true,
center: turkey
});
var markers = [];
var contents = [];
var infowindows = [];
var cities = document.getElementById('cityselect');
for (var i = 0; i < data.length; i++) {
// Haritaya eklenecek noktalar
markers[i] = new google.maps.Marker({
position: new google.maps.LatLng(data[i].lat, data[i].lng),
map: map,
index: i
});
// Sitenin diline göre data'daki ingilizce içeriği çektiği yer. Buranın doğru çalışabilmesi için dilin html tagına lang eklenmeli
if(document.documentElement.lang == "en"){
contents[i] = data[i].content_en
} else{
contents[i] = data[i].content
}
infowindows[i] = new google.maps.InfoWindow({
content: contents[i],
maxWidth: 300
});
// pin'lere tıklanınca ne yapacağı
google.maps.event.addListener(markers[i], 'click', function() {
infowindows[this.index].open(map,markers[this.index]);
map.panTo(markers[this.index].getPosition());
// tıklanılan haricindeki pencerelerin lapatılması
for (let j = 0; j < markers.length; j++) {
if(j != this.index){
infowindows[j].close(map,markers[j]);
}
}
});
// select box'ın dinamik olarak data'dan doldurulması
cities.options[cities.options.length] = new Option(data[i].name, i);
}
// şehir seçince ne yapılacağı
selectCity = function(evt){
let ind = evt.target.value;
if(ind == ""){ // "Seçiniz" seçeneği seçilirse
// haritayı ortalıyor
var pos = new google.maps.LatLng(turkey);
map.panTo(pos);
// tüm info alanlarını kapatıyor
for (let j = 0; j < markers.length; j++) {
infowindows[j].close(map,markers[j]);
}
} else{
// seçtiği şehri ortalıyor
infowindows[ind].open(map,markers[ind]);
map.panTo(markers[ind].getPosition());
// seçtiği şehrin haricindeki info alanlarını kapatıyor
for (let j = 0; j < markers.length; j++) {
if(j != ind){
infowindows[j].close(map,markers[j]);
}
}
}
}
}initMap()
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.