2015-12-23 4 views
0

Я новичок в андроиде и в настоящее время работаю над API-интерфейсом Google. Я могу построить несколько маркеров на карте, но хочу присоединиться к нескольким маркерам с полилинией. Я указал this на указания касательно, но это только для двух точек. Ниже приведен код для деятельности:Как присоединиться к нескольким маркерам на карте со стрелкой, возглавляемой полилинией, чтобы показать направление движения?

public class MainActivity extends AppCompatActivity { 

// Google Map 
private GoogleMap googleMap; 
// latitude and longitude 
double latitude; 
double longitude; 
String newtime; 
ArrayList<LatLng> points; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    points = new ArrayList<LatLng>(); 
    points.add(new LatLng(21.114369, 79.049423)); 
    points.add(new LatLng(21.113913, 79.049203)); 
    points.add(new LatLng(21.113478, 79.048736)); 
    points.add(new LatLng(21.113002, 79.048592)); 
    points.add(new LatLng(21.112857, 79.047315)); 
    points.add(new LatLng(21.112997, 79.046741)); 
    try { 
     // Loading map 
     initilizeMap(); 

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

    googleMap.getUiSettings().setZoomControlsEnabled(true); 
    googleMap.setMyLocationEnabled(true); 

    SimpleDateFormat sdfDateTime = new SimpleDateFormat("dd-MM-yy HH:mm:ss", Locale.US); 
    newtime = sdfDateTime.format(new Date(System.currentTimeMillis())); 

    // googleMap.addMarker(marker); 
    drawMarker(points); 

} 

private void initilizeMap() { 
    if (googleMap == null) { 
     googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 

     // check if map is created successfully or not 
     if (googleMap == null) { 
      Toast.makeText(getApplicationContext(), "Sorry! unable to create maps", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

private void drawMarker(ArrayList<LatLng> l) { 
    // Creating an instance of MarkerOptions 

    for (int i = 0; i < l.size(); i++) { 
     latitude = l.get(i).latitude; 
     longitude = l.get(i).longitude; 
     MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Bus") 
       .snippet(newtime); 
     marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); 

     // Adding marker on the Google Map 
     googleMap.addMarker(marker); 
    } 

    CameraPosition cameraPosition = new CameraPosition.Builder() 
      .target(new LatLng(l.get(0).latitude, l.get(0).longitude)).zoom(18).build(); 

    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

} 

@Override 
protected void onResume() { 
    super.onResume(); 
    initilizeMap(); 
} 

} 

Пожалуйста, помогите/направить меня для достижения этой задачи.

~ спасибо.

+0

Среднее значение, каждый пункт к другому. –

+0

Да, сэр, я хочу нарисовать линию поли, которая формирует маршрут, соединяя каждый маркер. –

+0

Здесь расположены ваши собственные классы? –

ответ

2

Изменить ваш drawMarker() к следующему: -

private void drawMarker(ArrayList<LatLng> l) { 
    // Creating an instance of MarkerOptions 

    PolylineOptions options = new PolylineOptions(); 
    options.color(Color.RED); 

    for (int i = 0; i < l.size(); i++) { 
     options.add(l.get(i)); 
     MarkerOptions marker = new MarkerOptions().position(l.get(i)).title("Bus") 
       .snippet(newtime); 
     marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); 

     // Adding marker on the Google Map 
     googleMap.addMarker(marker); 
    } 

    googleMap.addPolyline(options); 

    CameraPosition cameraPosition = new CameraPosition.Builder() 
      .target(new LatLng(l.get(0).latitude, l.get(0).longitude)).zoom(18).build(); 

    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

} 

Здесь будет добавлять строки с красным цветом, чтобы изменить цвета, как ваше желание просто изменить options.color().

+0

Его хорошо, но я хочу нарисовать направление линий мудрым, поэтому, пожалуйста, пожалуйста, помогите мне больше? –

+0

@SwapnilLanjewar Вы можете это сделать, я также не знаю, вам нужно написать собственную логику, вы можете найти ссылку для этого http://stackoverflow.com/questions/20382823/google-maps-api-v2-draw -part -of-circle-on-mapfragment/20408460 # 20408460 –

+0

OK Сэр, и я очень благодарен за вашу поддержку, время и драгоценную помощь! –

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