Osmdroid - 折线不能平滑

时间:2018-04-23 02:52:32

标签: java android openstreetmap osmdroid

我正在使用Osmdroid库来显示离线地图,我正在使用Polyline在地图上绘制线条。但结果却不是连续的。如果街道是弯曲的,那么线就会被打破。

example of broken line

我的代码:

    Polyline polyline = new Polyline();
    ArrayList<GeoPoint> geoPoints = new ArrayList<>();
    // add Gepoint to array here.
    polyline.setPoints(geoPoints);
    polyline.setWidth(mywidth);
    polyline.setColor(mycolor);
    map.getOverlayManager().add(polyline);
    map.invalidate();

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

尝试修改折线的Paint

Paint有两个属性:笔触连接和笔触帽。笔画连接控制路径段的连接方式,笔画帽控制整个路径的结束方式。

鉴于可以假设此代码可以解决问题:

polyline.getPaint().setStrokeJoin(Paint.Join.ROUND)

但它不会。 Osmdroiod库显然做了一些整洁的性能优化,并没有将整个Polyline渲染为一条路径。相反,它会在不同的细分中呈现它。通过设置行程上限可以改善视觉外观。

polyline.getPaint().setStrokeCap(Cap.Join.ROUND)