在app项目中保存OSM地图图块

时间:2013-07-02 16:13:17

标签: android osmdroid offline-mode

只是想知道是否可以将保存的地图图块从移动地图集添加到项目而不是SD卡?

我希望地图图块在我将发布的应用程序中可用。它是Android市场上的免费应用程序。

地图图块分为4个zip文件,是否可以从项目文件中保留和使用它们,或者我是否需要在线服务器从中下载它们。

任何帮助都会很棒

谢谢

1 个答案:

答案 0 :(得分:0)

一个选项是使用assets文件夹存储文件,然后将它们复制到您的私有应用程序数据目录。这样的事情应该有效。这会复制数据库,但您可以对其进行修改以复制您的zip文件。

/**
 * Copies your database from your local assets-folder to the just created empty database in the
 * system folder, from where it can be accessed and handled. This is done by transfering
 * bytestream.
 * */
private void copyDataBase() throws IOException {

    // Open your local db as the input stream
    InputStream myInput = mContext.getAssets().open(DB_NAME);

    // Path to the just created empty db
    String outFileName = DB_PATH.toString();
    // boolean success = DB_PATH.mkdirs();

    // Open the empty db as the output stream
    OutputStream myOutput = new FileOutputStream(outFileName);

    // transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) {
        myOutput.write(buffer, 0, length);
    }

    // Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();

}