Live Chart Geo Map [C#]

jasgues

Katılımcı Üye
22 Nis 2009
806
1
32
Sakarya




Bu konuda Geo Chart olarak adlandırılan, coğrafi grafikler Live Chart kontrolü ile nasıl oluşturulur elimden geldiğince bunu anlatmak istiyorum. Amacımız bir dünya haritası üzerinde belirli değerlere göre ülkelerin renk ölçeği halinde görüntülenmesini sağlamak.

Bir Windows Form uygulaması projesi oluşturdum. Adını LiveChartGeoMap koydum. Solution Explorer(Çözüm gezgini) alanında projeme sağ tıklıyorum ve Manage Nuget Packages(Türkçe kullanıyorsanız "Nuget paketlerini yönet") diyorum.




Sonra orta alanda yer alan kısımda Browse sekmesine tıklıyor ve livecharts yazıyorum. Sonuçlar içinde LiveCharts.WinForms yazan paketi seçiyor ve yüklüyorum.




Şimdi bazı ayarlar yapmamız gerekecek. İlk önce Formun load olayına kodlarımızı yazalım.​
LiveCharts.WinForms.GeoMap g = new LiveCharts.WinForms.GeoMap(); //GeoMap sınıfından g adında bir nesne üretiyoruz. Dictionary<string, double> d = new Dictionary<string, double>(); d["TR"] = 100; //Türkiye için ülke kodu TR d["RU"] = 40; //Rusya için RU d["FR"] = 10; //Fransa için FR g.HeatMap = d; g.Source = $"{Application.StartupPath}\\world.xml"; g.Dock = DockStyle.Fill; Başta ürettiğimiz g adındaki nesneyi formun tamamını kaplayacak şekilde ayarlıyoruz. this.Controls.Add(g); //g adındaki nesneyi forma ekliyoruz g.EnableZoomingAndPanning = true; //Mouse'un scrollu ile zoom yapabilmeyi sağlıyoruz. g.LandStrokeThickness = 3; //ülke sınırlarını belirginleştirmeyi sağlıyoruz. g.Hoverable = true; //Mouse ile üzerine gelince ülke adı ve yukarda verdiğimiz değeri görmeyi sağlıyoruz.


Kodlarla işimiz kalmadı. Şimdi; solution explorer alanında Add'e tıklıyoruz, New Item seçiyoruz. Burada Data'yı seçiyoruz. Orta kısımda XML File seçip, ismini World.Xml veriyoruz. Add diyerek projemize ekliyoruz. Ardından vereceğim linke gidip gördüğümüz xml'in tamamını kopyalıyoruz. Oluşturduğumuz world.xml dosyasının içinde oluşan tek satırı silip kopyaladığımız xml veriyi yapıştırıyoruz. Properties kısmında; Copy to Output Directory alanını Copy Always yapıyoruz.





Kopyala yapıştır yapacağımız xml linki
Ben bunlarla uğraşamam diyenlere projenin github linki
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.