如何获取折线点击的具体数据?
How to get the specific data in click of polyline?
在多个数据的帮助下,我正在绘制具有纬度和经度值的折线。现在,当我绘制它时,我还要指定这条线,因为折线单击的时间我现在应该不同,因为纬度和经度值可能相同,但有些时候我会赋予它特定的价值然后我可以知道点击了哪个纬度和经度。
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.addAll(coordinateList);
polylineOptions.width(10);
polylineOptions.color(Color.parseColor("#800080"));
Polyline line = mMap.addPolyline(polylineOptions);
line.setClickable(true);
coordinateList 是经纬度值列表。但是我想添加一个特定的值以获取单击时的值。
@Override
public void onPolylineClick(Polyline polyline) {
double latitude = polyline.getPoints().get(0).latitude;
double longitude = polyline.getPoints().get(0).longitude;
}
点击了解经纬度
如何设置特定值以及如何获得点击?
您可以维护一个结构(例如 Map
)来存储与 Polyline
关联的数据。例如(为每个 Polyline
存储一个 String
):
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();
}
});
在多个数据的帮助下,我正在绘制具有纬度和经度值的折线。现在,当我绘制它时,我还要指定这条线,因为折线单击的时间我现在应该不同,因为纬度和经度值可能相同,但有些时候我会赋予它特定的价值然后我可以知道点击了哪个纬度和经度。
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.addAll(coordinateList);
polylineOptions.width(10);
polylineOptions.color(Color.parseColor("#800080"));
Polyline line = mMap.addPolyline(polylineOptions);
line.setClickable(true);
coordinateList 是经纬度值列表。但是我想添加一个特定的值以获取单击时的值。
@Override
public void onPolylineClick(Polyline polyline) {
double latitude = polyline.getPoints().get(0).latitude;
double longitude = polyline.getPoints().get(0).longitude;
}
点击了解经纬度
如何设置特定值以及如何获得点击?
您可以维护一个结构(例如 Map
)来存储与 Polyline
关联的数据。例如(为每个 Polyline
存储一个 String
):
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();
}
});