gpt4 book ai didi

ios - 如何实现随 map 旋转的 MKAnnotationView

转载 作者:可可西里 更新时间:2023-11-01 05:33:55 24 4
gpt4 key购买 nike

我有一个带有一些注释的应用程序,到目前为止,它们只是在默认行为下看起来不错的符号(例如数字和字母)。它们的方向固定在适合设备的方向上。

但是现在我需要一些需要固定在实际 map 方向上的注释,因此如果 map 旋转,则注释符号需要随之旋转(例如指示河流流动的箭头)。

我不希望它们像叠加层一样随 map 缩放,但我确实希望它们随 map 旋转。

我需要一个解决方案,主要用于用户用手指手动旋转 map 时,以及由于使用航向模式进行跟踪而旋转时。

在谷歌地图上(至少在 android 上)这很容易用一个简单的 MarkerOptions.flat(true)

我相信在 ios 上不会太难,我希望。

提前致谢!

最佳答案

这是我用于类似的东西。

- (void)rotateAnnotationView:(MKAnnotationView *)annotationView toHeading:(double)heading
{
// Convert mapHeading to 360 degree scale.
CGFloat mapHeading = self.mapView.camera.heading;
if (mapHeading < 0) {
mapHeading = fabs(mapHeading);
} else if (mapHeading > 0) {
mapHeading = 360 - mapHeading;
}

CGFloat offsetHeading = (heading + mapHeading);
while (offsetHeading > 360.0) {
offsetHeading -= 360.0;
}

CGFloat headingInRadians = offsetHeading * M_PI / 180;
annotationView.layer.affineTransform = CGAffineTransformMakeRotation(headingInRadians);
}

然后,这在 regionDidChange 等中调用。

不幸的是,当用户旋转 map 时,此解决方案不会旋转,但它会在之后自行更正以确保它具有正确的航向。我将一些 affineTransform 包装到一个动画 block 中以使其看起来不错。

希望这能对您有所帮助,或者也许能帮助您指明正确的方向。

关于ios - 如何实现随 map 旋转的 MKAnnotationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27879618/

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