上面有布局层的谷歌地图

     2023-05-07     94

关键词:

【中文标题】上面有布局层的谷歌地图【英文标题】:Google Map with Layout layer above it 【发布时间】:2018-09-04 11:00:18 【问题描述】:

我在谷歌地图上方添加了一个布局,我自己的布局具有透明背景。现在,当我添加它时,我无法在我的应用程序中移动谷歌地图,因为它上面有一个框架布局。我的要求是我希望我的谷歌地图能够像滑动缩放一样工作,即使我上面有 Framelayout 也是如此。

下面是示例代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_>


    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_
        android:layout_
        tools:context=".ui.googlemapactivity.GoogleMapMainActivity" />

    <FrameLayout
        android:id="@+id/frameTop"
        android:layout_above="@+id/llBottomButtom"
        android:layout_
        android:descendantFocusability="beforeDescendants"
        android:layout_/>

    <LinearLayout
        android:id="@+id/llBottomButtom"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
        android:weightSum="90">

        <Button
            android:id="@+id/btnOne"
            android:layout_
            android:layout_
            android:text="Route" />

        <Button
            android:id="@+id/btnTwo"
            android:layout_
            android:layout_
            android:text="Current" />

        <Button
            android:id="@+id/btnThree"
            android:layout_
            android:layout_
            android:text="Charge" />


    </LinearLayout>


</RelativeLayout>

这里支持地图片段不滑动移动什么的。有相同的解决方案吗?

【问题讨论】:

【参考方案1】:

试试这个:

问题是您尝试在 id 声明上方添加 android:layout_above="@+id/llBottomButtom" 行,将其添加到 LinearLayout 下方,以便对 FrameLayout 有用。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_>


<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_
    android:layout_
    tools:context=".ui.googlemapactivity.GoogleMapMainActivity" />


<LinearLayout
    android:id="@+id/llBottomButtom"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:gravity="center_horizontal"
    android:orientation="horizontal"
    android:weightSum="90">

    <Button
        android:id="@+id/btnOne"
        android:layout_
        android:layout_
        android:text="Route" />

    <Button
        android:id="@+id/btnTwo"
        android:layout_
        android:layout_
        android:text="Current" />

    <Button
        android:id="@+id/btnThree"
        android:layout_
        android:layout_
        android:text="Charge" />


</LinearLayout>

<FrameLayout
    android:id="@+id/frameTop"
    android:layout_above="@+id/llBottomButtom"
    android:layout_
    android:descendantFocusability="beforeDescendants"
    android:layout_/>

【讨论】:

一旦 Framelayout 将任何 Fragment 加载到其容器中,Map 就会停止工作。 你能解释一下为什么需要 frameTop FrameLayout 吗? 问题是我正在添加一个布局以在地图上显示一些额外的 UI 组件,因为我正在添加一个布局。 是因为你的FrameLayout覆盖了地图片段,我上面的代码试过了吗?正如你给 FrameLayout 的 match_parent 高度一样,试试 wrap_content。 我得到了答案,添加它。【参考方案2】:

所以我对谷歌地图做了一些文档阅读,发现地图提供了 cameraAnimation 方法,我们可以在其中自己添加滚动,所以我所做的是实现了 GestureDetector.OnGestureListener ,其中有两个方法我按照下面提供的方式使用

  override fun onFling(e1: MotionEvent?, e2: MotionEvent?, velocityX: Float, velocityY: Float): Boolean 
        googMaps?.animateCamera(CameraUpdateFactory.scrollBy(velocityX, velocityY))
        return true
    

    override fun onScroll(e1: MotionEvent?, e2: MotionEvent?, distanceX: Float, distanceY: Float): Boolean 
        googMaps?.animateCamera(CameraUpdateFactory.scrollBy(distanceX, distanceY))
        return true
    

这成功了,现在我可以在我的地图上方使用带有片段的自定义布局,它仍然可以滚动并且功能相同。

【讨论】:

从没有控件的谷歌地图打印地图

】从没有控件的谷歌地图打印地图【英文标题】:Printingmapfromgooglemapswithoutcontrols【发布时间】:2011-06-1200:36:34【问题描述】:我正在使用谷歌地图apiv2。当我去打印地图时,控件显示在打印输出上。如何设置GLargeMapControl和GMapType... 查看详情

Flutter 应用中的谷歌地图

】Flutter应用中的谷歌地图【英文标题】:Googlemapsinflutterapplications【发布时间】:2018-02-0716:18:42【问题描述】:嘿,我想问一下是否有办法在flutter应用程序中使用googlemapsapi。我想避免使用静态地图。如果有办法请告诉我。【问... 查看详情

使用文本地址的谷歌地图街景地图

】使用文本地址的谷歌地图街景地图【英文标题】:StreetViewMapwithGoogleMapsUsingTextAddress【发布时间】:2018-04-2113:56:20【问题描述】:我的wordpress单个帖子页面上有一个谷歌地图,它从2个自定义字段中获取地址。它工作正常,但现... 查看详情

由圆圈组成的谷歌地图多边形

】由圆圈组成的谷歌地图多边形【英文标题】:GoogleMapspolygoncomprisedofcircles【发布时间】:2021-09-1921:23:15【问题描述】:我有一个奇怪的错误,我绘制的所有多边形都是由圆圈组成的。当我放大或缩小时,圆的直径和数量会发生... 查看详情

