Masa üstünüzde çalıştırabileceğiniz ücretsiz bir harita uygulaması ile Tüm İllere göre nüfus yoğunluğunu gösterebilen bir haritadır.
İl seçimi haritada nüfus bilgileri görünür.
Seçim sonrası beliren harita konumuna yaklaşıp uzaklaşabilir, farklı konumlara kaydırma yapabilirsiniz.
Bir not defteri açıp aşağıdaki kodu içine koyduktan sonra farklı kaydedin, bir isim verin. dosya uzantısı. ".html" olması yeterli.
HTML Kod:
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Türkiye İl Nüfus ve Yoğunluk Haritası</title>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Select2 (Açılır Listede Arama İçin) -->
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<!-- Leaflet CSS ve JS (ÜCRETSİZ HARİTA KÜTÜPHANESİ) -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<style>
:root {
--primary: #2c3e50;
--secondary: #34495e;
--accent: #27ae60;
--light: #ecf0f1;
--bg: #ffffff;
--shadow: 0 3px 10px rgba(0,0,0,.12);
--radius: 8px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body, html {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
height: 100%;
background-color: var(--light);
display: flex; flex-direction: column; padding: 12px;
}
/* --- BAŞLIK ALANI --- */
.header {
display: flex; justify-content: space-between; align-items: center;
padding: 10px 15px; background: #fff; border: 2px solid #000;
border-radius: var(--radius); box-shadow: var(--shadow);
margin-bottom: 15px; gap: 15px; flex-shrink: 0; flex-wrap: wrap;
}
.header .left { display: flex; align-items: center; gap: 12px; }
.header .logo img { height: 46px; }
.header .title1 { font-size: 19px; font-weight: 700; color: #000; white-space: nowrap; }
.header .title2 { font-size: 11px; color: #555; font-weight: 600; }
.header .center-search {
flex-grow: 1; display: flex; justify-content: center; align-items: center;
gap: 15px; min-width: 300px; flex-wrap: wrap;
}
.search-label { font-weight: bold; font-size: 15px; color: var(--primary); }
.header .right { font-size: 12px; font-weight: 700; white-space: nowrap; text-align: right; color: #333; line-height: 1.3; }
.select2-results__options { max-height: 400px !important; }
.select2-container { width: 100% !important; max-width: 280px; text-align: left;}
#selected-province-title {
font-size: 16px; font-weight: bold; color: var(--primary);
cursor: pointer; transition: color 0.3s; display: flex; align-items: center;
background: #e8f8f5; padding: 5px 12px; border-radius: 20px; border: 1px solid var(--accent);
}
#selected-province-title:hover { color: #c0392b; border-color: #c0392b; }
#selected-province-title span.hint { font-size: 11px; font-weight: normal; color: #7f8c8d; margin-left: 6px; }
/* --- ANA ÇERÇEVE --- */
.main-container {
display: flex; flex: 1; overflow: hidden;
border: 5px solid var(--primary); border-radius: var(--radius); background: #fff;
}
/* --- SOL MENÜ (NÜFUS BİLGİ PANELİ) --- */
.sidebar {
width: 320px; background: var(--secondary); color: white;
display: flex; flex-direction: column; overflow-y: auto;
}
.sidebar-section { padding: 15px; }
.sidebar h3 { margin: 0 0 15px 0; font-size: 18px; border-bottom: 2px solid var(--accent); padding-bottom: 5px; }
.info-card {
background: rgba(255,255,255,0.08); padding: 15px; border-radius: 6px; margin-bottom: 10px;
border-left: 4px solid var(--accent);
}
.info-card h4 { font-size: 18px; color: #f1c40f; margin-bottom: 8px; }
.info-row { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 4px; }
.info-row span:last-child { font-weight: bold; color: #fff; }
/* --- HARİTA VE İKONLAR --- */
#map { flex: 1; height: 100%; width: 100%; z-index: 1; transition: background-color 0.5s ease; }
.province-label {
background: white; border: 2px solid var(--primary); padding: 4px 8px;
font-weight: bold; font-size: 13px; border-radius: 4px; box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}
.hidden { display: none !important; }
</style>
</head>
<body style="background-color: #e8f8f5;">
<div class="header">
<div class="left">
<div class="logo"><img src="logo.jpg" alt="Logo" onerror="this.style.display='none'"></div>
<div>
<div class="title1">Türkiye Nüfus Yoğunluğu Portalı</div>
<div class="title2">Muhammed Yusuf OLGUN | Güncelleme: 22 Ağustos 2026</div>
</div>
</div>
<div class="center-search">
<span class="search-label">İl Seçin:</span>
<select id="province-select">
<option value="">İl Yükleniyor...</option>
</select>
<div id="selected-province-title" class="hidden">
<span id="p-name"></span>
<span class="hint">(Sıfırla)</span>
</div>
</div>
<div class="right">Veri Kaynağı: TÜİK ADNKS<br> Güncel İstatistikler</div>
</div>
<div class="main-container">
<!-- Bilgi Paneli (Sol Menü) -->
<div id="sidebar" class="sidebar hidden">
<div class="sidebar-section">
<h3>İl Nüfus Detayları</h3>
<div id="province-info-content"></div>
</div>
</div>
<div id="map"></div>
</div>
<script>
let map;
let infoLayer;
// TÜİK En Son Nüfus Verileri Veritabanı (Örneklem ve Başlıca İller)
const populationData = [
{ id: "34", name: "İstanbul", lat: 41.0082, lon: 28.9784, pop: 15754053, male: 7851344, female: 7902709, density: 3010, share: "%18,30" },
{ id: "06", name: "Ankara", lat: 39.9208, lon: 32.8541, pop: 5910320, male: 2911853, female: 2998467, density: 232, share: "%6,87" },
{ id: "35", name: "İzmir", lat: 38.4192, lon: 27.1287, pop: 4504185, male: 2227738, female: 2276447, density: 371, share: "%5,23" },
{ id: "16", name: "Bursa", lat: 40.1828, lon: 29.0665, pop: 3263011, male: 1628212, female: 1634799, density: 305, share: "%3,79" },
{ id: "07", name: "Antalya", lat: 36.8969, lon: 30.7133, pop: 2777677, male: 1397014, female: 1380663, density: 132, share: "%3,23" },
{ id: "42", name: "Konya", lat: 37.8667, lon: 32.4833, pop: 2343409, male: 1163850, female: 1179559, density: 59, share: "%2,72" },
{ id: "01", name: "Adana", lat: 37.0000, lon: 35.3213, pop: 2283609, male: 1141614, female: 1141995, density: 162, share: "%2,65" },
{ id: "63", name: "Şanlıurfa", lat: 37.1591, lon: 38.7969, pop: 2265800, male: 1142783, female: 1123017, density: 119, share: "%2,63" },
{ id: "27", name: "Gaziantep", lat: 37.0662, lon: 37.3833, pop: 2222415, male: 1119557, female: 1102858, density: 315, share: "%2,58" },
{ id: "41", name: "Kocaeli", lat: 40.7654, lon: 29.9408, pop: 2161171, male: 1088753, female: 1072418, density: 580, share: "%2,51" },
{ id: "33", name: "Mersin", lat: 36.8121, lon: 34.6415, pop: 1956428, male: 977092, female: 979336, density: 125, share: "%2,27" },
{ id: "21", name: "Diyarbakır", lat: 37.9144, lon: 40.2306, pop: 1852356, male: 935763, female: 916593, density: 121, share: "%2,15" },
{ id: "31", name: "Hatay", lat: 36.2023, lon: 36.1604, pop: 1577531, male: 797385, female: 780146, density: 275, share: "%1,83" },
{ id: "45", name: "Manisa", lat: 38.6191, lon: 27.4289, pop: 1477756, male: 741193, female: 736563, density: 113, share: "%1,72" },
{ id: "38", name: "Kayseri", lat: 38.7312, lon: 35.4787, pop: 1458991, male: 728836, female: 730155, density: 87, share: "%1,69" },
{ id: "55", name: "Samsun", lat: 41.2867, lon: 36.33, pop: 1392403, male: 689283, female: 703120, density: 148, share: "%1,62" },
{ id: "10", name: "Balıkesir", lat: 39.6484, lon: 27.8826, pop: 1284517, male: 638871, female: 645646, density: 87, share: "%1,49" },
{ id: "59", name: "Tekirdağ", lat: 40.9781, lon: 27.5119, pop: 1208441, male: 615806, female: 592635, density: 342, share: "%1,40" },
{ id: "09", name: "Aydın", lat: 37.8444, lon: 27.8458, pop: 1172107, male: 580536, female: 591571, density: 148, share: "%1,36" },
{ id: "46", name: "Kahramanmaraş", lat: 37.5858, lon: 36.9371, pop: 1146278, male: 584074, female: 562204, density: 78, share: "%1,33" },
{ id: "54", name: "Sakarya", lat: 40.7569, lon: 30.3783, pop: 1123693, male: 563586, female: 560107, density: 226, share: "%1,31" },
{ id: "65", name: "Van", lat: 38.4891, lon: 43.4089, pop: 1112013, male: 566544, female: 545469, density: 53, share: "%1,29" },
{ id: "48", name: "Muğla", lat: 37.2153, lon: 28.3636, pop: 1099547, male: 558628, female: 540919, density: 86, share: "%1,28" },
{ id: "20", name: "Denizli", lat: 37.7765, lon: 29.0864, pop: 1060975, male: 526573, female: 534402, density: 87, share: "%1,23" },
{ id: "26", name: "Eskişehir", lat: 39.7767, lon: 30.5206, pop: 927956, male: 461180, female: 466776, density: 68, share: "%1,08" },
{ id: "47", name: "Mardin", lat: 37.3212, lon: 40.7245, pop: 903576, male: 453777, female: 449799, density: 105, share: "%1,05" },
{ id: "61", name: "Trabzon", lat: 41.0015, lon: 39.7178, pop: 823323, male: 408242, female: 415081, density: 177, share: "%0,96" },
{ id: "52", name: "Ordu", lat: 40.9839, lon: 37.8764, pop: 768087, male: 382776, female: 385311, density: 131, share: "%0,89" },
{ id: "44", name: "Malatya", lat: 38.3552, lon: 38.3095, pop: 755854, male: 378686, female: 377168, density: 63, share: "%0,88" },
{ id: "03", name: "Afyonkarahisar", lat: 38.7507, lon: 30.5567, pop: 751808, male: 376802, female: 375006, density: 53, share: "%0,87" },
{ id: "25", name: "Erzurum", lat: 39.9043, lon: 41.2679, pop: 736877, male: 366932, female: 369945, density: 29, share: "%0,86" },
{ id: "72", name: "Batman", lat: 37.8812, lon: 41.1351, pop: 662626, male: 335382, female: 327244, density: 142, share: "%0,77" },
{ id: "58", name: "Sivas", lat: 39.7477, lon: 37.0179, pop: 631401, male: 315268, female: 316133, density: 22, share: "%0,73" },
{ id: "02", name: "Adıyaman", lat: 37.7648, lon: 38.2786, pop: 617821, male: 312881, female: 304940, density: 83, share: "%0,72" },
{ id: "60", name: "Tokat", lat: 40.3167, lon: 36.55, pop: 614141, male: 305975, female: 308166, density: 61, share: "%0,71" },
{ id: "23", name: "Elazığ", lat: 38.681, lon: 39.2264, pop: 605678, male: 299091, female: 306587, density: 68, share: "%0,70" },
{ id: "67", name: "Zonguldak", lat: 41.4564, lon: 31.7987, pop: 585203, male: 290246, female: 294957, density: 177, share: "%0,68" },
{ id: "17", name: "Çanakkale", lat: 40.1553, lon: 26.4142, pop: 573976, male: 284409, female: 289567, density: 58, share: "%0,67" },
{ id: "73", name: "Şırnak", lat: 37.5190, lon: 41.9167, pop: 573666, male: 296986, female: 276680, density: 80, share: "%0,67" },
{ id: "43", name: "Kütahya", lat: 39.4167, lon: 29.9833, pop: 570478, male: 281375, female: 289103, density: 47, share: "%0,66" },
{ id: "80", name: "Osmaniye", lat: 37.0742, lon: 36.2472, pop: 564123, male: 283982, female: 280141, density: 175, share: "%0,66" },
{ id: "19", name: "Çorum", lat: 40.5506, lon: 34.9556, pop: 519590, male: 258085, female: 261505, density: 41, share: "%0,60" },
{ id: "04", name: "Ağrı", lat: 39.7191, lon: 43.0503, pop: 491489, male: 254223, female: 237266, density: 43, share: "%0,57" },
{ id: "28", name: "Giresun", lat: 40.9128, lon: 38.3895, pop: 455074, male: 227438, female: 227636, density: 65, share: "%0,53" },
{ id: "32", name: "Isparta", lat: 37.7648, lon: 30.5566, pop: 445303, male: 219724, female: 225579, density: 52, share: "%0,52" },
{ id: "68", name: "Aksaray", lat: 38.3687, lon: 34.037, pop: 441136, male: 220441, female: 220695, density: 57, share: "%0,51" },
{ id: "22", name: "Edirne", lat: 41.6771, lon: 26.5557, pop: 422438, male: 212403, female: 210035, density: 67, share: "%0,49" },
{ id: "81", name: "Düzce", lat: 40.8438, lon: 31.1565, pop: 415622, male: 207675, female: 207947, density: 167, share: "%0,48" },
{ id: "66", name: "Yozgat", lat: 39.8181, lon: 34.8147, pop: 413208, male: 208491, female: 204717, density: 29, share: "%0,48" },
{ id: "49", name: "Muş", lat: 38.9462, lon: 41.4913, pop: 389127, male: 197610, female: 191517, density: 47, share: "%0,45" },
{ id: "37", name: "Kastamonu", lat: 41.3887, lon: 33.7827, pop: 379934, male: 188390, female: 191544, density: 28, share: "%0,44" },
{ id: "39", name: "Kırklareli", lat: 41.7333, lon: 27.2167, pop: 379595, male: 191878, female: 187717, density: 60, share: "%0,44" },
{ id: "51", name: "Niğde", lat: 37.9667, lon: 34.6833, pop: 374492, male: 187502, female: 186990, density: 50, share: "%0,43" },
{ id: "64", name: "Uşak", lat: 38.6823, lon: 29.4082, pop: 374405, male: 185487, female: 188918, density: 72, share: "%0,43" },
{ id: "13", name: "Bitlis", lat: 38.4006, lon: 42.1095, pop: 360423, male: 186601, female: 173822, density: 42, share: "%0,42" },
{ id: "53", name: "Rize", lat: 41.0201, lon: 40.5234, pop: 346947, male: 173549, female: 173398, density: 87, share: "%0,40" },
{ id: "05", name: "Amasya", lat: 40.6499, lon: 35.8353, pop: 342242, male: 172102, female: 170140, density: 60, share: "%0,40" },
{ id: "56", name: "Siirt", lat: 37.9333, lon: 41.95, pop: 332369, male: 169048, female: 163321, density: 61, share: "%0,39" },
{ id: "14", name: "Bolu", lat: 40.7350, lon: 31.6061, pop: 327173, male: 162989, female: 164184, density: 39, share: "%0,38" },
{ id: "50", name: "Nevşehir", lat: 38.6939, lon: 34.7145, pop: 320150, male: 157815, female: 162335, density: 59, share: "%0,37" },
{ id: "77", name: "Yalova", lat: 40.65, lon: 29.2667, pop: 311635, male: 155593, female: 156042, density: 373, share: "%0,36" },
{ id: "71", name: "Kırıkkale", lat: 39.8468, lon: 33.5153, pop: 282830, male: 142104, female: 140726, density: 63, share: "%0,33" },
{ id: "12", name: "Bingöl", lat: 38.8854, lon: 40.498, pop: 282299, male: 141831, female: 140468, density: 34, share: "%0,33" },
{ id: "30", name: "Hakkari", lat: 37.5833, lon: 43.7333, pop: 279681, male: 146241, female: 133440, density: 38, share: "%0,32" },
{ id: "15", name: "Burdur", lat: 37.7262, lon: 30.2893, pop: 277226, male: 139689, female: 137537, density: 40, share: "%0,32" },
{ id: "36", name: "Kars", lat: 40.6167, lon: 43.1, pop: 268991, male: 138282, female: 130709, density: 27, share: "%0,31" },
{ id: "70", name: "Karaman", lat: 37.1759, lon: 33.2287, pop: 262355, male: 130905, female: 131450, density: 29, share: "%0,30" },
{ id: "78", name: "Karabük", lat: 41.2061, lon: 32.6204, pop: 249614, male: 126021, female: 123593, density: 61, share: "%0,29" },
{ id: "40", name: "Kırşehir", lat: 39.1425, lon: 34.1709, pop: 242777, male: 120876, female: 121901, density: 37, share: "%0,28" },
{ id: "24", name: "Erzincan", lat: 39.75, lon: 39.5, pop: 239625, male: 121927, female: 117698, density: 20, share: "%0,28" },
{ id: "11", name: "Bilecik", lat: 40.1451, lon: 29.9796, pop: 228995, male: 116200, female: 112795, density: 53, share: "%0,27" },
{ id: "57", name: "Sinop", lat: 42.0231, lon: 35.1531, pop: 225848, male: 112000, female: 113848, density: 38, share: "%0,26" },
{ id: "74", name: "Bartın", lat: 41.6344, lon: 32.3375, pop: 206663, male: 102500, female: 104163, density: 98, share: "%0,24" },
{ id: "76", name: "Iğdır", lat: 39.9167, lon: 44.0333, pop: 205071, male: 104500, female: 100571, density: 56, share: "%0,24" },
{ id: "18", name: "Çankırı", lat: 40.6013, lon: 33.6134, pop: 200549, male: 101000, female: 99549, density: 26, share: "%0,23" },
{ id: "75", name: "Ardahan", lat: 41.1105, lon: 42.7022, pop: 90392, male: 46500, female: 43892, density: 17, share: "%0,11" },
{ id: "62", name: "Tunceli", lat: 39.3074, lon: 39.5469, pop: 85083, male: 43500, female: 41583, density: 11, share: "%0,11" },
{ id: "69", name: "Bayburt", lat: 40.2552, lon: 40.2249, pop: 82836, male: 42000, female: 40836, density: 22, share: "%0,10" },
{ id: "79", name: "Kilis", lat: 36.7184, lon: 37.1212, pop: 157363, male: 79500, female: 77863, density: 108, share: "%0,18" }
];
function initMap() {
map = L.map('map').setView([39.0, 35.0], 6);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
infoLayer = L.layerGroup().addTo(map);
}
// Tüm İlleri Haritaya Nüfus Etiketleriyle Yerleştir
function loadProvincesToMap() {
infoLayer.clearLayers();
populationData.forEach(prov => {
const labelIcon = L.divIcon({
html: `<div style="background:#fff; border:1px solid #2c3e50; padding:2px 6px; border-radius:4px; font-size:11px; font-weight:bold; box-shadow:0 1px 3px rgba(0,0,0,0.2);">${prov.name}<br><span style="color:#27ae60; font-weight:normal;">${prov.pop.toLocaleString('tr-TR')}</span></div>`,
className: 'province-label',
iconSize: [80, 40],
iconAnchor: [40, 20]
});
const marker = L.marker([prov.lat, prov.lon], { icon: labelIcon }).addTo(infoLayer);
marker.on('click', () => {
$('#province-select').val(prov.id).trigger('change');
});
});
}
$(document).ready(function() {
initMap();
loadProvincesToMap();
$('#province-select').select2({ placeholder: "Nüfus Bilgisi İçin İl Seçin...", allowClear: true });
$('#province-select').empty().append(new Option("Nüfus Bilgisi İçin İl Seçin...", ""));
const sortedProvinces = [...populationData].sort((a, b) => a.name.localeCompare(b.name, 'tr'));
sortedProvinces.forEach(prov => {
const option = new Option(prov.name, prov.id);
$('#province-select').append(option);
});
// İL SEÇİldİĞİNDE
$('#province-select').on('change', function() {
const provinceId = $(this).val();
if(provinceId) {
const prov = populationData.find(p => p.id === provinceId);
if(prov) {
$('#province-select').next('.select2-container').addClass('hidden');
$('.search-label').addClass('hidden');
$('#selected-province-title').removeClass('hidden');
$('#p-name').text(prov.name + " Nüfus Analizi");
// Arka planı çok açık yeşile boya ve sınır/odak hissi ver
$('#map').css('background-color', '#d4efdf');
$('#sidebar').removeClass('hidden');
map.flyTo([prov.lat, prov.lon], 9, { duration: 1.5 });
showProvinceInfo(prov);
}
}
});
// SIFIRLAMA
$('#selected-province-title').on('click', function() {
$('#province-select').val(null).trigger('change');
$('#province-select').next('.select2-container').removeClass('hidden');
$('.search-label').removeClass('hidden');
$('#selected-province-title').addClass('hidden');
$('#sidebar').addClass('hidden');
$('#map').css('background-color', '#fff');
map.flyTo([39.0, 35.0], 6);
});
});
function showProvinceInfo(prov) {
const content = $('#province-info-content');
content.html(`
<div class="info-card">
<h4>${prov.name} İli</h4>
<div class="info-row"><span>Toplam Nüfus:</span> <span>${prov.pop.toLocaleString('tr-TR')}</span></div>
<div class="info-row"><span>Erkek Nüfus:</span> <span>${prov.male.toLocaleString('tr-TR')}</span></div>
<div class="info-row"><span>Kadın Nüfus:</span> <span>${prov.female.toLocaleString('tr-TR')}</span></div>
<div class="info-row"><span>Nüfus Yoğunluğu:</span> <span>${prov.density} kişi / km²</span></div>
<div class="info-row"><span>Türkiye Payı:</span> <span>${prov.share}</span></div>
</div>
<p style="font-size:12px; color:#bdc3c7; margin-top:10px; font-style:italic;">* Veriler TÜİK Adrese Dayalı Nüfus Kayıt Sistemi (ADNKS) sonuçlarına dayanmaktadır.</p>
`);
}
</script>
</body>
</html>


