Android 如何在单击多段线时获取特定数据?

Android 如何在单击多段线时获取特定数据?,android,google-maps,google-polyline,Android,Google Maps,Google Polyline,在使用多个数据时,借助这些数据,我正在使用lat和long值绘制多段线。现在当我绘制它时,我要指定直线,因为多段线单击的时间现在应该不同,因为可能lat和long值相同,但当我给它指定值时,我可以知道单击哪个lat和long PolylineOptions polylineOptions = new PolylineOptions(); polylineOptions.addAll(coordinateList); polylineOptions.width(10); polylineOptio

在使用多个数据时,借助这些数据,我正在使用lat和long值绘制多段线。现在当我绘制它时,我要指定直线,因为多段线单击的时间现在应该不同,因为可能lat和long值相同,但当我给它指定值时,我可以知道单击哪个lat和long

PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.addAll(coordinateList);
polylineOptions.width(10);
polylineOptions.color(Color.parseColor("#800080"));
Polyline line = mMap.addPolyline(polylineOptions);
line.setClickable(true);
coordinateList是lat和long值的列表。但是我想添加一个特定的值,以便在单击该值时获取该值

@Override
public void onPolylineClick(Polyline polyline) {
  double latitude = polyline.getPoints().get(0).latitude;
  double longitude = polyline.getPoints().get(0).longitude;
}
在click中,我了解了lat和long


如何设置特定值以及如何单击?

您可以维护一个结构(例如
映射
),以存储与
多段线关联的数据。例如(为每条
多段线存储
字符串
):

final Map polylines=new HashMap();
PolylineOptions PolylineOptions=新的PolylineOptions();
polylineOptions.addAll(坐标列表);
多段线选项。宽度(10);
polylineOptions.color(color.parseColor(#800080”);
多段线选项。可单击(真);
polylines.put(mMap.addPolyline(polylineOptions),“polylinedata”);
mMap.setOnPolylineClickListener(新的GoogleMap.OnPolylineClickListener(){
@凌驾
多段线上的公共空心单击(多段线){
Toast.makeText(MapsActivity.this,polylines.get(polyline),Toast.LENGTH_SHORT.show();
}
});

@antonia谢谢你的回答,但上面的回答只会给我一个多段线数据,但我需要所有的lat,很长时间都没有具体的数据data@antonia在上文中,将有多条多段线,您如何回答指定的多段线数据,我的解决方案可以与任意数量的多段线一起使用,并关联一个
对象
String
为简单起见,在本例中为每个
Polyline
(我只使用了一条Polyline来遵循您问题中的示例)。谢谢@antonia
final Map<Polyline, String> polylines = new HashMap<>();

PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.addAll(coordinateList);
polylineOptions.width(10);
polylineOptions.color(Color.parseColor("#800080"));
polylineOptions.clickable(true);

polylines.put(mMap.addPolyline(polylineOptions), "Polyline data");

mMap.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
    @Override
    public void onPolylineClick(Polyline polyline) {
        Toast.makeText(MapsActivity.this, polylines.get(polyline), Toast.LENGTH_SHORT).show();
    }
});