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

我创建了一个应用程序,它在SQLite数据库中记录一系列经度和纬度值,并在MapActivity上将它们显示为彩色轨迹。

我现在希望能够以某种方式(最好是文件)导出这些数据,以便用户可以将值上传到显示Google Map API的网站。

我的问题是:将数据(以及文件格式:GPX,XML,CSV)导出到Android设备上的SD卡的最快方法是什么。

非常感谢。

好的只需在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 = " 

instatiate DatabaseAssistant Class

 DatabaseAssistant DA = new DatabaseAssistant(myContext, mySQLiteDatabase); 

你想要出口数据??? 所以…

 DA.exportData(); 

;)希望这个帮助!

Jorgesys

嗨LordSnoutimus我有一个非常相似的情况所以我使用这个代码。

将Android SQLite数据库导出到SD卡上的XML文件非常有用,只需对您的应用进行一些更改:)

所以让我们编码吧!

Jorgesys