2016-02-18 1 views
1

У меня на моей карте около 200 полилиний. Теперь я пытаюсь выяснить, что ведьма Полилин, которую пользователь нажал. Но polyline.getId() дает мне каждый раз новое случайное число, например PL65, следующее начало приложения PL144 и т. Д.Идентифицируйте полилинию Google Карт на клике

Есть ли какой-нибудь способ узнать, что ведьма Полилин пользователь нажимал? Я должен показать для каждой Полилинии текст с правилами.

PolylineOptions spss7 = new PolylineOptions() 
 
     .add(new LatLng(52.260803, 8.16152)) 
 
     .add(new LatLng(52.259113, 8.162186)) 
 
     .add(new LatLng(52.258438, 8.158634)) 
 
     .color(Color.GREEN) 
 
     .geodesic(true); 
 
    Polyline psps7 = googleMap.addPolyline(spss7); 
 
    psps7.setClickable(true); 
 

 
    PolylineOptions spss8 = new PolylineOptions() 
 
     .add(new LatLng(52.3524987, 7.709607499999999)) 
 
     .add(new LatLng(52.3524921, 7.7098328)) 
 
     .add(new LatLng(52.3534915, 7.710031300000001)) 
 
     .color(Color.GREEN) 
 
     .geodesic(true); 
 
     Polyline psps8 = googleMap.addPolyline(spss8); 
 
     psps8.setClickable(true); 
 
    } 
 
     googleMap.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener(){ 
 
     public void onPolylineClick(Polyline polyline) { 
 
        int strokeColor = polyline.getColor()^0x0000CC00; 
 
        polyline.setColor(strokeColor); 
 
        Toast.makeText(getActivity(), "Polyline klick: "+polyline.getId(), Toast.LENGTH_LONG).show(); 
 
                 }

+0

Эй, Маркус, вы получили решение для этого? –

+0

Да, я нашел решение для меня. –

ответ

0

Вы можете использовать polyline tag для идентификации полилинии.

  PolylineOptions spss7 = new PolylineOptions() 
      .add(new LatLng(52.260803, 8.16152)) 
      .add(new LatLng(52.259113, 8.162186)) 
      .add(new LatLng(52.258438, 8.158634)) 
      .color(Color.GREEN) 
      .geodesic(true); 
     Polyline psps7 = googleMap.addPolyline(spss7); 
     psps7.setClickable(true); 
     psps7.setTag(new String("psps7")); 

     PolylineOptions spss8 = new PolylineOptions() 
      .add(new LatLng(52.3524987, 7.709607499999999)) 
      .add(new LatLng(52.3524921, 7.7098328)) 
      .add(new LatLng(52.3534915, 7.710031300000001)) 
      .color(Color.GREEN) 
      .geodesic(true); 
      Polyline psps8 = googleMap.addPolyline(spss8); 
      psps8.setClickable(true); 
      psps8.setTag(new String("psps8")); 
     } 
      googleMap.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener(){ 
      public void onPolylineClick(Polyline polyline) { 
         int strokeColor = polyline.getColor()^0x0000CC00; 
         polyline.setColor(strokeColor); 
         Toast.makeText(getActivity(), "Polyline klick: " + 
         (String)polyline.getTag(), Toast.LENGTH_LONG).show(); 
                  } 

Мы устанавливаем метку для 2 полилинии в этом примере, то в onClickListener мы получаем тег и бросил его обратно в строку.