谷歌地图Android API v2中的自定义图形(曲线多段线)

谷歌地图Android API v2中的自定义图形(曲线多段线),android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我有一个MapView(由Google Maps Android API v2提供),我想要实现的应该足够简单,就是画一条弯曲的多段线 具体地说,我有一个LatLngs数组,我不想让它们以锐角连接,我想让路线很好地圆角,这样通过点的线沿着曲线而不是直线和锐角 现在,在旧的Google Maps API中,通过创建自定义的覆盖,覆盖绘制(),然后手动绘制到地图上(例如,使用自定义的绘制和路径,以及所需的设置),可以实现这一点 不幸的是,在v2中,Google似乎删除了Overlay类,转而使用更高

我有一个
MapView
(由Google Maps Android API v2提供),我想要实现的应该足够简单,就是画一条弯曲的
多段线

具体地说,我有一个
LatLng
s数组,我不想让它们以锐角连接,我想让路线很好地圆角,这样通过点的线沿着曲线而不是直线和锐角

现在,在旧的Google Maps API中,通过创建自定义的
覆盖
,覆盖
绘制()
,然后手动绘制到地图上(例如,使用自定义的
绘制
路径
,以及所需的设置),可以实现这一点

不幸的是,在v2中,Google似乎删除了
Overlay
类,转而使用更高级别的抽象,不再提供对
draw()
方法的访问<代码>多段线选项
相当基本,不提供任何绘制曲线的选项

有没有办法覆盖
draw()
或使用Google Maps API v2的其他功能来绘制弯曲的
多段线

已经有几个问题涉及到这个问题,但目前还没有令人满意的答案:


我相信一定有办法在Google Maps v2上进行自定义绘制,同时创建自定义覆盖
视图
,一旦坐标与地图同步是一个选项,在处理缩放和平移地图时会很快变得极其复杂,因此,如果可能的话,这是我想要避免的事情。

我开发了一个抽象类CanvasTileProvider(),您只需重写onDraw方法,就可以像往常一样在画布中进行绘制。另外,一个TileProjection对象被传递到onDraw方法中,它可以帮助您在LatLng和画布上的点之间进行来回计算。 唯一的限制是,平铺通常只加载一次。因此,这种绘制地图的方法适用于不经常变化的形状。因此,如果LatLng对象阵列不断变化(例如,因为它显示设备的当前移动),则可能不适用

您可以在的答案中找到CanvasTileProvider类