Bu form üzerinde 6 adet buton vardır. butonlara birer renk ekledik. Böylelikle hangi rengin hangi şirkete ait olduğu görülmüş olacak. Parti isimlerinin yer aldığı bir adet listbox ve payların bölüneceği range kısmı bulunmaktadır. Range renkleri oluşturmamızı sağlayacaktır. Eğer listboxtan bir parti bir seçip tümü butonuna basarsanız şirketleri sıralayan bir tematik oluşturacaktır. Ancak parti seçip şirket adını seçerseniz şirketin en yakın tahminden en uzak tahmine göre iller koyudan açığa tematiklendirilecektir.
Aşağıdaki örneğe göre Türkiye'de Akp için en doğru tahmini veren şirket AKAM anket şirketi olarak görülmektedir.
Chp için bakacak olursak ;
Doğu illerinde Türkiye genelinde ve ağırlıklı olarak doğu illerinde Andy-Ar Başarılı iken iç anadoluda metropol şirketi daha başarılı çalışmalar vermiştir. Ayrıca sol alt köşede ne kadarlık bir yanılma payının olduğunu da görebilirsiniz. Sol alt köşedeki alana cartografic legend denmektedir. hangi rengin ne kadarlık bir farkı ifade ettiğine buradan bakabilirsiniz.
Form2 kodları aşağıdaki gibidir.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Secim
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string p = panel1.Handle.ToString();
int n = Convert.ToInt16(textBox1.Text);
string thematic_column = string.Empty;
if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[0]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_AKP Float)From AKAM_ICIN Set To FARK_AKP Where COL1 = COL2");
}
catch
{
}
thematic_column = "FARK_AKP";
Form1.mi.Do("select FARK_AKP from Iller order by FARK_AKP into sel");
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[1]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_CHP Float)From AKAM_ICIN Set To FARK_CHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_CHP from Iller order by FARK_CHP into sel");
thematic_column = "FARK_CHP";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[2]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_HDP Float)From AKAM_ICIN Set To FARK_HDP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_HDP from Iller order by FARK_HDP into sel");
thematic_column = "FARK_HDP";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[3]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_MHP Float)From AKAM_ICIN Set To FARK_MHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_MHP from Iller order by FARK_MHP into sel");
thematic_column = "FARK_MHP";
}
// TEMATİKKK OLUŞTURMA
int range = Convert.ToInt16(Form1.mi.Eval("int(tableinfo(sel,8)/" + Convert.ToString(n) + ")"));
int c_range = Convert.ToInt16(255 / n);
//----------part 2 -----
Form1.mi.Do("fetch first from sel");
string r1 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string r2 = string.Empty;
string cmstr = string.Empty;
for (int i = 1; i < n; i++)
{
Form1.mi.Do("fetch rec " + Convert.ToString(i * range) + " from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string rgb = Convert.ToString(Form1.mi.Eval("RGB(" + Convert.ToString((n - i) * c_range) + "," + Convert.ToString((n - i) * c_range) + ",255)"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2," + rgb + ",16777215), ";
r1 = r2;
}
Form1.mi.Do("fetch last from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2,255,16777215)";
Form1.mi.Do("shade window " + Form1.win_id + " iller with " + thematic_column + " ranges apply all use color Brush (2,16711680,16777215) " + cmstr);
Form1.mi.Do("Set Next Document Parent " + p + " Style 1");
Form1.mi.Do("Create Cartographic Legend From Window " + Form1.win_id + " Behind Frame From Layer 2");
Form1.mi.Do("select * from iller where plaka_no =\"82\" into sel");
}
//TEMATİK SİLME
public void removetematik()
{
for (int k = Convert.ToInt16(Form1.mi.Eval("mapperinfo(" + Form1.win_id + ",9)")); k > 0; k = k - 1)
{
if (Convert.ToInt16(Form1.mi.Eval("layerinfo(" + Form1.win_id + "," + Convert.ToString(k) + ",24)")) == 3)
{
Form1.mi.Do("remove map layer \"" + Form1.mi.Eval("layerinfo(" + Form1.win_id + "," + Convert.ToString(k) + ",1)") + "\"");
}
}
}
private void button2_Click(object sender, EventArgs e)
{
int n = Convert.ToInt16(textBox1.Text);
string thematic_column = string.Empty;
removetematik();
}
private void button4_Click(object sender, EventArgs e)
{
string p = panel1.Handle.ToString();
int n = Convert.ToInt16(textBox1.Text);
string thematic_column = string.Empty;
if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[0]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_AKP_2 Float)From METROPOLL_ICIN Set To FARK_AKP Where COL1 = COL2");
}
catch
{
}
thematic_column = "FARK_AKP_2";
Form1.mi.Do("select FARK_AKP_2 from Iller order by FARK_AKP_2 into sel");
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[1]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_CHP_2 Float)From METROPOLL_ICIN Set To FARK_CHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_CHP_2 from Iller order by FARK_CHP_2 into sel");
thematic_column = "FARK_CHP_2";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[2]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_HDP_2 Float)From METROPOLL_ICIN Set To FARK_HDP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_HDP_2 from Iller order by FARK_HDP_2 into sel");
thematic_column = "FARK_HDP_2";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[3]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_MHP_2 Float)From METROPOLL_ICIN Set To FARK_MHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_MHP_2 from Iller order by FARK_MHP_2 into sel");
thematic_column = "FARK_MHP_2";
}
// TEMATİKKK OLUŞTURMA
int range = Convert.ToInt16(Form1.mi.Eval("int(tableinfo(sel,8)/" + Convert.ToString(n) + ")"));
int c_range = Convert.ToInt16(255 / n);
//----------part 2 -----
Form1.mi.Do("fetch first from sel");
string r1 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string r2 = string.Empty;
string cmstr = string.Empty;
for (int i = 1; i < n; i++)
{
Form1.mi.Do("fetch rec " + Convert.ToString(i * range) + " from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string rgb = Convert.ToString(Form1.mi.Eval("RGB(" + Convert.ToString((n - i) * c_range) + "," + Convert.ToString((n - i) * c_range) + ",255)"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2," + rgb + ",16777215), ";
r1 = r2;
}
Form1.mi.Do("fetch last from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2,255,16777215)";
Form1.mi.Do("shade window " + Form1.win_id + " iller with " + thematic_column + " ranges apply all use color Brush (2,16711680,16777215) " + cmstr);
Form1.mi.Do("Set Next Document Parent " + p + " Style 1");
Form1.mi.Do("Create Cartographic Legend From Window " + Form1.win_id + " Behind Frame From Layer 2");
Form1.mi.Do("select * from iller where plaka_no =\"82\" into sel");
}
private void button6_Click(object sender, EventArgs e)
{
int n = Convert.ToInt16(textBox1.Text);
string p = panel1.Handle.ToString();
string thematic_column = string.Empty;
if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[0]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_AKP_3 Float)From ANDY_AR_ICIN Set To FARK_AKP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_AKP_3 from Iller order by FARK_AKP_3 into sel");
thematic_column = "FARK_AKP_3";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[1]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_CHP_3 Float)From ANDY_AR_ICIN Set To FARK_CHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_CHP_3 from Iller order by FARK_CHP_3 into sel");
thematic_column = "FARK_CHP_3";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[2]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_HDP_3 Float)From ANDY_AR_ICIN Set To FARK_HDP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_HDP_3 from Iller order by FARK_HDP_3 into sel");
thematic_column = "FARK_HDP_3";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[3]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_MHP_3 Float)From ANDY_AR_ICIN Set To FARK_MHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select FARK_MHP_3 from Iller order by FARK_MHP_3 into sel");
thematic_column = "FARK_MHP_3";
}
// TEMATİKKK OLUŞTURMA
int range = Convert.ToInt16(Form1.mi.Eval("int(tableinfo(sel,8)/" + Convert.ToString(n) + ")"));
int c_range = Convert.ToInt16(255 / n);
//----------part 2 -----
Form1.mi.Do("fetch first from sel");
string r1 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string r2 = string.Empty;
string cmstr = string.Empty;
for (int i = 1; i < n; i++)
{
Form1.mi.Do("fetch rec " + Convert.ToString(i * range) + " from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string rgb = Convert.ToString(Form1.mi.Eval("RGB(" + Convert.ToString((n - i) * c_range) + "," + Convert.ToString((n - i) * c_range) + ",255)"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2," + rgb + ",16777215), ";
r1 = r2;
}
Form1.mi.Do("fetch last from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2,255,16777215)";
Form1.mi.Do("shade window " + Form1.win_id + " iller with " + thematic_column + " ranges apply all use color Brush (2,16711680,16777215) " + cmstr);
Form1.mi.Do("Set Next Document Parent " + p + " Style 1");
Form1.mi.Do("Create Cartographic Legend From Window " + Form1.win_id + " Behind Frame From Layer 2");
Form1.mi.Do("select * from iller where plaka_no =\"82\" into sel");
}
private void button5_Click(object sender, EventArgs e)
{
int n = Convert.ToInt16(textBox1.Text);
string p = panel1.Handle.ToString();
string thematic_column = string.Empty;
if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[0]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_AKP_4 Float)From ORC_ICIN Set To FARK_AKP Where COL1 = COL2");
}
catch
{
}
thematic_column = "FARK_AKP_4";
Form1.mi.Do("select FARK_AKP_4 from Iller order by FARK_AKP_4 into sel");
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[1]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_CHP_4 Float)From ORC_ICIN Set To FARK_CHP Where COL1 = COL2");
}
catch
{
}
thematic_column = "FARK_CHP_4";
Form1.mi.Do("select FARK_CHP_4 from Iller order by FARK_CHP_4 into sel");
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[2]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_HDP_4 Float)From ORC_ICIN Set To FARK_HDP Where COL1 = COL2");
}
catch
{ }
thematic_column = "FARK_HDP_4";
Form1.mi.Do("select FARK_HDP_4 from Iller order by FARK_HDP_4 into sel");
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[3]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (FARK_MHP_4 Float)From ORC_ICIN Set To FARK_MHP Where COL1 = COL2");
}
catch
{
}
thematic_column = "FARK_MHP_4";
Form1.mi.Do("select FARK_MHP_4 from Iller order by FARK_MHP_4 into sel");
}
// TEMATİKKK OLUŞTURMA
int range = Convert.ToInt16(Form1.mi.Eval("int(tableinfo(sel,8)/" + Convert.ToString(n) + ")"));
int c_range = Convert.ToInt16(255 / n);
//----------part 2 -----
Form1.mi.Do("fetch first from sel");
string r1 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string r2 = string.Empty;
string cmstr = string.Empty;
for (int i = 1; i < n; i++)
{
Form1.mi.Do("fetch rec " + Convert.ToString(i * range) + " from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string rgb = Convert.ToString(Form1.mi.Eval("RGB(" + Convert.ToString((n - i) * c_range) + "," + Convert.ToString((n - i) * c_range) + ",255)"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2," + rgb + ",16777215), ";
r1 = r2;
}
Form1.mi.Do("fetch last from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2,255,16777215)";
Form1.mi.Do("shade window " + Form1.win_id + " iller with " + thematic_column + " ranges apply all use color Brush (2,16711680,16777215) " + cmstr);
Form1.mi.Do("Set Next Document Parent " + p + " Style 1");
Form1.mi.Do("Create Cartographic Legend From Window " + Form1.win_id + " Behind Frame From Layer 2");
Form1.mi.Do("select * from iller where plaka_no =\"82\" into sel");
}
private void button3_Click(object sender, EventArgs e)
{
int n = Convert.ToInt16(textBox1.Text);
string p = panel1.Handle.ToString();
string thematic_column = string.Empty;
if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[0]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (G_AKP Float)From karsılaştırma Set To G_AKP Where COL1 = COL2");
}
catch
{
}
thematic_column = "G_AKP";
Form1.mi.Do("select G_AKP from Iller order by G_AKP into sel");
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[1]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (G_CHP Float)From karsılaştırma Set To G_CHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select G_CHP from Iller order by G_CHP into sel");
thematic_column = "G_CHP";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[2]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (G_HDP Float)From karsılaştırma Set To G_HDP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select G_HDP from Iller order by G_HDP into sel");
thematic_column = "G_HDP";
}
else if (listBox1.SelectedItem.ToString().Equals(listBox1.Items[3]))
{
try
{
Form1.mi.Do("Add Column " + "\"Iller\"" + " (G_MHP Float)From karsılaştırma Set To G_MHP Where COL1 = COL2");
}
catch
{
}
Form1.mi.Do("select G_MHP from Iller order by G_MHP into sel");
thematic_column = "G_MHP";
}
// TEMATİKKK OLUŞTURMA
int range = Convert.ToInt16(Form1.mi.Eval("int(tableinfo(sel,8)/" + Convert.ToString(n) + ")"));
int c_range = Convert.ToInt16(255 / n);
//----------part 2 -----
Form1.mi.Do("fetch first from sel");
string r1 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string r2 = string.Empty;
string cmstr = string.Empty;
for (int i = 1; i < n; i++)
{
Form1.mi.Do("fetch rec " + Convert.ToString(i * range) + " from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
string rgb = Convert.ToString(Form1.mi.Eval("RGB(" + Convert.ToString((n - i) * c_range) + "," + Convert.ToString((n - i) * c_range) + ",255)"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2," + rgb + ",16777215), ";
r1 = r2;
}
Form1.mi.Do("fetch last from sel");
r2 = Convert.ToString(Form1.mi.Eval("sel.col1"));
cmstr = cmstr + r1 + ":" + r2 + " brush(2,255,16777215)";
Form1.mi.Do("shade window " + Form1.win_id + " iller with " + thematic_column + " ranges apply all use color Brush (2,16711680,16777215) " + cmstr);
Form1.mi.Do("Set Next Document Parent " + p + " Style 1");
Form1.mi.Do("Create Cartographic Legend From Window " + Form1.win_id + " Behind Frame From Layer 2");
Form1.mi.Do("select * from iller where plaka_no =\"82\" into sel");
}
public void Form2_Load(object sender, EventArgs e)
{
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
private void panel1_Paint_1(object sender, PaintEventArgs e)
{
}
public string p { get; set; }
}
}
Burada kodları tek tek açıklama gereksinimi duymuyorum Çünkü daha önceki derslerde mapinfo komutlarını açıklamıştım. Komutların içeriği ise sıradan bildiğimiz sql sorguları. Bu formun içerisindeki en önemli kodlama tematiğin yapıldığı kodlamadır. Bu kodlama içeriğinde iller teker teker taranmış sütunlar fark değerlerine göre karşılaştırılmıştır. Karşılaştırılmaya göre de renklendirme yapılmıştır. Projemiz burada sona erdi umarım bu anlatımın size bir faydası dokunur. Kolay gelmesi dileğiyle...
Hiç yorum yok:
Yorum Gönder