如何在Android传递json数组的谷歌地图上绘制折线?

时间:2017-07-18 05:22:51

标签: android mysql json google-maps android-asynctask

Hye伙计我正在研究车辆跟踪系统的项目,当用户可以在车辆路线上输入多线路的车辆数量时...

我已将路径位置及其纬度和经度存储到mysql数据库中我使用asynctask方法来获取此数据....

现在这是我在getRoute方法中的代码

当用户在EditText

中输入数字时,

getRoute方法将在按钮单击时调用

public void getRoute()
{
    final String BusNo = editBusNo.getText().toString().trim();

    Log.i(TAG,"value of the Bus No is "+ BusNo);

    class GetRoute extends AsyncTask<Void,Void,String>
    {
        ProgressDialog loading;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            Log.i(TAG,"in pre execute");
            loading = ProgressDialog.show(MapsActivity.this, "Fetching...", "Wait...", false, false);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();

            Log.i(TAG,"post execute");

            JSON_STRING = s;

            Log.i(TAG,"value of json_string "+ JSON_STRING);
        }

        @Override
        protected String doInBackground(Void... params) {
            RequestHandler rh = new RequestHandler();
            String s = rh.sendGetRequestParam("http://192.168.1.35/projects/map.php?name=", BusNo);

            Log.i(TAG,"value of s is "+ s);
            //Log.i(T,"The value of s is "+ s);
            return s;
        }
    }

    GetRoute gr = new GetRoute();
    gr.execute();
}

Looking for this type of polyline

2 个答案:

答案 0 :(得分:1)

要在Google地图上绘制折线,您需要List<LatLng>这是源和目的地之间的停靠点。

完成List之后,您可以使用以下代码

绘制折线
// I consider here is list of latlng from database.
List<LatLng> list = getListOfLatLng();
PolylineOptions options = new PolylineOptions().width(10).color(Color.BLUE);
for (int z = 0; z < list.size(); z++) {
    LatLng point = list.get(z);
    options.add(point);
}
map.addPolyline(options);

这将在map的{​​{1}}对象上绘制折线。

答案 1 :(得分:1)

试试这个,

Polyline polyline;

PolylineOptions polylineOptions = new PolylineOptions();            
JSONArray arr = response.getJSONArray("result");
for (int i = 0; i < arr.length(); i++) 
{
    JSONObject obj = arr.getJSONObject(i);
    String latitude = obj.getString("latitude");    
    String longitude = obj.getString("longitude");  

    polylineOptions.color(Color.RED);

    polylineOptions.width(3);

    Double lat = Double.parseDouble(latitude);
    Double Longitude = Double.parseDouble(longitude);

    polylineOptions.add(new LatLng(lat, Longitude));
}
polyline=map.addPolyline(polylineOptions);

然后当你想删除它时:

polyline.remove();