Kullanıcılarınızın hangi şehirlerden geldiğini görün
Kullanıcılarınızın coğrafi dağılımını gösteren harita sistemi geliştirdik. Şehir bazında kullanıcı sayıları, bölgesel trendler ve yerel içerik tercihleri.
Kullanıcı her istek yaptığında IP adresi üzerinden konum bilgisi çıkarılır ve veritabanına kaydedilir. Bu veriler coğrafi dağılım raporlarını oluşturmak için kullanılır.
Middleware içinde $request->ip() veya $request->header('X-Forwarded-For') ile gerçek IP adresi alınır. Cloudflare arkasındaysa CF-Connecting-IP header'ı kullanılır.
torann/geoip paketi veya MaxMind GeoLite2 veritabanı kullanılır: geoip($ip) ile ülke, şehir, enlem/boylam bilgileri döner.
Her oturum veya stream kaydına country_code, city, latitude, longitude alanları eklenir. Privacy için IP hash'lenir.
Şehir bazlı dağılım: User::selectRaw('city, COUNT(*) as count')->groupBy('city')->orderByDesc('count'). Yüzde hesaplama: ($cityCount / $totalUsers) * 100.
Enlem/boylam koordinatları [['lat' => 41.01, 'lng' => 28.97, 'count' => 500]] formatında JSON'a çevrilir. Frontend'de Leaflet.js heatmap plugin'i ile görselleştirilir.
Her şehir için en çok dinlenen şarkılar: Stream::where('city', 'Istanbul')->with('song')->groupBy('song_id')->orderByRaw('COUNT(*) DESC')->take(10).
(Coğrafi Konum)
Kullanıcının fiziksel konumunu belirleme. IP adresinden veya GPS'ten alınır.
(Isı Haritası)
Yoğunluğu renklerle gösteren harita. Kırmızı = yoğun, mavi = seyrek.