Android Google Map Marker 未正确重新定位

Posted

技术标签:

【中文标题】Android Google Map Marker 未正确重新定位【英文标题】:Android Google Map Marker not repositioning correctly 【发布时间】:2020-03-07 17:56:53 【问题描述】:

我正在一个带有两个标记的 android 应用程序中显示 Google 地图。在 onMapReady 方法上,一切正常,地图渲染,标记与相关位图和信息一起出现。

我什至使用带有 LatLngBoundsCameraUpdateFactory() 函数实现了缩放边界。同样,到目前为止,一切正常且符合预期。这是sn-p:

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 重新定位标记时,标记位置发生了变化但引脚保持在原来的位置,信息窗口仍然有效。我知道标记位置已更新,因为下一次调用 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 号。

【问题讨论】:

别针是什么意思? 表示可以点击以显示信息窗口的标记的图标。 你能提供任何问题的屏幕截图 @AbuYousuf 我用截图扩展了我的答案。任何方向将不胜感激。谢谢。 我认为您正在重新初始化 myMapMarker 以便之前的标记保持不变 【参考方案1】:

答案一直盯着我看。

我一直在向地图添加 MarkerOptions 而不是 Marker。这就是为什么位置数据(标记选项)改变了,但标记位置本身没有改变。

问题解决了!

【讨论】:

以上是关于Android Google Map Marker 未正确重新定位的主要内容,如果未能解决你的问题,请参考以下文章

javascript Google Map:以编程方式单击Marker

在 Cluster iOS 之后,Google Map Marker userData 变为 nil

初识SFDC创建一个google map(添加了marker小图标)

how to add borders for a google map marker 谷歌地图 自己定义图钉

android 百度地图上marker点移动要怎么处理

当我一个一个地放下每个标记时,如何在 Google Map V3 Marker 上添加自定义动画?