如何在swift中检测谷歌地图的摄像头位置

时间:2015-02-03 13:26:47

标签: ios google-maps swift

我在搜索了idleAtCameraPosition和didChangeCameraPosition之后知道了这个方法在地图移动时被调用。 我如何为swift编写这个方法?我已将委托设置为CLLocationManagerDelegate和GMSMapViewDelegate,但仍未调用此方法。我写的方法如下:

func mapView(mapView: GMSMapView!, didChangeCameraPosition position: GMSCameraPosition!) {
                print(position)
}

func mapView(mapView:GMSMapView!,idleAtCameraPosition position:GMSCameraPosition!)
{
    print(position)

}

但是我的方法没有被调用。 另外,我想自定义信息窗口,就像在这里完成一样:Custom Info Window for Google Maps。但是无法在swift中找到如何做同样的方法。我很快就没有得到这个。

2 个答案:

答案 0 :(得分:6)

可能为时已晚,但您必须使用GMSMapViewDelegate扩展该类。例如:

class NearMeViewController: CLLocationManagerDelegate, GMSMapViewDelegate 

然后,Ztan如何说,你必须用你的地图委派地图:

self.mapView.delegate = self

这样,每次相机的位置发生变化时,方法didChangeCameraPosition都会响应。

希望它有所帮助。

答案 1 :(得分:3)

您需要在班级顶部导入GMSMapViewDelegate

将self.mapView.delegate = self放在viewDidLoad()

然后你可以使用这个方法

func mapView(mapView: GMSMapView, idleAtCameraPosition position: GMSCameraPosition) {

        // You can use the position.target for get the current camera position

}