将存储在SQLite数据库中的经度和纬度数据导出到文件中以便可以通过网站将其导入Google Map API的最简单方法?

将存储在SQLite数据库中的经度和纬度数据导出到文件中以便可以通过网站将其导入Google Map API的最简单方法?,第1张

将存储在SQLite数据库中的经度纬度数据导出到文件中以便可以通过网站将其导入Google Map API的最简单方法?

确定,只需在您的Android项目中添加此类(并进行相应的修改)

public class DatabaseAssistant{    private static final String EXPORT_FILE_NAME = "/sdcard/datanaexport.xml";    private Context _ctx;    private SQLiteDatabase _db;    private Exporter _exporter;    public DatabaseAssistant( Context ctx, SQLiteDatabase db )    {        _ctx = ctx;        _db = db;        try        { // create a file on the sdcard to export the // database contents to File myFile = new File( EXPORT_FILE_NAME );  myFile.createNewFile();  FileOutputStream fOut =  new FileOutputStream(myFile);  BufferedOutputStream bos = new BufferedOutputStream( fOut ); _exporter = new Exporter( bos );        }        catch (FileNotFoundException e)        { e.printStackTrace();        }        catch (IOException e)        { e.printStackTrace();        }    }    public void exportData( )    {        log( "Exporting Data" );        try        { _exporter.startDbExport( _db.getPath() ); // get the tables out of the given sqlite database         String sql = "SELECt * FROM sqlite_master";         Cursor cur = _db.rawQuery( sql, new String[0] );         Log.d("db", "show tables, cur size " + cur.getCount() );         cur.moveToFirst();         String tableName;         while ( cur.getPosition() < cur.getCount() )         {  tableName = cur.getString( cur.getColumnIndex( "name" ) );  log( "table name " + tableName );  // don't process these two tables since they are used  // for metadata  if ( ! tableName.equals( "android_metadata" ) &&  ! tableName.equals( "sqlite_sequence" ) )  {      exportTable( tableName );  }  cur.moveTonext();         }     _exporter.endDbExport(); _exporter.close();        }        catch (IOException e)        { e.printStackTrace();        }    }    private void exportTable( String tableName ) throws IOException    {        _exporter.startTable(tableName);        // get everything from the table        String sql = "select * from " + tableName;        Cursor cur = _db.rawQuery( sql, new String[0] );        int numcols = cur.getColumnCount();        log( "Start exporting table " + tableName );//      // logging//      for( int idx = 0; idx < numcols; idx++ )//      {//          log( "column " + cur.getColumnName(idx) );//      }        cur.moveToFirst();        // move through the table, creating rows        // and adding each column with name and value        // to the row        while( cur.getPosition() < cur.getCount() )        { _exporter.startRow(); String name; String val; for( int idx = 0; idx < numcols; idx++ ) {     name = cur.getColumnName(idx);     val = cur.getString( idx );     log( "col '" + name + "' -- val '" + val + "'" );     _exporter.addColumn( name, val ); } _exporter.endRow(); cur.moveTonext();        }        cur.close();        _exporter.endTable();    }    private void log( String msg )    {        Log.d( "DatabaseAssistant", msg );    }    class Exporter    {        private static final String CLOSING_WITH_TICK = "'>";        private static final String START_DB = "<export-database name='";        private static final String END_DB = "</export-database>";        private static final String START_TABLE = "<table name='";        private static final String END_TABLE = "</table>";        private static final String START_ROW = "<row>";        private static final String END_ROW = "</row>";        private static final String START_COL = "<col name='";        private static final String END_COL = "</col>";        private BufferedOutputStream _bos;        public Exporter() throws FileNotFoundException        { this( new BufferedOutputStream(         _ctx.openFileOutput( EXPORT_FILE_NAME,         Context.MODE_WORLD_READABLE ) ) );        }        public Exporter( BufferedOutputStream bos )        { _bos = bos;        }        public void close() throws IOException        { if ( _bos != null ) {     _bos.close(); }        }        public void startDbExport( String dbName ) throws IOException        { String stg = START_DB + dbName + CLOSING_WITH_TICK; _bos.write( stg.getBytes() );        }        public void endDbExport() throws IOException        { _bos.write( END_DB.getBytes() );        }        public void startTable( String tableName ) throws IOException        { String stg = START_TABLE + tableName + CLOSING_WITH_TICK; _bos.write( stg.getBytes() );        }        public void endTable() throws IOException        { _bos.write( END_TABLE.getBytes() );        }        public void startRow() throws IOException        { _bos.write( START_ROW.getBytes() );        }        public void endRow() throws IOException        { _bos.write( END_ROW.getBytes() );        }        public void addColumn( String name, String val ) throws IOException        { String stg = START_COL + name + CLOSING_WITH_TICK + val + END_COL; _bos.write( stg.getBytes() );        }    }    class importer    {    }}

不可靠的DatabaseAssistant类

DatabaseAssistant DA = new DatabaseAssistant(myContext, mySQLiteDatabase);

您要导出数据吗???所以…

DA.exportData();

;)希望有帮助!

豪尔赫西斯



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5427236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存