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