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 位置本身没有变化。
问题已解决!
我在 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 位置本身没有变化。
问题已解决!