Android 如何在指针之间绘制路线线

Android 如何在指针之间绘制路线线,android,google-maps,Android,Google Maps,我的地图上有很多位置指针,现在我想通过路线将所有这些指针相互连接我的地图就像这个截图看到这个截图了吗 上面是我的地图截图,现在我想用指针画线,我想这样做 下面是我的地图java代码,我可以做什么在地图上画路线 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); ht

我的地图上有很多位置指针,现在我想通过路线将所有这些指针相互连接我的地图就像这个截图看到这个截图了吗

上面是我的地图截图,现在我想用指针画线,我想这样做 下面是我的地图java代码,我可以做什么在地图上画路线

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);

    http = new Http();
    sharedPreferences = getSharedPreferences("dbapp", MODE_PRIVATE);
    avatarName= (TextView) findViewById(R.id.mProfiletv);
    profileName= (TextView) findViewById(R.id.mActName);

    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);


    Intent mapScreen= getIntent();
    stringID=mapScreen.getStringExtra("ID");
    Log.d(MainActivity.LOG_TAG,"[MapActivity::onCreate()]UID List:"+ stringID);
    userDetail=null;
    try {
        userDetail = new JSONObject(mapScreen.getStringExtra("jsonform"));

        profileName.setText(userDetail.getString("name"));


        String test = userDetail.getString("name");
        String s=test.substring(0,1);
        avatarName.setText(s);
        avatarName.setBackgroundColor(Integer.parseInt(mapScreen.getStringExtra("color")));
    } catch (JSONException e) {
        e.printStackTrace();
        Log.d(MainActivity.LOG_TAG,"Exception:"+e.getMessage());
    }


}


/**
 * Manipulates the map once available.
 * This callback is triggered when the map is ready to be used.
 * This is where we can add markers or lines, add listeners or move the camera. In this case,
 * we just add a marker near Sydney, Australia.
 * If Google Play services is not installed on the device, the user will be prompted to install
 * it inside the SupportMapFragment. This method will only be triggered once the user has
 * installed Google Play services and returned to the app.
 */
@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;


    new AsyncTask<Void, Void, String>() {

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

        @Override
        protected String doInBackground(Void... params) {
            String response;

            String body = "UID=" + stringID;
            response = http.postRequest(HttpConfigs.URL_COORDINATES, body);
            return response;
        }

        @Override
        protected void onPostExecute(String response) {
            super.onPostExecute(response);
            try {
                final JSONObject responseJson = new JSONObject(response);
                remoteMessage = responseJson.getString("message");
                if (responseJson.getBoolean("result")) {
                    JSONArray data = responseJson.getJSONArray("data");
                    Log.d(MainActivity.LOG_TAG,"Map DATA"+data.toString());
                    //Log.d(MainActivity.LOG_TAG, data.toString());

                    //Log.d(MainActivity.LOG_TAG, "Testing "+ data.length());
                    //Log.d(MainActivity.LOG_TAG, "Testing "+ data.length());
                    for (int i = 0; i < data.length(); i++) {
                        String lon = data.getJSONObject(i).getString("lon");
                        String lat = data.getJSONObject(i).getString("lat");
                        String time = data.getJSONObject(i).getString("time");

                        LatLng loc = new LatLng(Double.parseDouble(lat), Double.parseDouble(lon));
                        mMap.addMarker(new MarkerOptions().position(loc).title("Marker: "+i+" "+time));
                        if (i == data.length() - 1)
                            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(loc, 13));
                    }


                } else {
                    showMessage(remoteMessage);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }.execute();
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_映射);
http=新http();
SharedReferences=GetSharedReferences(“dbapp”,模式为私有);
avatarName=(TextView)findViewById(R.id.mProfiletv);
profileName=(TextView)findViewById(R.id.mActName);
//获取SupportMapFragment,并在地图准备好使用时收到通知。
SupportMapFragment mapFragment=(SupportMapFragment)getSupportFragmentManager()
.findFragmentById(R.id.map);
getMapAsync(这个);
Intent-mapScreen=getIntent();
stringID=mapScreen.getStringExtra(“ID”);
Log.d(MainActivity.Log_标记,“[MapActivity::onCreate()]UID列表:”+stringID);
userDetail=null;
试一试{
userDetail=newJSONObject(mapScreen.getStringExtra(“jsonform”);
profileName.setText(userDetail.getString(“name”));
字符串测试=userDetail.getString(“名称”);
字符串s=测试子字符串(0,1);
avatarName.setText(s);
setBackgroundColor(Integer.parseInt(mapScreen.getStringExtra(“颜色”)));
}捕获(JSONException e){
e、 printStackTrace();
Log.d(MainActivity.Log_标记,“异常:+e.getMessage());
}
}
/**
*一旦可用,就可以操纵贴图。
*当映射准备好使用时,将触发此回调。
*这是我们可以添加标记或线条、添加侦听器或移动摄影机的地方。在这种情况下,,
*我们只是在澳大利亚悉尼附近加了一个标记。
*如果设备上未安装Google Play服务,系统将提示用户安装
*它位于SupportMapFragment中。此方法仅在用户完成后触发
*已安装Google Play服务并返回应用程序。
*/
@凌驾
4月1日公开作废(谷歌地图谷歌地图){
mMap=谷歌地图;
新建异步任务(){
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护字符串doInBackground(无效…参数){
字符串响应;
String body=“UID=”+stringID;
response=http.postRequest(HttpConfigs.URL\u坐标,body);
返回响应;
}
@凌驾
受保护的void onPostExecute(字符串响应){
super.onPostExecute(响应);
试一试{
最终JSONObject responseJson=新JSONObject(响应);
remoteMessage=responseJson.getString(“消息”);
if(responseJson.getBoolean(“结果”)){
JSONArray data=responseJson.getJSONArray(“数据”);
Log.d(MainActivity.Log_标记,“映射数据”+DATA.toString());
//Log.d(MainActivity.Log_标记,data.toString());
//Log.d(MainActivity.Log_标记,“Testing”+data.length());
//Log.d(MainActivity.Log_标记,“Testing”+data.length());
对于(int i=0;i
使用

需要相应填充的LatLng值

PolylineOptions mRacePolyLineOptions=new PolylineOptions();
mRacePolyLineOptions.width(5);
mRacePolyLineOptions.color(Color.BLUE);

mRacePolyLineOptions.add(new LatLng(12.222,45.222));
mRacePolyLineOptions.add(new LatLng(17.222,555.222));
Polyline mRacingPolyLine = mGoogleMap.addPolyline(mRacePolyLineOptions);