Я работаю над приложением «Такси», где я хочу представить и показать три маркера, но всегда положение камеры всегда в верхнем левом углу, мне нужно прокручивать карту, чтобы увидеть маркеры. Я уже пробовал эти вещи.
- Поместите мой код в viewwillappear & viewdidappear и удалите его из viewdidload.
- Поместите весь мой код в DispatchQueue через 2 секунды
- Использовать анимацию и увеличить / уменьшить время.
Пример кода был прикреплен только для того, чтобы показать один маркер, который отлично работает, когда контроллер представления помещается в стек навигации.
func testCode() {
mapView.layoutIfNeeded()
DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
let camera = GMSCameraPosition(latitude: 31.326137, longitude: 75.575520, zoom: 10)
self.pickupMarker = GMSMarker()
self.addMarkerOnMap(lat: "31.326137", long: "75.575520", img: #imageLiteral(resourceName: "drop-icon"), mapVieww: self.mapView,marker: &(self.pickupMarker), title: "Drop at", snippet:"Hello")
CATransaction.begin()
CATransaction.setValue(Int(1), forKey: kCATransactionAnimationDuration)
self.mapView.animate(to: camera)
CATransaction.commit()
})
}
![Accurate Location when pushed](https://i.stack.imgur.com/XXihx.png)
![InAcurate camera position when presented](https://i.stack.imgur.com/Yxhpu.png)