如何在 MapBox(Z-Order)上的地图标记后面设置当前位置指示器?

Posted

技术标签:

【中文标题】如何在 MapBox(Z-Order)上的地图标记后面设置当前位置指示器?【英文标题】:How to set current location indicator behind map markers on MapBox (Z-Order)? 【发布时间】:2017-05-04 18:17:18 【问题描述】:

是否可以将 MyLocation 背景可绘制对象放在 MapBox Xamarin android 上的标记后面?

当前 gps 位置指示器默认放置在所有标记上方。有什么办法可以配置吗?

我也尝试将当前位置设置为标记,但看起来 z 顺序是基于屏幕位置的,我找不到配置标记 z 顺序的方法。

【问题讨论】:

我也想知道如何使用 Android SDK 做到这一点。 【参考方案1】:

更新:错过了这个问题是关于 MapBox 的。以下仅适用于 Google 地图 API。我建议查看 MapBox 的文档,看看它们是否允许访问底层标记的 ZIndex 属性。

要设置标记的 Z 顺序(其中 mapGoogleMap 实例):

 var markerFront = new MarkerOptions();
 markerFront.InvokeZIndex(1f); // Set the z-order
 markerFront.SetTitle("In Front");
 markerFront.SetPosition(new LatLng(lat, lon));

 var markerBack = new MarkerOptions();
 markerBack.InvokeZIndex(2f); // set the z-order
 markerBack.SetTitle("behind");
 markerBack.SetPosition(new LatLng(lat-0.0001, lon-0.0001));

 map.AddMarker(markerFront);
 map.AddMarker(markerBack);

markerFront 将高于markerBack。但是,在这些设置完成后,如果您单击markerBack,它们将被操作系统更改,它将被移到前面。我不确定在创建标记后是否可以更改 z 顺序,因此如果您需要在单击标记时保留 z 顺序,我认为您必须删除并重新添加带有 z 的标记- 你想要的顺序。

我找不到改变当前位置标记的 z 顺序的方法(经过非常简短的搜索)。就个人而言,我认为无论如何您总是希望当前位置指示器位于前面。

【讨论】:

Shoot,对 MapBox 不熟悉,所以上面的内容可能没有实际意义,但这就是你将如何使用 Xamarin.Android 来完成它。 GooglePlayServices.Maps SDK。 这个问题和mapbox有关。

以上是关于如何在 MapBox(Z-Order)上的地图标记后面设置当前位置指示器?的主要内容,如果未能解决你的问题,请参考以下文章

Mapbox GL JS:如果单击标记,则忽略地图单击事件

单击 Mapbox 中的地图标记后更改其他 HTML 元素?

如何在 Mapbox iOS 中的特定坐标上放置自定义注释的底部

通过 mapbox gl js 向 mapbox 中的地图添加一些基本标记

在 MapBox 上隐藏和显示标记

从 mapbox 地图中删除所有标记或重新初始化地图