rysowanie współrzędnych

0

Witam. Muszę wczytać plik i go wyrysować. Plik jest formatu mif. Jest to mapa w postaci współrzędnych. Współrzędne podzielone są na dziwne regiony, pline itp. Jak wyrysować taki plik? Bo sposobem poniżej nie wychodzi, mylą się kolory i w ogóle.

    private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();

            dialog.ShowDialog();
            if (!File.Exists(dialog.FileName)) return;

            StreamReader reader = new StreamReader(dialog.FileName);

            Map map = new Map(reader.ReadToEnd());

            patches = map.ColouredPatchesCollection();
            

            panel3.Enabled = true;

            this.pictureBox1.MouseLeave += new System.EventHandler(this.pictureBox1_MouseLeave);
            this.pictureBox1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
            this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);

            RotatePath(180); // taki feature, bo mapa jest obrócona o 180 stopni po wczytaniu...
            // w sumie to nie rozwiązuje problemu dziwnego wczytywania, ale tymczasowo...

            pictureBox1.Invalidate();
        }

        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            if (patches == null) return;

            for (int i = 0; i < patches.Count; i++)
            {
                e.Graphics.DrawPath(patches[i].Pen, patches[i].Path);
                if (patches[i].Brush != null) e.Graphics.FillPath(patches[i].Brush,patches[i].Path);
            }
        }

A tutaj zamieszczam kawałki pliku mif:
14.738956 53.977209
14.741339 53.976981
14.743337 53.976754
14.745028 53.9763
14.747411 53.975302
14.748334 53.974803
14.750256 53.974077
14.75287 53.973261
14.754945 53.97258
14.755868 53.972081
14.756407 53.971265
14.756792 53.970223
14.75664 53.969044
Pen (1,2,0)
Brush (2,4243711,16777215)
Center 15.835841 54.651823
Version 300
Charset "WindowsLatin2"
Delimiter ","
CoordSys Earth Projection 1, 104
Columns 1
ID Integer
Data

Region 3
1112
14.676507 53.908191
14.676642 53.909114
14.677332 53.909977
14.679557 53.913334
14.681244 53.915557

Pline 2
14.731409 54.021958
14.730063 54.023045
Pen (1,2,0)
Pline 2
14.729143 54.021461
14.727912 54.022412
Pen (1,2,0)
Region 6
8
14.913275 54.054928
14.94995 54.063062
14.950952 54.060626
14.943253 54.053404
14.937686 54.053658
14.930838 54.050468
14.917563 54.050389
14.913275 54.054928
13
14.457637 53.934951
14.440945 53.92771
14.434881 53.925269
14.434171 53.922319
14.43981 53.92219
14.448083 53.927413
14.449653 53.927328
14.450296 53.92678
14.447018 53.92244

1

Dla ciekawskich - problem leżał w nieprawidłowej (pomyłka o 1) zamianie z koloru 24-bitowego na 32-bitowy, oraz niezamykaniu figur GP.

Rozwiązane. Autor prawdopodobnie zwątpił w moją wszystkowiedzącość albo przestraszył się że opuściłem swój projekt ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1