【发布时间】:2015-11-28 13:12:53
【问题描述】:
我在 GMSMapView 上调用 animateWithCameraUpdate,希望它更改地图视图以显示新的 GMSCoordinateBounds,但它没有效果。
我的地图加载到 UICollectionViewReusableView 中以最初显示西欧:
@IBOutlet weak var mapView: GMSMapView!
var fetchedResultsController : NSFetchedResultsController!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
let camera = GMSCameraPosition.cameraWithLatitude(51.48, longitude: 0, zoom: 4)
mapView.camera = camera
}
然后我调用一个函数来查询我的所有位置并更新 GMSMapView 以显示我的所有位置:
func plotAll(){
let bounds = GMSCoordinateBounds.init()
for property in fetchedResultsController.fetchedObjects!
{
let capitalAsset : CapitalAsset = property as! CapitalAsset
let marker = GMSMarker.init()
marker.draggable = false
marker.snippet = capitalAsset.address
let location = CLLocationCoordinate2DMake(Double(capitalAsset.latitude!), Double(capitalAsset.longitude!))
marker.position = location
marker.map = mapView
// Update bounds to include marker
bounds.includingCoordinate(marker.position)
}
mapView.animateWithCameraUpdate(GMSCameraUpdate.fitBounds(bounds, withPadding: 50.0))
}
我的 plotAll 函数被成功调用并循环通过十几个全局位置,将这些位置添加到 GMSCoordinateBounds。
但是地图没有更新。当我调用 animateWithCameraUpdate 时,我希望地图视图会发生变化,但它没有效果。
更多信息,为了调试,我换了行
mapView.animateWithCameraUpdate(GMSCameraUpdate.fitBounds(bounds, withPadding: 50.0))
与:
let camera = GMSCameraPosition.cameraWithLatitude(51.48, longitude: 0, zoom: 10)
mapView.camera = camera
这确实更新了我的地图视图,因此调用我的 plotAll 函数没有问题,问题可能在于我使用 animateWithCameraUpdate。
【问题讨论】:
标签: swift google-maps gmsmapview