private void button3_Click(object sender, EventArgs e) { if (txtCreateName.Text == string.Empty) { MessageBox.Show("Please select area"); return; } string area = txtCreateName.Text; tilesBlock = new List <TileBlock>(); foreach (string file in Directory.EnumerateFiles(m_baseDir + area, "*.png", SearchOption.AllDirectories)) { string[] fileparts = file.Split('_'); string [] s = fileparts[0].Split(Path.DirectorySeparatorChar); var dirName = s[2]; TileBlock t = new TileBlock(); t.x = int.Parse(fileparts[2]); t.y = int.Parse(fileparts[3]); t.pixelx = int.Parse(fileparts[4]); t.pixely = int.Parse(fileparts[5]); t.zoom = int.Parse(fileparts[1]); PixelXYToLatLongOSM(t.pixelx, t.pixely, t.zoom, out t.lat, out t.lon); t.fileName = file; t.name = dirName; tilesBlock.Add(t); } TileDB db = new TileDB(m_baseDir + area + "\\tiles_lat_lon_db.json"); db.Save(tilesBlock); MessageBox.Show("Created"); if (mapControl1.LoadMapData(m_baseDir + area + "\\tiles_lat_lon_db.json", out string outMessage) == true) { //mapControl1.ShowLatLon(txtCreateName.Text, int.Parse(cmbZoom.Text)); m_initdone = true; } else { MessageBox.Show(outMessage); } }