Google地图折线屏幕坐标

时间:2015-08-18 14:02:29

标签: android

我有一个基于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)如果单击是在折线上 - 在此折线的最近顶点处设置标记。我想我可以获得触摸事件的屏幕坐标,但是如何获得该折线的顶点的屏幕坐标?

或者可能有更简单的方法?

1 个答案:

答案 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)));
            }
        }
    }