ios - 自 pod 更新以来,iOS 地图左上角的 GoogleMaps 相机目标
问题描述
我有一个应用程序,用于在 GoogleMap 上放置图钉,然后将这些点保存到 Firebase 数据库,然后用作另一个应用程序中最终用户的参考。
我最近将应用程序中的 pod 更新为Using GoogleMaps (3.3.0)
. 该地图以前工作正常,但现在当我转到地图时,它从我认为的纬度/经度 0,0 开始。一旦我与地图交互(比如拖动它),它就会弹出到我指定它开始的任何目标。此外,当我放下我指定要放在 上的别针时camera.target
,它曾经按预期落到中心。标记现在落在地图的左上角。我以前使用的代码运行良好,并且在构建或运行时没有错误。看来 camera.target 似乎是
我在这里看到了对它的“短暂”引用:https ://github.com/flutter/flutter/issues/24806
在这里: 左上角的谷歌地图中心
但在这两种情况下,情况似乎都不完全相同。
编辑:将手机旋转到横向和向后似乎可以正确重置所有内容,这使得它看起来像是一个视图问题,而不是地图问题或加载时间问题,尽管当地图从 0,0 开始时,它更适合加载时间问题。
如果这是 pod 的错误,我假设我会在整个堆栈中找到它,但我很难看出这是我的代码的问题,因为它工作得很好,而且我没有看到任何变化在 SDK 的演练中暗示我的代码现在存在某种缺陷。
加载使用 IB override func viewDidLoad() { super.viewDidLoad() 创建的 mapView
let ud = UserDefaults.standard
let startingX = ud.double(forKey: "startingX")
let startingY = ud.double(forKey: "startingY")
let camera = GMSCameraPosition.camera(withLatitude: startingX, longitude: startingY, zoom: 18.0)
googleMapView.camera = camera
self.googleMapView.mapType = .hybrid
self.googleMapView.settings.scrollGestures = true
self.googleMapView.settings.rotateGestures = true
self.googleMapView.settings.consumesGesturesInView = true
}
当我创建标记时:
@IBAction func createPinButtonPressed(_ sender: Any) {
if self.CoordinateSelectorSegment.selectedSegmentIndex == 0
{
if backTeeMarker.map == nil {
backTeeMarker.position = self.googleMapView.camera.target
backTeeMarker.title = "back tee"
backTeeMarker.map = googleMapView
backTeeMarker.isDraggable = true
backTeeMarker.icon = GMSMarker.markerImage(with: .red)
}
}
...
}
解决方案
我发现我可以通过将地图创建添加到 ViewWillAppear 来解决这个问题,而不是将它放在 ViewDidLoad 中。
override func viewWillAppear(_ animated: Bool) {
let ud = UserDefaults.standard
let startingX = ud.double(forKey: "startingX")
let startingY = ud.double(forKey: "startingY")
let camera = GMSCameraPosition.camera(withLatitude: startingX, longitude: startingY, zoom: 18.0)
googleMapView.camera = camera
self.googleMapView.mapType = .hybrid
self.googleMapView.settings.scrollGestures = true
self.googleMapView.settings.rotateGestures = true
self.googleMapView.settings.consumesGesturesInView = true
}
推荐阅读
- java - 尝试在 Java 中搜索 JSON
- python - 导入 Pygame,ModuleNotFoundError: No module named 'pygame.base'
- c++ - 我如何创建一个函数(),其中一个参数是映射
- artificial-intelligence - K-means 如何确定特定纬度和经度附近的大多数位置
- java - Java 泛型有界通配符
- firebase - Firebase + Flutter + Web 没有数据
- javascript - 使用 fetch 和变量
- android - 在http拦截器中调用请求导致问题
- r - 添加行以对R中数据集中的每一列求和
- javascript - 如何在 Google Docs 中创建宏