Парсинг файла csv (местоположения) по URL-адресу и его динамическое отображение на карте Google - PullRequest
0 голосов
/ 23 октября 2018

Я работаю над проектом, в котором мне нужно проанализировать CSV-файл по URL-адресу с широтой и долготой и отобразить его на карте.Ссылка для данных здесь .Данные здесь обновляются каждые 5 минут и, следовательно, нет смысла сохранять их и читать файл.Поэтому я хочу прочитать его динамически и показать на карте, так как данные обновляются, все обновляется.

Я проделал небольшую работу здесь, но я не получаю ожидаемый результат.Вместо этого он показывает некоторый стек сообщений об ошибках.

Сообщение об ошибке

Мой код указан ниже.

    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"));
    }

Может кто-нибудь помочь мне исправить это?

1 Ответ

0 голосов
/ 23 октября 2018

вы можете использовать службу базы данных Google Firebase в режиме реального времени. Она синхронизирует данные с вашим приложением в режиме реального времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...