读取LatLngs的csv文件,添加到ArrayList然后打印到谷歌地图片段

时间:2014-07-22 00:12:34

标签: android google-maps csv arraylist

我希望将约60个LatLng的标记放到谷歌地图片段中。 (他们将聚集在一起,但这是我认为的另一个话题)。我不想硬编码60个变量,所以我认为将它们存储在csv文件中并从那里绘制它们可能更好。我该怎么做?

2 个答案:

答案 0 :(得分:1)

您的CSV文件可能如下所示:

48.45126,96.45631
46.56541,95.65476
47.56723,94.58639

您可以将文件存储在res文件夹中,也可以将其存储在内部存储中。如果您将文件存储在res中,则无法更改,因为它与APK和只读打包在一起。有关详细信息,请参阅this。无论哪种方式,请获取您的文件:

InputStream instream = new FileInputStream("location_of_file.csv");
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader reader= new BufferedReader(inputreader);
List<LatLng> latLngList = new ArrayList<LatLng>();
String line = "";

while( (line = reader.readLine()) != null) // Read until end of file
{
  double lat = Double.parseDouble(line.split(",")[0]);
  double lon = Double.parseDouble(line.split(",")[1]);
  latLngList.add(new LatLng(lat, lon));
}

// Add them to map
for(LatLng pos : latLngList)
{
  mMap.addMarker(new MarkerOptions()
        .position(pos)
        .title("Title!")); // Don't necessarily need title
}

希望这有帮助!

答案 1 :(得分:0)

第1步 将您的csv添加到Assets文件夹

第2步 读入你的csv文件,如

BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open("test.csv")));

第3步 解析你的csv文件

 String line;
    while ((line = reader.readLine()) != null) {
         String[] RowData = line.split(",");
         date = RowData[0];
         value = RowData[1];
        // do something with "data" and "value"
    }

结帐

Get and Parse CSV file in android

How to parse the CSV file in android application?