İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Microsoft Azure
  • .NET MAUI 11 Harita Pin Kümeleme: Sahadan Rehber
Geliştirici Araçları Microsoft Azure .NET MAUI, Android haritalar, harita performansı, iOS MapKit, Kullanıcı Deneyimi, mobil geliştirme, pin clustering Aşkın KILIÇ 16/04/2026 4 Yorumlar

.NET MAUI 11 Harita Pin Kümeleme: Sahadan Rehber

.NET MAUI 11 Harita Pin Kümeleme: Sahadan Rehber
📑 İçindekiler
  1. Küme Tıklama Olayını Yönetmek
  2. Platform Farklılıkları: Android vs iOS
  3. Türkiye'deki Ekipler Için Pratik Değerlendirme
  4. Küçük Ekip vs Büyük Kurumsal: Farklı Yaklaşımlar
  5. Eksik Bulduğum Noktalar ve Beklentilerim
  6. İhemen Başlamak Isteyenler Için Adımlar
  7. Sıkça Sorulan Sorular
  8. Pin clustering hangi platformlarda çalışıyor?
  9. Her pin kategorisini ayrı kümeleyebilir mıyım?
  10. Küme görünümünü özelleştirebilir mıyım?
  11. Çok sayıda pinle performans nasıl?
  12. .NET MAUI 11 Preview 3'ü production'da kullanabilir mıyım?
  13. Kaynaklar ve İleri Okuma

⏱️ 8 dk okuma📅 16 Nisan 2026🔄 Güncelleme: 13 Eylül 2026

Bir harita üstüne 50 pin atıyorsun, ekran bir anda okunmaz hâle geliyor. 200 pin olunca iş iyice dağılıyor. Bunu hepimiz yaşadık. Ben geçen yıl bir lojistik firmasının araç takip uygulamasında tam olarak bununla uğraştım — İstanbul haritasında 400+ araç pini üst üste binmişti ve müşteri “bu ne biçim uygulama” dedi, haklıydı da (yanlış duymadınız). Neyse, artık.NET MAUI 11 Preview 3 ile pin clustering özelliği kutudan çıkıyor. Tek satır kod. Ciddi ciddi.

Küme Tıklama Olayını Yönetmek

Şöyle ki, Kullanıcı bir kümeye tıklayınca ne olacak? Varsayılan davranış haritayı o kümeye zoom etmek.

Ama bazen bunu kendin yönetmek istersin; mesela liste göstermek istersin, bottom sheet açarsın ya da direkt başka ekrana geçersin.

İşte burada olay biraz şekil değiştiriyor.

