gpt4 book ai didi

ios - 基于 Radius Google Maps iOS SDK 更改相机缩放

转载 作者:技术小花猫 更新时间:2023-10-29 11:09:31 26 4
gpt4 key购买 nike

我正在开发一个应用程序,它根据您当前位置周围的半径显示某些标记。半径在100-5000米之间。我使用 UISlider 更改半径并重新绘制 GMSCircle

我的问题是我想根据 slider 值更新相机变焦,但我不知道按哪个比例划分。

这就是我在初始缩放值为 15 的 viewDidLoad 方法中创建相机的方式:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:locationManager.location.coordinate.latitude longitude:locationManager.location.coordinate.longitude  zoom:15];

这是我正在处理的内容的屏幕截图。

enter image description here

有谁知道我应该使用什么比例来相应地移动缩放?

非常感谢!

花岗岩

最佳答案

这是获取 GMSCircle 边界的更简单的解决方案。它不依赖于 MapKit,避免了改变相机位置的两个调用(moveCameraanimateToLocation)

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 / .pi)
let lat = position.latitude + dx
let lon = position.longitude + dx / cos(position.latitude * .pi / 180)
return CLLocationCoordinate2D(latitude: lat, longitude: lon)
}

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

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

let update = GMSCameraUpdate.fit(myCircle.bounds())
myMap.animate(with: update)

其中 myCirclemyMap 被实际的圆和 map 替换。

关于ios - 基于 Radius Google Maps iOS SDK 更改相机缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26115047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com