Вопрос

I have created sqlite database which stores Latitude,Longitude and some other information like description.

Now I want to extract this information and write into a GPX file to my SD card for further analysis purpose. Anyone have an idea about how to do this?

Any helpful links, sources etc.?

Это было полезно?

Решение

Thanks friends. Above two links help me to solve my problem, Here is the code for writing database values to .kml file

try {
                                File root = Environment
                                        .getExternalStorageDirectory();
                                if (root.canWrite()) {
                                    File gpxfile = new File(root, ""
                                            + value + ".kml");
                                    FileWriter gpxwriter = new FileWriter(
                                            gpxfile);
                                    BufferedWriter out = new BufferedWriter(
                                            gpxwriter);
                                    out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                                            + "\n"
                                            + "<kml xmlns=\"http://www.opengis.net/kml/2.2\">"
                                            + "\n" + "<Folder>" + "\n");
                                    for (int i = 0; i < latarray.length; i++) {
                                        out.write("<Placemark>" + "\n"
                                                + "<name> Point "
                                                + i
                                                + "</name>"
                                                + "\n"
                                                + "<description>"
                                                + ""
                                                + discription[i]
                                                + "</description>"
                                                + "\n"
                                                + "<Point>"
                                                + "\n"
                                                + "<coordinates>"
                                                + ""
                                                + (lonarray[i] / (1E6))
                                                + ","
                                                + ""
                                                + (latarray[i] / (1E6))
                                                + ","
                                                + ""
                                                + accuarray[i]
                                                + "</coordinates>"
                                                + "\n"
                                                + " </Point>"
                                                + "\n"
                                                + "</Placemark>" + "\n");
                                    }
                                    out.write("</Folder>" + "\n" + "</kml>");
                                    out.close();
                                    mydb.close();
                                }
                            } catch (IOException e) {
                                Log.e("Cant write", "Could not write file "
                                        + e.getMessage());
                            }

and here is the example to read value from database

public int[] lattodraw() {
    // TODO Auto-generated method stub

    String[] columns = new String[] { KEY_ROWID, KEY_Latitude,
            KEY_Longitude, KEY_Accuracy, KEY_ROWID, KEY_Latitude,
            KEY_Longitude, KEY_Accuracy, KEY_Discription, KEY_North,
            KEY_East, KEY_South, KEY_West };
    Cursor locationCursor = ourDatabase.query(DATABASE_TABLE, columns,
            null, null, null, null, null);

    locationCursor.moveToFirst();
    int count = locationCursor.getCount();
    int latarray[] = new int[count];
    int i = 0;
    do {

        int latitude = (int) (locationCursor.getDouble(locationCursor
                .getColumnIndex(KEY_Latitude)) * 1E6);

        latarray[i] = latitude;
        i++;
    } while (locationCursor.moveToNext());
    locationCursor.close();
    return latarray;
}

Другие советы

The best solution I found so far for both writing and reading GPX is this one: http://sourceforge.net/projects/gpxparser/

here it is:

try {
    File root = Environment.getExternalStorageDirectory();
    if (root.canWrite()){
        File gpxfile = new File(root, "gpxfile.gpx");
        FileWriter gpxwriter = new FileWriter(gpxfile);
        BufferedWriter out = new BufferedWriter(gpxwriter);
        out.write("Hello world");
        out.close();
    }
} catch (IOException e) {
    Log.e(TAG, "Could not write file " + e.getMessage());
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top