swift - 如何在swift 5中的谷歌地图中设置标记标题文本大小
问题描述
我在 swift 5 中使用了谷歌地图。我使用了带有标记标题的图标。但是我的标记标题覆盖了图标。标记图标没有清楚地显示。我的图标每 10 秒移动一次。我还对标记使用了旋转。当向左或向右旋转时,标记标题会覆盖我的图标。这是屏幕截图 这里是下面的代码..
let marker = GMSMarker()
marker.title = "D M Th 13-6573"
marker.icon = UIImage(named: "item_car_slow")
marker.rotation = CLLocationDegrees(heading)
marker.map = self.googleMap
self.googleMap.selectedMarker = marker
请帮我
解决方案
好吧,在对问题进行了更多搜索之后,我可以肯定地说,当应用旋转然后infoWindowAnchor
不正确时就会发生这种情况。
所以你在这里要做的是infoWindowAnchor
根据角度计算如下
let marker = GMSMarker()
marker.title = "D M Th 13-6573"
marker.icon = UIImage(named: "item_car_slow")
marker.rotation = CLLocationDegrees(heading)
marker.map = self.googleMap
marker.infoWindowAnchor = getInfoWindowAnchorFor(heading)
self.googleMap.selectedMarker = marker
以下函数将计算正确的锚点。
func getInfoWindowAnchorFor(_ angle: Double) -> CGPoint {
let x = sin(-angle * Double.pi / 180) * 0.5 + 0.5
let y = -(cos(-angle * Double.pi / 180) * 0.5 - 0.5)
return CGPoint(x: x, y: y)
}
请注意,上述逻辑取自this answer this answer on an old question for android SDK。有关逻辑和计算的详细信息,请访问原始答案。
这应该可以解决您的问题。
快乐编码
推荐阅读
- jquery - 我客户网站的搜索建议功能在 Firefox 中不起作用,但在 Chrome 和 Safari 中起作用
- dart - 我正在尝试使用 TextField 的控制器,但我收到错误“NoSuchMethodError:方法'调用'被调用为空”
- python - Pandas:将函数应用于每个 float64,但获得不可散列的类型
- jquery - 带有树级别的引导折叠树视图(使用 CSS)
- laravel - 如何在 db-select 中执行自动增量?(拉拉维尔)
- javascript - waitForKeyElement.js 但有最长等待时间
- protractor - 与 browser.sleep() 相比,ignore.synchronization=true/browser.waitforAngularEnabled(true) 需要很长时间
- php - 使用存储在来自android的arrayList中的参数在php中循环执行mysql查询
- angular - 如何使用 Angular 6 减小 bundle main.js 文件的大小
- c++ - 如何使用路径字符串正确填充/导航此树结构?