首页 > 解决方案 > 仅在设备屏幕的特定部分显示谷歌地图折线

问题描述

大家好,我正在创建一个骑行应用程序,我正在寻求一些帮助来解决我面临的以下问题。

所以,在灰色背景下方的图像上代表一个谷歌地图片段,在它上面有两个视图(黑色)我想知道是否可以只在红色区域的黑色视图之间显示一条折线和标记,并且有地图的其余部分也显示在背景中。

如果它有帮助,我已经设法使用以下方法获得了红框角落的 LatLng:

googleMap.getProjection().fromScreenLocation();

先感谢您!

示例图像

标签: javaandroidgoogle-maps

解决方案


对的,这是可能的。几种方式。例如,您的图形的红色区域可以View(例如自定义视图)具有透明背景,您可以在其上绘制多段线(您需要考虑地图视图上透明“红色”视图的位置以校正fromScreenLocation()/toScreenLocation()方法结果) . 此外,您可能还可以使用两个s 并同步其滚动和缩放,但恕我直言,最好的方法是基于(或)覆盖for -based(或for -based)方法MapView实现自定义视图组件,如或者回答MapVewMapFragmentonDraw()MapVewdispatchDraw()MapFragment

..
@Override
public void dispatchDraw(Canvas canvas) {
    super.dispatchDraw(canvas);
    canvas.save();
    drawPolylinesInRegion(canvas);
    canvas.restore();
}
...

drawPolylinesInRegion(canvas);方法中,您应该通过您提到的相反方法“手动”绘制折线和标记转换它们的坐标:toScreenLocation()并考虑到示例图形的“灰色区域”的大小。


推荐阅读