我有一个基于5个LanLong对象的简单Google Map(V2)折线。我需要:
1)使这个可点击(我假设可以通过在Polyline类的子类上实现onClickListener接口来完成)
ArrayList<LatLng> coordinates = new ArrayList<>();
coordinates.add(new LatLng(37.345, 56.432));
coordinates.add(new LatLng(39.234, 50.451));
coordinates.add(new LatLng(45.798, 24.345));
coordinates.add(new LatLng(34.783, 70.345));
coordinates.add(new LatLng(14.234, 23.453));
PolylineOptions path = new PolylineOptions();
path.addAll(coordinates);
path.width(5);
path.color(Color.RED);
path.geodesic(true);
2)如果单击是在折线上 - 在此折线的最近顶点处设置标记。我想我可以获得触摸事件的屏幕坐标,但是如何获得该折线的顶点的屏幕坐标?
或者可能有更简单的方法?
答案 0 :(得分:0)
我发现了一个问题。我为任何挣扎的人发布了onMapClick()方法的代码:
@Override
public void onMapClick(LatLng clickCoordinates) {
for (LatLng pathCoordinates : path.getPoints()) {
float[] results = new float[1];
Location.distanceBetween(clickCoordinates.latitude, clickCoordinates.longitude,
pathCoordinates.latitude, pathCoordinates.longitude, results);
if (results[0] < 100) {
if (currentMarker != null) {
currentMarker.remove();
}
currentMarker = googleMap.addMarker(new MarkerOptions().position(new LatLng(pathCoordinates.latitude, pathCoordinates.longitude)));
}
}
}