基于Radius Google Maps iOS SDK更改相机变焦

2024-02-15

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

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

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

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

这是我正在做的事情的屏幕截图。

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

多谢!

Granit


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

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)

where myCircle and myMap被实际的圆圈和地图取代。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Radius Google Maps iOS SDK更改相机变焦 的相关文章

随机推荐

  • 我可以用 AngularJS 更改 Accept-Language 请求标头吗

    有没有办法更改或编辑我发送到 API 的接受语言标头 javascript Jquery 或 Angular 有没有办法 我不想发送默认的 而是发送我的 Cookie 的 在 AngularJS 中 您可以使用以下方法设置通用标头 http
  • 如何访问 Gradle 使用的“java.home”?

    gradlew properties显示没有具有以下值的属性 JAVA HOME 并且以下发出错误 指示不存在此类属性 println org gradle java home println gradle java home printl
  • 在 Google Chrome 扩展中使用 jQuery.ajax

    我使用 jquery ajax 函数将数据从 google chrome 扩展发布到我的网络服务 代码如下 ajax type POST url serviceUrl data data success function msg if ty
  • 将季度/年份格式转换为日期

    我创建了一个函数 将季度年格式的向量强制转换为日期向量 quarter to date c Q1 13 Q2 14 1 2013 03 01 2014 06 01 这是我的函数的代码 quarter to date lt function
  • 用鼠标拖动滚动

    我正在尝试制作一个可滚动面板 但没有滚动条 并通过用鼠标垂直拖动来滚动 这是到目前为止有人帮助我做的 private void panel1 MouseEnter object sender EventArgs e panel1 AutoS
  • 哪个更快? ByVal 还是 ByRef?

    在 VB NET 中 使用方法参数速度更快 ByVal or ByRef 另外 哪个在运行时消耗更多资源 RAM 我通读了这个问题 https stackoverflow com questions 290189 best practice
  • 多对多 EF7

    Models public partial class Film public int FilmID get set public virtual ICollection
  • 单例模板作为 C++ 中的基类[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 根据C 单例设计模式 https stackoverflow com questions 1008019 c singleton design
  • 通过 Socket.io 更新 React 状态

    我的 React 组件使用来自 socket io 的数据作为状态 我不确定如何在更新数据时更新状态而不重新渲染整个组件 示例代码 var socket io var data components key name markup sock
  • nginx 将 POST 请求重定向到 GET 请求

    我有 Rails 4 1 应用程序运行puma网络服务器 我使用 nginx 作为代理服务器 几天前 一切都进展顺利 我更新了我的应用程序 突然有些POST请求开始重定向到相同的网址 但作为GET要求 我尝试回滚到以前的工作版本 但没有成功
  • 在 C# 中以编程方式编译打字稿?

    我正在尝试用 C 编写一个函数 该函数接受包含打字稿代码的字符串并返回包含 JavaScript 代码的字符串 有这方面的库函数吗 您可以使用Process要调用编译器 请指定 out file js到临时文件夹并读取编译文件的内容 我做了
  • 如何找到所有兄弟情谊字符串?

    我有一个字符串和另一个包含字符串列表的文本文件 当两个字符串按字母顺序排序后完全相同时 我们将它们称为 兄弟字符串 例如 abc 和 cba 会被排序为 abc 和 abc 所以原来两者是兄弟关系 但 abc 和 aaa 则不然 那么 有没
  • Windows 上 Python 3.1 的 SendKeys

    最新的 Python Sendkeys 模块适用于 Python 2 6 我无法自己升级它 因为它需要重新编译 C 模块 有谁知道将密钥发送到窗口的相当简单的替代方法 使用 win32ui FindWindow 我可以找到正确的窗口 然后使
  • C#/.NET 中方法的自动记录异常 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想要一些工具 最好是能够插入 VS 2008 2010 的工具 它将遍历我的方法并添加有关它们可能抛
  • cv::Mat 的序列化给出了奇怪的结果

    我目前正在尝试序列化和反序列化 openCV Mat 以便我可以使用 Boost 将帧从客户端发送到服务器 我遇到的问题是 当我反序列化图像时 它会给出不同颜色的重复重叠图像 我不知道为什么会发生这种情况 任何帮助将非常感激 很抱歉我无法发
  • jquery事件优先级

    我有两个函数挂在submit表单的事件 每个功能都位于不同的位置 并且一个功能可以影响另一个功能 如何强制这些函数之一以最低优先级挂钩 即最后执行 我能想到的有四种方法 您自己管理回调 并且只有一个事件处理程序以所需的顺序调用函数 在应该最
  • 多对多关系、复选框的 CRUD 视图

    我很难弄清楚我需要做什么才能让它发挥作用 我正在使用 EF 学习 ASP NET MVC CodeFirst 如果我创建一个模型 我可以简单地为该模型添加一个控制器 并添加脚手架来创建自动处理 CRUD 的视图 但现在我有两个模型 项目和类
  • 如何隐藏跟踪像素

    不幸的是 我有一个跟踪像素 导致页脚底部出现一个小白条 隐藏像素的最佳方法是什么 我正在考虑将它 和我的其他像素 放入position absolutediv 它正确隐藏了栏 但我不确定这是否会阻止像素在某些浏览器上工作 From 谷歌支持
  • MVC3如何在控制器的类中发布列表?

    我有一堂课 public class CarList public int quantity get set public List
  • 基于Radius Google Maps iOS SDK更改相机变焦

    我正在开发一个应用程序 它根据当前位置周围的半径显示某些标记 半径在100 5000米之间 我用一个改变半径UISlider并重新绘制GMSCircle 我的问题是我想根据滑块值更新相机变焦 但我不知道要按哪个比例划分 这就是我在中创建相机