热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何实现随地图旋转的MKAnnotationViews

如何解决《如何实现随地图旋转的MKAnnotationViews》经验,为你挑选了1个好方法。

我有一个带有一些注释的应用程序,直到现在它们只是符合默认行为的符号(例如数字和字母).它们的方向与设备的方向固定,这是合适的.

然而,现在我需要一些需要在实际地图的方向上修复的注释,因此如果地图旋转,则注释符号需要随之旋转(例如,指示河流的箭头).

我不希望它们像地图一样使用地图缩放,但我确实希望它们随地图一起旋转.

我需要一个解决方案,主要用于用户用手指手动旋转地图时,以及由于跟踪时使用航向模式旋转地图.

在谷歌地图上(至少在Android上)这很简单,只需一个简单的MarkerOptions.flat(true)

我希望ios不会太困难,我希望.

提前致谢!



1> Logan..:

这是我用于类似的东西.

- (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等.

不幸的是,当用户旋转地图时,此解决方案不会旋转,但它会在之后进行自我纠正,以确保其具有正确的标题.我将一些内容包装affineTransform到一个动画块中,使其看起来不错.

希望这可以帮助,或者可能帮助您指出正确的方向.


推荐阅读
author-avatar
静乐思
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有