Рисование полилинии между всеми маркерами из запроса JSON в Android - PullRequest
0 голосов
/ 21 мая 2018

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

public void getCoordsId(final String id_trilho) {
    RequestQueue requestQueue = Volley.newRequestQueue(MapsActivity.this);
    StringRequest stringRequest = new StringRequest(Request.Method.POST, urlget,
            new Response.Listener<String>() {
                LatLng location;
                @Override
                public void onResponse(String response) {
                    System.out.println(response);
                    Toast.makeText(MapsActivity.this, "boa entrou", Toast.LENGTH_LONG).show();
                    try {
                        JSONArray array = new JSONArray(response);
                        for (int i = 0; i < array.length(); i++) {
                            JSONObject jo = array.getJSONObject(i);

                            Double lat = Double.parseDouble(jo.getString("lat"));
                            Double lng = Double.parseDouble(jo.getString("lon"));
location = new LatLng(lat,lng);
                              MarkerOptions options = new MarkerOptions();
                            options.position(location);
                            mMap.addMarker(options);

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

По сути, я получаю маркеры при нажатии кнопки, я хотел бы знать, как я могу добавить линии.

Спасибо за любую помощь заранее

1 Ответ

0 голосов
/ 21 мая 2018

Прежде всего вы сохраняете все значения в структуре данных.Допустим, ArrayList<LatLng>.Затем вы передаете его следующей функции (это, в основном, копирование из этой ссылки ):

private void createPolylinesFromLatLng(ArrayList<LatLng> list){
    if(myMap != null && list != null && list.size > 0){
        PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true);
        for (LatLng z : list) {
            LatLng point = list.get(z);
            options.add(point);
        }
        line = myMap.addPolyline(options);
    }
}
...