如何在android的谷歌地图V2上添加谷歌素材图标“我的位置”?

...显示Google素材图标“我的位置”。但是,每当我尝试添加布局时,它都不会反映在输出中。 查看详情

如何计算适当的谷歌地图缩放级别

】如何计算适当的谷歌地图缩放级别【英文标题】:Howtocalculateappropriategooglemapszoomlevel【发布时间】:2012-04-1717:10:51【问题描述】:我有一个棘手的问题...我正在使用谷歌地图静态API创建带有标记的地图图像。考虑到我要显示的... 查看详情

访问无偏移的谷歌地图——工具篇

谷歌地图偏移问题由来已久,困扰了不少涉及GIS或地图相关的朋友。偏移的原因也无需详述,本文简单描述一下解决方法,即怎么才能访问到无偏移的地图呢?官方链接众所周知,谷歌地图因质量好、分辨率高、覆盖范围广、更... 查看详情

谷歌地理编码 API 不如使用地址的谷歌地图准确

】谷歌地理编码API不如使用地址的谷歌地图准确【英文标题】:googlegeocodingapinotasaccurateasgooglemapsusingaddress【发布时间】:2016-03-1313:28:15【问题描述】:我有很多例子,其中谷歌地图返回确切位置,而地理编码无法找到完全匹配... 查看详情

带有密钥的谷歌静态地图授权不起作用

】带有密钥的谷歌静态地图授权不起作用【英文标题】:GoogleStaticMapAuthorisationwithKeynotworking【发布时间】:2015-04-0514:37:30【问题描述】:我有以下处于ON状态的GoogleDeveloperConsoleAPI:Google地图嵌入API谷歌地图JavaScriptAPIv3静态地图API... 查看详情

在android的谷歌地图中绘制json数据

】在android的谷歌地图中绘制json数据【英文标题】:plottingjsondataingooglemapinandroid【发布时间】:2015-09-2306:11:28【问题描述】:我有显示谷歌地图当前位置的代码以及解析json数据的代码。我想知道我将在哪里合并以下代码以在地图... 查看详情

没有谷歌地图的谷歌反向地理编码api

】没有谷歌地图的谷歌反向地理编码api【英文标题】:googlereversegeocodingapiwithoutgooglemaps【发布时间】:2013-07-2902:45:50【问题描述】:我有geonames数据库,但我需要获取基于latitutde和longitude的邮政编码,geonames.org有这样的服务,但... 查看详情

两个纬度/经度点之间的谷歌地图距离计算?

】两个纬度/经度点之间的谷歌地图距离计算?【英文标题】:GoogleMapDistanceCalculationbetweenTwoLat/LngPoints?【发布时间】:2013-01-1617:38:30【问题描述】:最好的方法是什么(或)是否有谷歌的方法已经可以计算简单的StraightLine两点之... 查看详情

为啥 CSP 安全标头会阻止 Iphone 上的谷歌地图?

】为啥CSP安全标头会阻止Iphone上的谷歌地图?【英文标题】:WhyCSPsecurityheaderblocksgooglemapsonIphone?为什么CSP安全标头会阻止Iphone上的谷歌地图?【发布时间】:2020-12-1121:14:24【问题描述】:我有这个标题吗?标头(“内容安全策略... 查看详情

在android中的谷歌地图上绘制点

】在android中的谷歌地图上绘制点【英文标题】:drawpointsongooglemapsinandroid【发布时间】:2011-12-2610:46:31【问题描述】:我正在将Google地图与我的android应用程序集成。我能够在地图视图中完美地显示地图。现在我需要根据获取方向... 查看详情

不同外部链接的谷歌地图标记点击功能问题

】不同外部链接的谷歌地图标记点击功能问题【英文标题】:googlemapmarkerclickfunctionproblemfordifferentexternallinks【发布时间】:2020-02-0403:33:30【问题描述】:我正在为我的网站使用谷歌地图。单击地图的右侧菜单时,我想显示不同的... 查看详情

从 php 中的谷歌地图获取国家名称

】从php中的谷歌地图获取国家名称【英文标题】:Getcountrynamefromgooglemapsinphp【发布时间】:2018-02-2109:43:58【问题描述】:我有用户IP地址。我想要那个用户的国家名称。我不想在php中使用geoIp(plugin)所以有没有办法在没有JS支持的... 查看详情

如何处理隐藏 div 内的谷歌地图(更新图片)

】如何处理隐藏div内的谷歌地图(更新图片)【英文标题】:howtodealwithgooglemapinsideofahiddendiv(Updatedpicture)【发布时间】:2011-05-0303:10:10【问题描述】:我有一个页面,谷歌地图最初位于一个隐藏的div中。然后我在单击链接后显示d... 查看详情

如何使谷歌地图像安卓手机中的谷歌地图应用程序一样工作

】如何使谷歌地图像安卓手机中的谷歌地图应用程序一样工作【英文标题】:Howtomakethegooglemapworklikegooglemapapplicationinandroidphones【发布时间】:2014-07-0309:45:40【问题描述】:正如您在图片中看到的,我在屏幕左下角有放大缩小按... 查看详情