为Google Maps iOS应用缩放级别条件



我这里有一个地图:

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

可以使用GMSMapViewdidChangeCameraPosition委托方法

首先,你需要在你的类 中扩展你的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

最新更新