我这里有一个地图:
let camera = GMSCameraPosition.cameraWithLatitude(37.0902, longitude: -95.7129, zoom: 4.0)
let mapView = GMSMapView.mapWithFrame(CGRect.zero, camera: camera)
mapView.myLocationEnabled = true
view = mapView
mapView.setMinZoom(4.6, maxZoom: 8)
我想检测用户的缩放级别。如果缩放级别大于5,则添加标记。怎样才能做到呢?
下面是添加标记的代码:
let state_marker = GMSMarker()
state_marker.position = CLLocationCoordinate2D(latitude: -152.404419, longitude: 61.370716)
state_marker.title = "Test"
state_marker.snippet = "Hey, this is Test"
state_marker.map = mapView
可以使用GMSMapView
的didChangeCameraPosition
委托方法
GMSMapView
委托class MyViewController: GMSMapViewDelegate
然后你需要在声明mapView
之后分配你的委托let camera = GMSCameraPosition.cameraWithLatitude(37.0902, longitude: -95.7129, zoom: 4.0)
let mapView = GMSMapView.mapWithFrame(CGRect.zero, camera: camera)
mapView.myLocationEnabled = true
mapView.delegate = self
view = mapView
mapView.setMinZoom(4.6, maxZoom: 8)
您可以使用didChangeCameraPosition
委托方法
func mapView(mapView: GMSMapView!, didChangeCameraPosition position: GMSCameraPosition!) {
if(mapView.camera.zoom > 5)
//do your code here
}
}
您可以参考下面的链接,以更好地了解GMSMapView
的委托方法https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p