android - 在 Google map MapView 中显示船只路线 - Android

标签 android google-maps android-mapview

我目前需要在 MapView 中显示一条船/游轮路线,就像这样 Cruise routes

我开始编写我的版本,但由于我看到的每个水路示例都是相同的,所以我开始怀疑是否有一种“标准”方法可以做到这一点。我已经搜索了几个小时,但还没有找到任何东西,所以我决定在这里问一下。

这是我目前所拥有的:

Point point2 = new Point();
projection.toPixels(gp2, point2);
paint.setStrokeWidth(5);
paint.setPathEffect(new DashPathEffect(new float[] {8,12}, 5));
paint.setAlpha(defaultColor==Color.parseColor("#6C8715")?200:100);
canvas.drawLine(point.x, point.y, point2.x,point2.y, paint);

它正在运行,唯一剩下要做的就是在每次用户缩放时调整线条。 这是这样做的方法,还是有一种标准的方法?

感谢任何帮助,谢谢。

最佳答案

如果您将代码移动到 Overlay那么您就不必担心在用户缩放/平移时调整线条。由于您可能有两个以上的点要绘制,您还可以利用 Path类(class)。

import com.google.android.maps.Overlay;

class PathOverlay extends Overlay {

    private void List<GeoPoint>geoPoints;

    public PathOverlay(List<GeoPoint> points) {
        this.geoPoints = geoPoints;
    }   

    public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        super.draw(canvas, mapv, shadow);

        Paint paint = new Paint();
        paint.setStrokeWidth(5);
        paint.setPathEffect(new DashPathEffect(new float[] {8,12}, 5));
        paint.setAlpha(defaultColor==Color.parseColor("#6C8715")?200:100);

        Path path = new Path();
        boolean isFirst = true;
        for (GeoPoint geoPoint : this.geoPoints) {
            Point point = new Point();
            mapView.getProjection().toPixels(geoPoint, point);
            if (isFirst) {
                isFirst = false;
                path.moveTo(point.x, point.y);
            }
            else {
                path.lineTo(point.x,point.y);
            }
        }
        canvas.drawPath(path, paint);
    }
}

关于android - 在 Google map MapView 中显示船只路线 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762633/

相关文章:

javascript - 如何使用他们的 API 设置 Google map 的样式

android - 方向更改后,MapView 的 fragment 在触摸时崩溃

java - 如何在 Vuforia(没有 Unity)中点击模型的一部分?

android - 在 Android 键盘中包含单词建议

android - 如何使用 ADB 查看受监控的地理围栏列表?

javascript - 如何在 Ajax 调用后使用标记渲染 Google map

android - 为什么我无法在 VS 2015 中安装 google play services maps (Android)?

Android 检测到不成功的电话并稍后再试

java - 在外接圆的中心显示标记

android - 谷歌地图在我的应用程序中不起作用