map.ClusterClicked += async (sender, e) =>
{
string isimler = string.Join("
", e.Pins.Select(p => p.Label));
await DisplayAlert(
$"Kume ({e.Pins.Count} pin)",
isimler,
"Tamam");
// Varsayılan zoom davranışını iptal etmek için:
// e.Handled = true;
};

ClusterClickedEventArgs içinde şunlar var:

Özellik Tip Açıklama
Pins IReadOnlyList<Pin> Kumedeki tüm pinlerin listesi
Location Location Kümenin coğrafi merkez noktası
Handled bool true yaparsanız varsayılan zoom davranışı iptal olur

Hmm… e.Handled = true kısmı önemli.

Bunu true yapmazsanız harita otomatik zoom ediyor.

Ama bazen — özellikle kullanıcıya seçenek listesi göstermek istediğinizde — zoom’u kapatıp kendi UI’ınızı açmak çok daha iyi hissettiriyor.

Peki neden?

Çünkü kullanıcıya karar alanını sız veriyorsunuz.

ClusterClicked olayı sadece kümelere tıklandığında tetikleniyor.
Bireysel pin tıklamaları için hâlâ MapClicked veya Pin.MarkerClicked kullanmanız gerekiyor.
Bunu karıştıran çok oluyor; dikkat edin.

Platform Farklılıkları: Android vs iOS

İtiraf edeyim, Bak şimdi, bu bölüm önemli çünkü iki platform aynı şeyi aynı şekilde yapmıyor.

Aynı API var diye aynı davranış beklemeyin; o kadar temiz değil işte (ciddiyim)

Ve işler burada ilginçleşiyor.

Android tarafı: Özel bir grid-based algoritma kullanıyor. Zoom seviyesi değişince kümeleri yeniden hesaplıyor.

Harici kütüphane gerekmemesi güzel ama animasyonlar iOS’a kıyasla biraz sert kalabiliyor.

Kümelerin açılıp kapanması sırasında o akıcılık hissi Android’de azıcık eksik dürüyor.

Preview aşaması tabi; belki sonraki sürümde toparlanır.

iOS ve Maç Catalyst tarafı:
Native MKClusterAnnotation
desteğini kullanıyor.

MapKit’in clustering mekanizması zaten oturmuş durumda ve animasyonlar daha pürüzsüz gidiyor.

Bu tarafta ben pek sorun görmedim açıkçası.

Bazı testlerde ilginç şeylerle karşılaştık.

Logosoft’ta bir müşteri projesinde iOS ve Android harita performansını kıyaslarken şunu fark ettik: 500+ pin olduğunda Android’de ilk render süresi iOS’a göre yaklaşık %30 daha yavaştı.

Clustering açılınca fark biraz kapanıyor çünkü ekranda çizilen öğe sayısı azalıyor ama yine de akılda tutmak lazım; özellikle yoğun veri varsa lazy loading düşünmek kötü fikir değil.

Türkiye’deki Ekipler Için Pratik Değerlendirme

Neyse uzatmayayım; Türkiye’deki mobil ekiplerin çoğu hâlâ Xamarin’den.NET MAUI’ye geçişle uğraşıyor.

Hele bir de İstanbul ve Ankara’daki yazılım evlerinde bu geçiş bazen düz gitmiyor.

Harita bileşeni de genelde en sancılı parçalardan biri oluyor.

Üçüncü parti bağımlılıklar, sürüm uyuşmazlıkları, platform-specific workaround’lar derken iş büyüyor.

Clustering’in native gelmesi bu geçişi biraz daha cazip hâle getiriyor.
Itirazım yok buna.

Bunu biraz açayım.

Vallahi, “Bir de lokasyon bazlı uygulamalar Türkiye’de oldukça yaygın. Kurye takip var,
araç filo yönetimi var,
emlak var,
market bulma var… Hepsinde harita kullanılıyor ve hepsinde pin yoğunluğu sorunu çıkıyor. O yüzden bu özellik Türkiye pazarı için baya değerli.”

💡 Bilgi:.NET MAUI 11 Preview 3 kullanmak için.NET 11 SDK’yI yuklemeniz ve MAUI workload’ünü güncellemeniz gerekiyor.
dotnet workload update
komutuyla halledebilirsiniz.
Preview olduğunu unutmayın — production’a direkt atmayın.

Küçük Ekip vs Büyük Kurumsal: Farklı Yaklaşımlar

“

Eğer
3-5 kişilik
bir startup ekibiyseniz ve hızlı hareket etmeniz gerekiyorsa,
clustering’i açın,
identifier’larla kategorileri ayırın,
varsayılan davranışla gidin.

Ozellestirmeyle vakit kaybetmeyin;
önce ürünü çıkarın.

Ama enterprise seviyede
bir filo yönetim uygulaması yapıyorsanız,
işler değişir.

Custom cluster renderer gerekebilir.
Küme ikonlarinin renk kodlu olmasını,
üstünde kategori bilgisi gostermesini isteyebilirsiniz.

Su anki API buna tam cevap vermiyor;
platform-specific handler yazmanız gerekebilir.

Bu da.NET MAUI’nın handler mimarisiyle mümkün. Kolay değil.

Kısa bir not düşeyim buraya.

Ha bu arada,
.NET ekosistemindeki güncel gelişmeleri takip ediyorsanız,

.NET ve.NET Framework Nisan 2026 Güvenlik Yamaları

yazıma da göz atmanızı tavsiye ederim — güvenlik güncellemelerini kaçırmamak önemli.

Eksik Bulduğum Noktalar ve Beklentilerim

“

Açik konuşayım:
bu özellik fena değil,
hatta bayağı iş görüyor.

Ama preview aşamasında birkaç şey eksik kalmış:

  • Küme görünümünü özelleştirme (renk,
    ikon,
    boyut) için henüz resmî API yok — platform handler’larıyla ugrasmAnIz lazım
  • windows desteği yok.
    Sadece Android. IOS/Mac Catalyst.
    Windows’ta Maps kullanıyorsanız clustering calismayacak
  • Ccluster animasyonları Android’de iOS kadar akıcı değil
  • DinamIc pin ekleme/cIkartma durumunda kümelerin ne kadar hızlı güncellendiği benim test ettiğim kadarıyla biraz değişken — bazen bir zoom in/out gerekiyor güncelleme için
  • /ul>

    “

    Beklediğim kadar esnek değil henüz.
    Ama ilk adım olarak sağlam.
    Kağıt üstünde süper dursa da pratikte GA (General Availability) sürümünde asıl performansı göreceğiz.

    DevOps süreçlerinizi bu tarz preview SDK’larla test ederken CI/CD pipeline’larınızı da gözden gecirmenizde fayda var.
    Bu konuda
    azd update Komutu:
    Paket Yöneticisi Derdine Son

    yazım işinize yarayabilir.

    İhemen Başlamak Isteyenler Için Adımlar

    “

    Denemek istiyorsanız,
    su sırayı takip edin:

    1. .NET 11 Preview 3 SDK’yI indirip kurun
    2. dOTnet workload install maui
      veya dOTnet workload update
      çalıştırın
    3. Mevcut MAUI projenizde Maps NuGet paketini güncelleyin
    4. XAML’de IscLustEringEnabled=\"True\"
      ekleyin
    5. PIn’lerinize uygun ClusteringIdentifier
      değerleri atayın
    6. EEmulatorde veya fiziksel cihazda test edin — emulatorde bazen küme animasyonları düzgün gözükmüyor,
      fiziksel cihaz daha güvenilir

    İlk denememde Android emulatorde kümelerin bazen takıldığını gördüm.
    Fiziksel cihaza geçince sorun yoktu.
    Yanı emulatorde garip davranişlar gorurseniz hemen panik yapmayın — önce gerçek cihazda test edin.

    Ayrıca Microsoft’un maui-samples
    reposundaki Clustering sayfası güzel bir başlangıç noktası.
    Oradan kod kopyalayıp kendi projenize adapte edebilirsiniz.

    >

    Sıkça Sorulan Sorular

    Pin clustering hangi platformlarda çalışıyor?

    Şu an sadece Android ve iOS/Mac Catalyst’te çalışıyor. Windows tarafında henüz destek yok. iOS native MapKit MKClusterAnnotation kullanıyor, Android işe custom grid-based bir algoritmayla hallediyor.

    Her pin kategorisini ayrı kümeleyebilir mıyım?

    Yanı, Evet, yanı bu oldukça kullanışlı bir özellik. Pin nesnesindeki ClusteringIdentifier property’sine farklı değerler vermeniz yeterli. Kısacası, aynı identifier’a sahip pinler kendi aralarında bir düşüneyim… kümeleniyor, farklı olanlar işe ayrı ayrı. Mesela “restoran” ve “otel” pinlerini bağımsız olarak kümeleyebilirsiniz.

    Küme görünümünü özelleştirebilir mıyım?

    İtiraf edeyim, Açıkçası, Preview 3 itibarıyla resmî API ile doğrudan özelleştirme oldukça kısıtlı. Platform-specific handler yazarak native tarafta küme görünümünü değiştirebilirsiniz, ama bence bu biraz can sıkıcı (evet, doğru duydunuz). GA sürümünde bu konuda daha fazla seçenek geleceğini umuyorum.

    Çok sayıda pinle performans nasıl?

    Kısacası, i̇lginç olan şu ki, 500-1000 pin arasında gayet akıcı çalışıyor. 2000’in üzerine çıkınca Android’de ilk yükleme süresi biraz uzayabiliyor. Tecrübeme göre bu noktada viewport-based lazy loading stratejisi işleri ciddi ölçüde düzeltiyor (en azından benim deneyimim böyle). iOS işe native altyapısı sayesinde genelde daha pürüzsüz.

    .NET MAUI 11 Preview 3’ü production’da kullanabilir mıyım?

    Bence tavsiye etmem. Preview sürümler hani test ve değerlendirme içindir; API’ler değişebilir, buglar çıkabilir. Production için GA’yı bekleyin. Ama aslında şimdiden test ortamınızda deneyip geri bildirım verirseniz hem kendiniz hazır olursunuz hem de Microsoft’a katkı sağlamış olursunuz.

    Kaynaklar ve İleri Okuma

    Pin Clustering in.NET MAUI Maps —.NET Blog

    .NET MAUI Map Control — Microsoft Learn

    .NET MAUI Samples — GitHub

🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

GitHub Copilot Metriklerine VS Code Agents Eklendi
GitHub Copilot Metriklerine VS Code Agents Eklendi12 Eyl 2026
MSVC'de constexpr cmath ve LLVM libc: Ne Değişiyor?
MSVC'de constexpr cmath ve LLVM libc: Ne Değişiyor?13 Eyl 2026
vcpkg Nisan 2026: Kilitler, Hız ve Küçük Ama Kritik Dokunuşlar
vcpkg Nisan 2026: Kilitler, Hız ve Küçük Ama Kritik Dokunuşlar9 May 2026
ABD Gizli Bulutlarında GPT-5.2 Dönemi: Sıradan Bir Modelden Çok Daha Fazlası
ABD Gizli Bulutlarında GPT-5.2 Dönemi: Sıradan Bir Modelden Çok Daha Fazlası22 Mar 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket .NET MAUI Android haritalar harita performansı iOS MapKit Kullanıcı Deneyimi mobil geliştirme pin clustering
Önceki yazı

Azure MCP Araçları Visual Studio 2022’de Yerleşik Geldi

Sonraki yazı

VS Debugger Agent: Bug Avı Artık Ajan İşi

İlginizi Çekebilir

GitHub Copilot'ta Kaldırılan Modeller ve Geçiş Planı
Aşkın KILIÇ 0

GitHub Copilot’ta Kaldırılan Modeller ve Geçiş Planı

18/10/2026
Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
Aşkın KILIÇ 0

Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol

18/10/2026
Visual Studio 2026: İlk Hatada Derlemeyi Durdurma
Aşkın KILIÇ 0

Visual Studio 2026: İlk Hatada Derlemeyi Durdurma

18/10/2026

4 comments

comments user
Uğur H. 16/04/2026 06:09

Tam da bu sorunla boğuşuyordum, İstanbul’daki mağaza noktalarını haritada göstermeye çalışırken ekran pinlerle dolup taşıyordu. Preview 3’ün bunu kutudan çıkarması gerçekten iyi haber, acaba performans açısından çok sayıda cluster aynı anda ekranda olduğunda nasıl davranıyor?

comments user
Aslı S. 16/04/2026 12:44

İstanbul haritasında 500+ pin yükleyince uygulamanın nasıl patladığını yaşadım, clustering gerçekten kurtarıcı oldu. Preview 3’te kutudan çıkması büyük kolaylık, production’a ne zaman geçer acaba? Bu arada şu yazınız da güzeldi: Azure MCP Araçları Visual Studio 2022’de Yerleşik Geldi — https://www.askinkilic.com.tr/azure-mcp-araclari-visual-studio-2022de-yerlesik-geldi/

comments user
Arda K. 16/04/2026 12:47

Tam zamanında bir yazı, geçen ay İstanbul ilçe bazlı bir harita uygulaması yaparken pinler birbirinin üstüne binince çıldırmıştım. Preview 3’ü beklemeden denemeye başlayacağım, performans tarafında sıkıntı çıkıyor mu gerçek projede?

comments user
Cenk B. 16/04/2026 21:57

İstanbul haritasında 500+ pin ile uğraşırken çıldırmıştım, bu özellik gerçekten çok lazımdı. Preview 3’te kutudan çıkması süper ama production’da stabil mi acaba? Bu arada şu yazınız da güzeldi: GitHub Rule Insights Dashboard: Kural Yönetimi Kolaylaştı — https://www.askinkilic.com.tr/github-rule-insights-dashboard-kural-yonetimi-kolaylasti/

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • GitHub Copilot'ta Kaldırılan Modeller ve Geçiş Planı
    18/10/2026 GitHub Copilot’ta Kaldırılan Modeller ve Geçiş Planı
  • Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
    18/10/2026 Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
  • Visual Studio 2026: İlk Hatada Derlemeyi Durdurma
    18/10/2026 Visual Studio 2026: İlk Hatada Derlemeyi Durdurma
  • Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
    18/10/2026 Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
  • GitHub Code Quality Lisans Kullanımını CSV ile Doğrulayın
    17/10/2026 GitHub Code Quality Lisans Kullanımını CSV ile Doğrulayın
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure OpenAI azure sdk Azure SQL CI/CD code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans public preview Pull Request RAG REST API SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Azure MCP Araçları Visual Stud...
    VS Debugger Agent: Bug Avı Art... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS