Android Google 地图标记未正确重新定位

Android Google Map Marker not repositioning correctly

我在 Android 应用程序中显示 Google 地图,其中有两个标记。在 onMapReady 方法上一切正常,地图呈现并且标记与相关位图和信息一起出现。

我什至使用 CameraUpdateFactory() 函数和 LatLngBounds 实现了缩放边界。同样,到目前为止,一切正常,符合预期。这是片段:

override fun onMapReady(googleMap: GoogleMap?) {
  myGoogleMap = googleMap   

  // myMapMarker is a global variable of type MarkerOptions
  // the options are set only once here and never changed elsewhere in the code
  myMapMarker = MarkerOptions()
                .position(LatLng(34.1478, 118.1445))
                .title("My Location")
                .snippet("Description of my location...")
                .icon(BitmapDescriptorFactory.fromBitmap(pinBitmap))

  // myMapMarker is added to the map only once here and
  // never removed or added again elsewhere in the code
  myGoogleMap?.addMarker(myMapMarker)
}

但是,当我尝试使用标记 setPosition 函数 重新定位标记时(在 Kotlin 中只是 position,标记位置已更改,但引脚保留在其原始位置,信息-window 仍然有效。我知道标记位置已更新,因为下一次调用 zoom to bounds 函数会放大到新边界。

// only one attempt is made to move myMapMarker here 
// the marker location is successfully changed 
// >>> evidenced by println(myMapMarker?.location)
// the marker icon/pin is not re-positioned
myMapMarker?.position(LatLng(mapData.latitude, mapData.longitude))

我读到标记应该重新定位,而不是删除和再次添加。那么,是否缺少让标记正确重新定位的步骤?

我也尝试将 Google Play Maps API 从 17 降级到 16,但仍然得到相同的结果。

TIA。


编辑:添加截图来说明问题

原始标记位于 452 Ford Place (红色标记)。执行 setPosition() 后,红色标记应该出现在蓝色标记所在的位置,但实际上没有。它住在 452 Ford Place。

答案一直盯着我看。

我一直在向地图添加 MarkerOptions 而不是 Marker。这就是为什么位置数据 (marker options) 发生了变化,但 marker 位置本身没有变化。

问题已解决!