【问题标题】:Disable magnifying glass in GoogleMaps, Android在 GoogleMaps、Android 中禁用放大镜
【发布时间】:2019-04-08 07:17:14
【问题描述】:

我正在 Android 中开发一个应用程序,并使用 GoogleMaps 中的纬度和经度显示位置。

我已经按照以下代码实现了地图:https://gist.github.com/joshdholtz/4522551

当我实现这个时,我的手机屏幕如下所示:

我不知道地图左侧的放大镜是什么,我想将其移除。

我已禁用地图中的大部分 UIsetting。

map = googleMap;
    map.getUiSettings().setMyLocationButtonEnabled(false);
    map.getUiSettings().setMapToolbarEnabled(false);
    map.getUiSettings().setZoomControlsEnabled(false);
    map.getUiSettings().setAllGesturesEnabled(false);
    map.getUiSettings().setCompassEnabled(false);
    map.getUiSettings().setIndoorLevelPickerEnabled(false);
    map.getUiSettings().setZoomControlsEnabled(false);

当我点击放大镜时出现异常:

 Process: com.itcom202.weroom, PID: 29587
java.lang.NullPointerException: Place Fields must be set.
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:889)
    at com.google.android.libraries.places.internal.dt.onClick(Unknown Source:4)
    at android.view.View.performClick(View.java:6256)
    at android.view.View$PerformClick.run(View.java:24701)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6541)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

谁能告诉我放大镜应该如何工作以及如何禁用它?我想让用户只滚动和放大 GoogleMaps 片段。

这是谷歌地图片段xml:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.gms.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

【问题讨论】:

  • 这是一个缩放控件。使用 map.getUiSettings().setZoomControlsEnabled(false);
  • 我已将 ZoomControl 和 ZoomGesture 都更改为 false,但放大镜还在
  • 显示谷歌地图片段 xml 文件。您是否也在真机而不是模拟器中进行了测试?
  • 真机和模拟器都有放大镜
  • @Demi Dimitrova google places api 现在已弃用,现在您需要在点击 place api 时添加位置 api 的参数列表。按照这个迁移指南链接developers.google.com/places/android-sdk/client-migration

标签: android google-maps android-fragments google-api


【解决方案1】:

您可以从 onMapReady(GoogleMap googleMap)

调用此方法
googleMap.getUiSettings().setZoomGesturesEnabled(false);

继续编码:)

【讨论】:

  • 不幸的是,它没有改变任何东西
  • 您需要使用 GoogleMap 对象调用方法
猜你喜欢
  • 2012-05-25
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2015-11-04
  • 2011-02-04
  • 1970-01-01
相关资源
最近更新 更多