首页 > 解决方案 > 如何在谷歌地图上创建自己的自定义标记,如谷歌地图的默认标记

问题描述

我在地图上添加 2 个自定义标记并找到它们之间的路线。我正在从目标 API 获取路线,它工作正常。但问题是当这条路线绘制在地图上时,我的自定义标记位置和绘制的折线不是 100% 正确的。

我正在使用以下代码添加自定义标记:

MarkerOptions().position(startPos).title("Start Point") .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_pin_start)))

MarkerOptions().position(endPos).title("End Point") .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_pin_end))

但是当我使用默认标记时,一切都可以正常工作。

MarkerOptions().position(endPos).title("End Point") .icon(BitmapDescriptorFactory.defaultMarker())

当我添加自定义标记时,它们会像这样显示在地图上 从这张图片中可以看出,我的圆形标记没有固定到正确的位置

但实际上我想要这样

标签: androidgoogle-mapskotlingoogle-maps-markers

解决方案


我认为您需要在 MarkerOptions 类中使用此方法向您的标记添加一个锚点

该方法的定义

指定锚点位于标记图像中的特定点。

锚点指定图标图像中锚定到地球表面上标记位置的点。

例如,要将锚点设置在图标的中心,您需要执行以下操作:

markerOptions.anchor(0.2f, 0.2f);

根据您的需要调整此锚点,它将起作用。


推荐阅读