当前位置:  开发笔记 > 编程语言 > 正文

如何使用Google Maps SDK使GMSCircle的边界完全显示在地图上?

如何解决《如何使用GoogleMapsSDK使GMSCircle的边界完全显示在地图上?》经验,为你挑选了1个好方法。

我想完全显示GMSCircle在MapView上,但radius圆的动态变化。什么时候radius改变MapView将自动调整到地图上查看完整的圆圈,以显示所有标志。

Swift语言上,我找到了一个可能对我有帮助的解决方案,如下所示:基于Radius Google Maps iOS SDK更改相机缩放

但是我必须实现这一点,Objective-c并且Objective-c我们没有绑定属性GMSCircle

在此先感谢,请指导我。



1> sohan vanani..:

对于SWIFT 3

只需将此扩展添加到您的项目中:

import GoogleMaps
extension GMSCircle {
    func bounds () -> GMSCoordinateBounds {
        func locationMinMax(positive : Bool) -> CLLocationCoordinate2D {
            let sign:Double = positive ? 1 : -1
            let dx = sign * self.radius  / 6378000 * (180/M_PI)
            let lat = position.latitude + dx
            let lon = position.longitude + dx / cos(position.latitude * M_PI/180)
            return CLLocationCoordinate2D(latitude: lat, longitude: lon)
        }

        return GMSCoordinateBounds(coordinate: locationMinMax(positive: true),
                                   coordinate: locationMinMax(positive: false))
    }
}

将此文件添加到您的项目后,您要做的就是:

let update = GMSCameraUpdate.fit(self.cirlce.bounds())
self.mapView.animate(with: update)

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有