点击即可识别Google地图折线

时间:2016-02-18 14:10:54

标签: android google-maps-android-api-2 polyline

我的地图上有大约200条折线。 现在我试图找出用户点击的巫婆Polyline。 但是polyline.getId()每次给我一个新的随机数,比如下一个PL454 PL65的PL65等等。

有没有办法知道用户点击的巫婆Polyline? 我必须为每个Polyline显示带有规则的文本。

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

1 个答案:

答案 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中我们获取标签并将其强制转换为字符串。