android - 如何获取折线点击的具体数据?

标签 android google-maps google-polyline

在多个数据的帮助下,我正在绘制具有纬度和经度值的折线。现在,当我绘制它时,我还要指定这条线,因为折线单击的时间我现在应该不同,因为纬度和经度值可能相同,但有些时候我会赋予它特定的值(value)然后我可以知道点击了哪个纬度和经度。

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

在点击中我认识了经纬度

如何设置具体值(value)以及如何获得点击?

最佳答案

您可以维护一个结构(例如 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();
    }
});

关于android - 如何获取折线点击的具体数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41295815/

相关文章:

javascript - Mapbox js : Changing the different latlng of a polyline based on properties

android - (Android - Google map )为什么折线会自动生成闭合图形

javascript - 在 Google map JavaScript API 中添加信息窗口

c# - 支持方向的 WPF map 控件,搜索

java - Android Recyclerview 添加其他 View

android - (Android Studio)快速完成外部类的建议变量名?

google-maps - 具有多个标记的 Angular 2 Google map

android - 如何删除 Google Maps Android API v2 中的多段线?

java - 使用 sqlite 在 android studio 中运行代码

java - 简单的进度对话框单击并在完成操作时隐藏