public async void readGeoTagCallback(string inPath, string layer, Color color)
        {
            ThreadUtil t = new ThreadUtil();

            t.setMinMax      += setMinMax;
            t.addRecord      += addRecord;
            t.geoTagComplete += geoTagComplete;
            fileQueue         = await t.buildQueue(inPath);

            GMapOverlay overlay = new GMapOverlay(layer);

            resetMinMax();
            overlay = await t.readGeoTag(fileQueue, inPath, layer, color.Name);

            setLayerAttributes();
            zoomToMarkers();
            refreshUI(overlay, color.Name);
        }
        public async void writeGeoTagCallback(string dbPath, string inPath, string outPath, string layer, string color, Boolean allRecords)
        {
            ThreadUtil t = new ThreadUtil();

            connectionString = string.Format("Provider={0}; Data Source={1}; Jet OLEDB:Engine Type={2}", "Microsoft.Jet.OLEDB.4.0", dbPath, 5);
            connection       = new OleDbConnection(connectionString);
            connection.Open();
            resetMinMax();
            t.setMinMax += setMinMax;
            fileQueue    = await t.buildQueue(inPath);

            mRecordDict = await t.readFromDatabase(dbPath, allRecords);

            mRecordDict = await t.writeGeoTag(mRecordDict, fileQueue, inPath, outPath);

            setLayerAttributes();
            zoomToMarkers();
            plotLayer(layer, color);
            connection.Close();
        }