Сбой приложения Google android map при получении широты и долготы из базы данных - PullRequest
0 голосов
/ 27 апреля 2020

Мне нужно показать местоположение автобуса на карте, у меня есть широта и долгота, сохраненные в моей базе данных. Для получения широты и долготы я использую AsynTask. Но я думаю, что есть некоторые проблемы с моим кодом, приложение вылетает, если вызвать AsyncTask в onMapReady. Я проверил без вызова AsyncTask с указанием широты и долготы, все работает нормально. Пожалуйста, помогите мне решить проблему.

Это мой код:

 @Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    GetLocation getLocation = new GetLocation(getApplicationContext());
    getLocation.execute();

}

public class GetLocation extends AsyncTask<String,Void,String> {
    Context context;
    GetLocation(Context ctx){
        context = ctx;
    }

    @Override
    protected String doInBackground(String... params) {

        return null;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected void onPostExecute(String s) {

        String login_url = "https://www.mywebsite.com/android/getlonglatt.php";

        try {
            URL url = new URL(login_url);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line = "";
            String result="";
            while ((line = bufferedReader.readLine())!=null){
                result += line;
            }
            JSONObject jsonObject = new JSONObject(result);
            String latitudedb = (String) jsonObject.get("latitude");
            String longitudedb = (String) jsonObject.get("longitude");
            String busnum = (String) jsonObject.get("busnum");

            Double newlatt = Double.valueOf(latitudedb);
            Double newlong = Double.valueOf(longitudedb);

            LatLng location = new LatLng(newlatt, newlong);

            MarkerOptions options = new MarkerOptions().position(location).title(busnum);
            mMap.addMarker(options);
            mMap.moveCamera(CameraUpdateFactory.newLatLng(location));
            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location,19.2f));

            bufferedReader.close();
            httpURLConnection.disconnect();
        }  catch (JSONException e) {
            e.printStackTrace();
        }  catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    protected void onProgressUpdate(Void... values) {

    }

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