作者:静乐思 | 来源:互联网 | 2023-05-27 14:02
我有一个带有一些注释的应用程序,直到现在它们只是符合默认行为的符号(例如数字和字母).它们的方向与设备的方向固定,这是合适的.
然而,现在我需要一些需要在实际地图的方向上修复的注释,因此如果地图旋转,则注释符号需要随之旋转(例如,指示河流的箭头).
我不希望它们像地图一样使用地图缩放,但我确实希望它们随地图一起旋转.
我需要一个解决方案,主要用于用户用手指手动旋转地图时,以及由于跟踪时使用航向模式旋转地图.
在谷歌地图上(至少在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
到一个动画块中,使其看起来不错.
希望这可以帮助,或者可能帮助您指出正确的方向.