Java 从URL解析csv文件(位置)并将其动态显示在google地图上
我正在进行一个项目,在这个项目中,我必须从一个包含纬度和经度的URL解析CSV文件,并将其显示在地图上。数据的链接是。这里的数据每5分钟更新一次,因此没有保存和读取文件的意义。所以我想动态地阅读它,并在地图上显示它,随着数据的更新,一切都会更新 我在这里做的工作很少,但没有达到预期的效果。相反,它显示了一些错误消息堆栈 我的代码如下Java 从URL解析csv文件(位置)并将其动态显示在google地图上,java,android,google-maps,Java,Android,Google Maps,我正在进行一个项目,在这个项目中,我必须从一个包含纬度和经度的URL解析CSV文件,并将其显示在地图上。数据的链接是。这里的数据每5分钟更新一次,因此没有保存和读取文件的意义。所以我想动态地阅读它,并在地图上显示它,随着数据的更新,一切都会更新 我在这里做的工作很少,但没有达到预期的效果。相反,它显示了一些错误消息堆栈 我的代码如下 BufferedReader buffer = null; String line; ArrayList<String> la
BufferedReader buffer = null;
String line;
ArrayList<String> latitudes = new ArrayList<>();
ArrayList<String> longitudes = new ArrayList<>();
ArrayList<String> places = new ArrayList<>();
ArrayList<LatLng> latsLons = new ArrayList<LatLng>();
try {
URL url = new URL("https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.csv");
URLConnection connection = url.openConnection();
InputStream input = connection.getInputStream();
buffer = new BufferedReader(new InputStreamReader(input));
while((line = buffer.readLine()) != null) {
String[] room = line.split(",");
latitudes.add(room[1]);
longitudes.add(room[2]);
places.add(room[13]);
}
latitudes.remove(0); // remove heading
longitudes.remove(0);
places.remove(0);
for (int i = 0; i < latitudes.size(); i++) {
latsLons.add(new LatLng(Double.parseDouble(latitudes.get(i)),
Double.parseDouble(longitudes.get(i))));
}
} catch (NullPointerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (buffer != null) {
try {
buffer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
for (LatLng pos: latsLons) {
mMap.addMarker(new MarkerOptions().position(pos).title("Earthquake place"));
}
BufferedReader buffer=null;
弦线;
ArrayList纬度=新ArrayList();
ArrayList经度=新ArrayList();
ArrayList places=新的ArrayList();
ArrayList latsLons=新的ArrayList();
试一试{
URL=新URL(“https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.csv");
URLConnection=url.openConnection();
InputStream输入=连接。getInputStream();
buffer=新的BufferedReader(新的InputStreamReader(输入));
而((line=buffer.readLine())!=null){
String[]room=line.split(“,”);
纬度。添加(房间[1]);
经度。添加(房间[2]);
增加(房间[13]);
}
纬度。删除(0);//删除航向
经度。移除(0);
位置。移除(0);
对于(int i=0;i
有人能帮我解决这个问题吗?你可以使用谷歌的firebase实时数据库服务。它的数据与你的应用程序实时同步。发布你的错误消息我将错误消息添加为图像。正如堆栈跟踪中的第一行所示,你正在主线程上执行网络i/o: