在 Android 中更改 Maps V2 的地图标记的 z 索引(z 顺序)

2024-02-22

我的地图上显示了几个标记,这些标记要么彼此靠近,要么甚至彼此重叠。我需要一个特定的标记始终位于顶部。无论我首先还是最后将标记添加到地图中,它通常最终会被放置在某些标记后面。由于某种神秘的原因,谷歌地图确定了这一点。它需要与 Android V2 版 Google 地图配合使用。


2016 年 6 月 27 日发布的 Android Maps API v2 v9.2.0 现在支持 z 索引 - 请参阅以下位置的公告https://developers.google.com/maps/documentation/android-api/releases#june_27_2016 https://developers.google.com/maps/documentation/android-api/releases#june_27_2016.

因此,请确保您的地图/播放服务版本设置为 v9.2.0 或更高版本build.gradle:

compile 'com.google.android.gms:play-services-maps:9.2.0'

z-index 文档如下(来自https://developers.google.com/maps/documentation/android-api/marker#marker_z-index https://developers.google.com/maps/documentation/android-api/marker#marker_z-index):

z 索引指定该标记相对于地图上其他标记的堆叠顺序。具有高 z 索引的标记绘制在具有较低 z 索引的标记之上。默认 z 索引值为 0。

标记始终绘制在图块层和其他非标记覆盖层(地面覆盖层、折线、多边形和其他形状)上方,无论其他覆盖层的 z 索引如何。与其他叠加层相比,标记实际上被视为位于单独的 z 索引组中。

您可以在将标记添加到地图时设置索引:

map.addMarker(new MarkerOptions()
    .position(new LatLng(10, 10))
    .title("Marker z1")
    .zIndex(1.0f));

...或使用Marker.setZIndex()创建标记后。

关于 z-index 对点击事件的影响的更多文档如下(来自https://developers.google.com/maps/documentation/android-api/marker#marker_click_events https://developers.google.com/maps/documentation/android-api/marker#marker_click_events):

  • 当用户单击一组标记时,将触发具有最高 z-index 的标记的单击事件。
  • 每次点击最多触发一个事件。换句话说,点击不会向下传递到具有较低 z-index 值的标记或其他叠加层。
  • 单击一组标记会导致后续单击在该组中循环,依次选择每个标记。循环的顺序首先优先考虑 z-index,然后是与点击点的接近度。
  • 如果用户在簇附近单击,API 会重新计算簇并重置单击周期的状态,以便从头开始。
  • 在重新开始循环之前,单击事件会通过标记簇落到其他形状和覆盖层。
  • 与其他叠加层或形状(折线、多边形、圆形和/或地面叠加层)相比,标记实际上被视为位于单独的 z 索引组中,而不管其他叠加层的 z 索引如何。如果多个标记、叠加层或形状相互叠加,则单击事件将首先在标记簇中循环,然后根据其 z-index 值触发其他可单击叠加层或形状。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中更改 Maps V2 的地图标记的 z 索引(z 顺序) 的相关文章

  • 致命异常:Google 地图 V2 中的 GLThread、StackOverflowError

    我正在实施 Google 地图 V2 并利用从外部 GPX 文件接收的交付路线 设备路径 设备当前位置和交付点位置 问题是它大多数时候都有效 我收到的错误 当它不起作用时 是下一个 03 16 20 48 37 811 I dalvikvm
  • 从 admob 独立 SDK 切换到 Google Play 服务 SDK 时,apk 大小会膨胀

    使用 Admob SDK 我的 apk 大小为 230Kb 当用 google play services SDK 替换 Admob SDK 时 它是 1 5MB 膨胀了 6 倍以上 我想完整的 Google Play 服务客户端 SDK
  • ImageView Android 内存

    我原来的后续question https stackoverflow com questions 5339883 android app ram usage 有没有一种方法可以在 Android 应用程序中使用 ImageViews 而不使
  • 读取 Android 4.2 中的 APN?

    我有个问题阅读 APN在安卓v4 2中 是读 不是写APNS 它抛出一个安全异常 没有写入 APN 设置的权限 用户 10068 和当前用户都没有权限 进程有 android permission WRITE APN SETTINGS 相同
  • 收到“提供的 API 密钥已过期”。使用 Places API 时出错

    我已经从 Google 控制台为 Places API 密钥生成了服务器密钥 但每当我访问该服务时 我都会收到 提供的 API 密钥已过期 错误 我已尝试重新生成密钥 但仍然出现相同的错误 我遇到了同样的问题 但终于解决了 Google 地
  • android studio更新到3.0后任务执行失败

    当我更新 Android Studio 3 0 时 出现错误 unable to merge with dex 然后我添加了mutiDexEnabled true并且还添加了com android support multidex 1 0
  • 垂直翻转 Android Canvas

    有没有一种简单的方法可以在 Android 中翻转画布 我似乎找不到任何可以让我垂直翻转它的东西 这样 y 轴上的零就是手机屏幕的底部而不是顶部 如果解决方案不是特别快也没关系 因为我没有对画布进行任何计算密集的操作 提前致谢 Try ca
  • Android:让用户从图库中选择图像或视频

    是否可以以这样的方式启动图库 以便同时显示图片和视频 Thanks 从图库中选择音频文件 Use MediaStore Audio Media EXTERNAL CONTENT URI Intent intent new Intent In
  • 如何修复运行 Android 模拟器时出现 GPU Driver Issue 错误

    我的 Android 模拟器几周前运行良好 但现在出现错误 当我运行代码时 GPU 驱动程序问题错误对话框与模拟器一起弹出 当我单击 确定 时 Android 模拟器不会按预期运行应用程序 错误如下 Your GPU driver info
  • Android Studio 停留在构建 gradle 项目信息上

    我正在使用 Android Studio 2 3 每当我尝试创建一个新项目或打开某个项目时 它都会卡在此时 正在构建 Gradle 项目信息 请建议我一些解决方案 它可能正在下载 Gradle zip 文件 e g Users user g
  • Android TabLayout:均匀分布

    我正在查看 Google IO 中使用的 Google 类 称为 SlidingTabLayout 在该类中 有一个名为 setDistributeEvenly 的方法 它允许所有这些选项卡在屏幕上均匀分布 每个选项卡具有相同的大小 中心对
  • Android/三星 Galaxy S 模拟器

    有没有办法在三星银河模拟器或类似的东西上尝试我的项目 我的项目在 HTC Legend 上运行 但在该设备上崩溃了 我如何在 android eclipse 上设置三星 Galaxy s 我设置了 W800 854 2 2 AVD 但它可以
  • Eclipse Android 模拟器 - 键盘不工作

    我刚刚更新到最新的 SDK 版本 16 使用最新版本的 API 16 创建了新版本的 AVD 并且我的硬件键盘在模拟器上不再工作 甚至我的其他 avd 使用旧版本的 sdk 任何想法如何解决这一问题 您的 AVD 的 键盘支持 硬件属性是否
  • (angularjs-google-maps) ng-click 内部标记

    这个问题是关于angularjs google maps https github com allenhwkim angularjs google maps https github com allenhwkim angularjs goo
  • 测试应用内结算:“发布者无法购买此商品”

    我的应用程序似乎已准备好在我的设备上进行应用内购买程序的 现实生活 测试 但是 我在 Play 商店中收到 发布商无法购买此商品 的错误消息 现在 我应该如何测试这个 我不想通过仅用于测试的虚拟帐户重新安装手机来丢失手机的配置 在开发者控制
  • 使用Android Camera API,拍摄照片的方向始终未定义

    我使用相机API 拍摄的照片总是旋转90度 我想旋转它 所以首先我想知道图片的方向 这一点我被卡住了 我总是以两种方式得到未定义的方向 这是代码 Override public void onPictureTaken byte data C
  • 如何为部分 Android 活动创建通用代码?

    我的申请中有 14 项活动 这 9 个活动中包含自定义标题栏和选项卡窗格 所以在这里我需要在一个地方编写这个通用代码 而不是在每个包含自定义标题栏和选项卡窗格代码的活动中编写冗余代码 即布局及其活动特定代码 有哪些可能的方法可以做到这一点
  • 如何在 Android 应用程序退出之前进行一些清理?

    当我的 Android 应用程序终止时 是否有某种 onTerminate 方法可以进行一些清理 我想清除一些 SharedPreferences 我有一个活动 它保持几个数字的运行平均值 并将其存储在 SharedPreference 中
  • 在自定义对话框中设置文本视图

    我创建了一个自定义对话框 但无法将文本设置到 java 对话框布局中的文本视图中 并且我的程序崩溃了 我的错误是什么 public class Total CBC extends Activity Override protected vo
  • Android 使用不同的签名密钥更新市场应用程序

    开发人员使用他的个人密钥库签署了应用程序 但它应该是公司的密钥库 现在是否可以使用公司的密钥库更新市场中的应用程序 并且仍然可以简化对用户的更新 这有什么后果吗 不可以 您必须将该应用程序作为新应用程序发布到市场上 这次是用公司的key签名

随机推荐