ios - 适用于 iOS 的可调整大小的 GMSCircle GoogleMaps SDK

标签 ios swift google-maps google-maps-sdk-ios gmsmapview

有什么方法可以调整(缩小和扩大)GMSCircle 对象的大小吗? 我创建了 GMSCircle 并将其附加到我们的 map 中

var cirlce: GMSCircle!

let camera = GMSCameraPosition.cameraWithLatitude(-33.86, longitude: 151.20, zoom: 6)
mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)

cirlce = GMSCircle(position: camera.target, radius: 100000)
cirlce.fillColor = UIColor.redColor().colorWithAlphaComponent(0.5)
cirlce.map = mapView

我想让 circle 响应我的手势来调整大小并获取其圆的半径值。比如有网页版的here .

那么如何创建呢?任何帮助,将不胜感激。谢谢!

最佳答案

 @IBOutlet weak var googleMaps: GMSMapView!
//Slider object to zoom in out the GMSCricle
 @IBOutlet weak var sliderer: UISlider!
 var cirlce: GMSCircle!
 var zoom: Float = 14.0
 var circleSliderZooming: Double = 1000
 var circleCenter = CLLocationCoordinate2D()
 var locationManager = CLLocationManager()


override func viewDidLoad() {
super.viewDidLoad()

locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startMonitoringSignificantLocationChanges()

self.circleview(redius: 1000)

//Your map initiation code
let camera = GMSCameraPosition.camera(withLatitude: -7.9293122, longitude: 112.5879156, zoom: zoom)
self.googleMaps.camera = camera
self.googleMaps.delegate = self
self.googleMaps?.isMyLocationEnabled = true
self.googleMaps.settings.myLocationButton = true
self.googleMaps.settings.compassButton = true
self.googleMaps.settings.zoomGestures = true
}

func circleview(redius:Double) {
   circleCenter = CLLocationCoordinate2D(latitude: -7.9293122, longitude: 112.5879156)
   cirlce = GMSCircle(position: circleCenter, radius: redius)
   cirlce.fillColor = UIColor(red: 0, green: 0, blue: 0.3, alpha: 0.2)
   cirlce.strokeColor = .blue
   cirlce.strokeWidth = 2
   cirlce.map = googleMaps 
}

 func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
  cirlce.position = position.target
 }
 //This is the Slider function to zoom in and out by Slider on View Controller
 @IBAction func cricleZoom(_ sender: Any) {
  cirlce.radius = CLLocationDistance(sliderer.value)   
 }

关于ios - 适用于 iOS 的可调整大小的 GMSCircle GoogleMaps SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603311/

相关文章:

css - 谷歌地图全屏

ios - 如何从子类 UITableViewCell 调用 didSelectRowAtIndexPath

objective-c - NSArray 和 NIL 值。如何返回数组中非 NIL 值的数字 ("count"

javascript - 单击多边形时无法弹出信息气泡

ios - swift 如何等到值改变

swift - 如何将字段添加到 Realm 数据库的架构中?

ruby-on-rails - 如何在 Rails 模型中获取完整的 Assets 路径

java - Android如何像在iOS中一样将异步任务分组在一起

javascript - 触摸隐藏菜单适用于平板电脑,不适用于任何 iOS 设备

ios - 将数组数据从 ViewController 传递到 TableView