【问题标题】:Setting Maximum Zoom Level kGMSMaxZoomLevel for Google Maps for iOS SDK为 iOS SDK 的 Google Maps 设置最大缩放级别 kGMSMaxZoomLevel
【发布时间】:2013-03-26 12:58:11
【问题描述】:

我正在试用 iOS Google Maps SDK 并注意到在 GMSCameraPosition.h 头文件中引用了 kGMSMaxZoomLevel 来设置允许的最大缩放级别。我希望能够设置它,但是当在实现中为它定义一个值时,XCode 指出这样做时有重复的符号,所以不会编译。有人可以指出我使用这个新 SDK 设置最小和最大缩放级别的正确方向吗? 非常感谢

【问题讨论】:

    标签: google-maps-sdk-ios


    【解决方案1】:

    kGMSMaxZoomLevel是SDK支持的最大值,即创建GMSCameraPosition时可以设置的最大值。您无法更改其值,以使地图停止在不同的缩放级别。

    您也许可以尝试收听[mapView:didChangeCameraPosition:],然后如果相机位置比您想要的放大程度更大,请再次将其移回。我没有尝试过这个,所以我不确定它是否会起作用。它可能会有点卡顿 - 即用户将放大一点超过最大值,您将其设置回来,然后用户将再次放大一点,依此类推。

    【讨论】:

    • 那太好了,谢谢。它不是最好的 UI,但它确实可以快速恢复.. ` - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position { if(position.zoom>9) { GMSCameraPosition *camera = [ GMSCameraPosition cameraWithLatitude:position.targetAsCoordinate.latitude longitude:position.targetAsCoordinate.longitude zoom:9]; [self.mapView_setCamera:camera]; } }`
    【解决方案2】:

    我知道这是一篇旧帖子,但为了完整起见,我发布了这个。

    最新版本的 google maps SDK 功能 -setMinZoom:maxZoom: 应该可以满足您的目的。

    参考link here

    【讨论】:

    • 4 Swift 3 像这样:mapView.setMinZoom(6.0, maxZoom: 20).
    【解决方案3】:
    func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
    
        if position.zoom < 10 {
    
            let latitude = mapView.camera.target.latitude
            let longitude = mapView.camera.target.longitude
    
            let mapCamera = GMSCameraPosition.camera(withLatitude: latitude, longitude: longitude, zoom: 10)
            mapView.camera = mapCamera
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 2012-12-05
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多