【问题标题】:Show google maps polyline only on specific part of device screen仅在设备屏幕的特定部分显示谷歌地图折线
【发布时间】:2021-10-19 14:29:32
【问题描述】:

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

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

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

googleMap.getProjection().fromScreenLocation();

提前谢谢你!

【问题讨论】:

    标签: java android google-maps


    【解决方案1】:

    是的,这是可能的。几种方式。例如,您的图形的红色区域可以是具有透明背景的View(例如自定义视图),您可以在其上绘制折线(您需要考虑地图视图上透明“红色”视图的位置,以便更正fromScreenLocation()/toScreenLocation() 方法结果)。此外,您可能还可以使用两个MapViews 并同步其滚动和缩放,但恕我直言,最好的方法是基于MapVew(或MapFragment)实现custom view component 覆盖onDraw() MapVew-based(或dispatchDraw() for MapFragment-based)方法,如thisthat 答案:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2015-12-03
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多