And*_*Dev 14 android google-maps google-maps-markers
我的地图上显示了几个标记,它们彼此靠近或者彼此靠近.我需要一个特定的标记始终在顶部.如果我将标记首先或最后添加到地图中并不重要,它通常最终被放置在一些标记后面.出于某种神秘的原因,谷歌地图决定了这一点.它需要使用Google Maps for Android V2.
Sea*_*eau 24
Android Maps API v2的2016年6月27日发布v9.2.0现在支持z-index - 请参阅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'
Run Code Online (Sandbox Code Playgroud)
z-index文档如下(来自https://developers.google.com/maps/documentation/android-api/marker#marker_z-index):
z-index指定此标记相对于地图上其他标记的堆叠顺序.具有高z指数的标记绘制在具有较低z指数的标记之上.默认的z-index值为0.
无论其他叠加的z-index如何,标记总是被绘制在图块层和其他非标记叠加(地面叠加,折线,多边形和其他形状)之上.与其他叠加相比,标记实际上被认为是在单独的z索引组中.
您可以在将标记添加到地图时设置索引:
map.addMarker(new MarkerOptions()
.position(new LatLng(10, 10))
.title("Marker z1")
.zIndex(1.0f));
Run Code Online (Sandbox Code Playgroud)
...或Marker.setZIndex()
在创建标记后使用.
有关z-index对点击事件影响的更多文档如下(来自https://developers.google.com/maps/documentation/android-api/marker#marker_click_events):
- 当用户单击标记群集时,将触发具有最高z-index的标记的click事件.
- 每次点击最多触发一个事件.换句话说,点击不会传递给具有较低z-index值的标记或其他叠加.
- 单击标记群集会导致后续单击在群集中循环,依次选择每个标记.循环的顺序首先优先于z-index,然后接近点击点.
- 如果用户在群集附近点击外,API会重新计算群集并重置点击周期的状态,以便从头开始.
- 在重新启动循环之前,单击事件会通过标记群集进入其他形状和叠加层.
- 无论其他叠加的z索引如何,与其他叠加或形状(折线,多边形,圆形和/或地面叠加)相比,标记实际上被认为是在单独的z索引组中.如果多个标记,叠加或形状重叠在一起,则单击事件首先循环通过标记簇,然后根据其z-index值触发其他可单击的叠加或形状.
找到了解决方案:
Marker.showInfoWindow();
这不是最佳的,因为它会导致信息窗口出现在标记上方,但它总比没有好.
不幸的是,Markers
Android 版 Google Map API V2 中没有 z 索引。他们处理自己的抽签顺序
归档时间: |
|
查看次数: |
12902 次 |
最近记录: |