在Android google maps v2上保存标记

我正在使用 Android Google地图v2 API并将其设置为在长按时添加标记.我需要一种方法来保存这些标记,并在应用程序再次恢复时重新加载它们.最好的方法是什么?请帮忙

目前我添加标记如下:

map.addMarker(new MarkerOptions().position(latlonpoint)
            .icon(bitmapDescriptor).title(latlonpoint.toString()));

解决方法

我知道了!我可以通过将数组点列表保存到文件然后从文件中读回它来轻松完成此操作

我执行以下onPause:

try {
    // Modes: MODE_PRIVATE,MODE_WORLD_READABLE,MODE_WORLD_WRITABLE
    FileOutputStream output = openFileOutput("latlngpoints.txt",Context.MODE_PRIVATE);
    DataOutputStream dout = new DataOutputStream(output);
    dout.writeInt(listofPoints.size()); // Save line count
    for (LatLng point : listofPoints) {
        dout.writeUTF(point.latitude + "," + point.longitude);
        Log.v("write",point.latitude + "," + point.longitude);
    }
    dout.flush(); // Flush stream ...
    dout.close(); // ... and close.
} catch (IOException exc) {
    exc.printstacktrace();
}

并且onResume:我反其道而行之

try {
    FileInputStream input = openFileInput("latlngpoints.txt");
    DataInputStream din = new DataInputStream(input);
    int sz = din.readInt(); // Read line count
    for (int i = 0; i < sz; i++) {
        String str = din.readUTF();
        Log.v("read",str);
        String[] stringArray = str.split(",");
        double latitude = Double.parseDouble(stringArray[0]);
        double longitude = Double.parseDouble(stringArray[1]);
        listofPoints.add(new LatLng(latitude,longitude));
    }
    din.close();
    loadMarkers(listofPoints);
} catch (IOException exc) {
    exc.printstacktrace();
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...