首页 > 解决方案 > 在android中的json请求的所有标记之间绘制折线

问题描述

我正在android中创建一个hicking应用程序,到目前为止,我可以插入我的路径,沿着我想要创建的方式插入各种标记,现在我想在我从我的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();
                    }

基本上我在单击按钮时得到标记,我想知道如何添加线条。

感谢您提前提供任何帮助

标签: androidjsonmapsandroid-volleypolyline

解决方案


首先,您将所有 lat lng 保存在数据结构中。让我们说一个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);
    }
}

推荐阅读