我在尝试在iPhone应用中旋转地图时遇到此问题
视图被剪裁并且也会发生旋转。我想避免剪辑。有什么提示吗?
继承人代码:
viewToRotate.layer.transform = CATransform3DMakeRotation(0.8, 0., 0., 1.);
答案 0 :(得分:2)
您需要在3D中旋转地图吗?如果不是(这是我认为你需要的),那么只需使用CGAffineTransformMakeRotation
(小心,因为它需要以弧度表示的角度)。
此外,如果您不希望剪裁地图,则需要将地图放大,如下图所示(在新标签中打开以查看更大)
http://img593.imageshack.us/img593/4498/calculatemapboundswhenr.png
首先,您需要按照上图中的指示计算矩形的对角线(您的可见地图)(我称之为“半径”,因为这将是比您的矩形更大的最小圆的半径)。
其次,使用半径,您需要计算(最小)方块,以便在不剪裁的情况下看到地图。此方块将用于设置地图的bounds
(注意:不是frame
- Apple指定在使用轮换时,您不应使用frame
- 仅{{1} }和/或bounds
)。
确保此正方形位于可见地图矩形的中心(即正方形应在小矩形的上方和下方X像素...以及小矩形的左右Y像素)。
希望它有所帮助!
答案 1 :(得分:0)
你有没有想出解决方案?
我能做到的唯一方法是让Interface Builder中的MapView比它应该覆盖的屏幕区域的实际大小大得多,然后我将MapView居中,使其中心位于较窄的可视区域的中心区域。
旋转似乎与它在内置地图应用中的工作方式类似。
我的猜测是你必须这样做,以便从谷歌流入的图像平铺覆盖足够宽的区域以“填补空白”,即使它们并不总是可见的。
如果你应用一些小数学,你可能可以通过编程方式调整MapView的大小和位置,使你无法裁剪,但不需要更多的瓷砖,而不是绝对必要的。