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();
}
答案 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();