0

Я пытаюсь реализовать направление маршрута для точек, которые у меня есть на моей карте, для этого я использую Polyline, проблема в том, что мне удалось соединить 2 точки карты, но У меня есть массив LatLng с 8 точками, как бы соединить все точки ?:Маршрутные направления для режима движения

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     setContentView(R.layout.maps); 


     ArrayList<LatLng> coordList = new ArrayList<LatLng>(); 
     ArrayList<String> nomes = new ArrayList<String>(); 
     try { 

      Bundle parametros = getIntent().getExtras(); 
      rm_IdViagem = parametros.getString("id_viagem"); 

      Repositorio ca = new Repositorio(this); 
      mViagemModel = ca.getViagemPorId(Integer.valueOf(rm_IdViagem)); 

      Repositorio cl = new Repositorio(this); 
      mClienteModel = cl.getClientesViagem(Integer.valueOf(rm_IdViagem)); 


      if(mClienteModel != null) { 

       for (int i = 0; i < mClienteModel.size(); i++) { 


        Repositorio mRepositorio = new Repositorio(this); 
        mEnderecoModel = mRepositorio.getListaEnderecosDoCliente(Integer.valueOf(mClienteModel.get(i).getClientes_id())); 


        for (int j = 0; j < mEnderecoModel.size(); j++) { 
         // Loading map 
         initilizeMap(); 
         // Changing map type 
         googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
         // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
         // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
         // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); 
         // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); 

         // Showing/hiding your current location 
         googleMap.setMyLocationEnabled(true); 

         // Enable/Disable zooming controls 
         googleMap.getUiSettings().setZoomControlsEnabled(true); 

         // Enable/Disable my location button 
         googleMap.getUiSettings().setMyLocationButtonEnabled(true); 

         // Enable/Disable Compass icon 
         googleMap.getUiSettings().setCompassEnabled(true); 

         // Enable/Disable Rotate gesture 
         googleMap.getUiSettings().setRotateGesturesEnabled(true); 

         // Enable/Disable zooming functionality 
         googleMap.getUiSettings().setZoomGesturesEnabled(true); 


         final float latitude = Float.parseFloat(mEnderecoModel.get(j).getLatitude()); 
         final float longitude = Float.parseFloat(mEnderecoModel.get(j).getLongitude()); 



         nomes.add(mClienteModel.get(i).getNome()); 


         coordList.add(new LatLng(latitude, longitude)); 

         googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 5)); 



         mClusterManager = new ClusterManager<MyItem>(MapaViagem.this, googleMap); 


         mClusterManager.setRenderer(new MyClusterRenderer(MapaViagem.this, googleMap, mClusterManager)); 

         googleMap.setOnCameraChangeListener(mClusterManager); 
         googleMap.setOnMarkerClickListener(mClusterManager); 

         //mClusterManager.setAlgorithm(new GridBasedAlgorithm<MyItem>()); 




         addItems(coordList, nomes); 


         mClusterManager.cluster(); 





       } 


      } 
     } 


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


public class MyClusterRenderer extends DefaultClusterRenderer<MyItem> { 

    public MyClusterRenderer(Context context, GoogleMap map, 
          ClusterManager<MyItem> clusterManager) { 
     super(context, map, clusterManager); 
    } 

    @Override 
    protected void onBeforeClusterItemRendered(MyItem item, MarkerOptions markerOptions) { 
     super.onBeforeClusterItemRendered(item, markerOptions); 

     markerOptions.title(String.valueOf(item.getName())); 
    } 

    @Override 
    protected void onClusterItemRendered(MyItem clusterItem, Marker marker) { 
     super.onClusterItemRendered(clusterItem, marker); 



     //here you have access to the marker itself 
    } 

    @Override 
    protected boolean shouldRenderAsCluster(Cluster<MyItem> cluster) { 
     return cluster.getSize() > 1; 
    } 



} 

ответ

2

Используйте этот пример. Это поможет вам найти решение. http://wptrafficanalyzer.in/blog/drawing-driving-route-directions-between-two-locations-using-google-directions-in-google-map-android-api-v2/

+0

спасибо, что это сработало, но оно соединяет только 2 точки карты, у меня 8, как бы я соединил все точки? Я обновил свой вопрос –

Смежные вопросы