относительно поворота карты в iOS - PullRequest
0 голосов
/ 31 января 2011

Я сталкиваюсь с этой проблемой при попытке повернуть карту в приложении для iPhone

Вид обрезается, и вращение также происходит.Я хочу избежать отсечения.Любые советы?

вот код:

viewToRotate.layer.transform = CATransform3DMakeRotation(0.8, 0., 0., 1.);

Ответы [ 2 ]

2 голосов
/ 22 мая 2012

Вам нужна ваша карта, повернутая в 3D? Если нет (что, я думаю, вам нужно), просто используйте CGAffineTransformMakeRotation (будьте осторожны, так как для этого требуется угол в радианах).

Кроме того, если вы не хотите, чтобы ваша карта была обрезана, вам нужно увеличить карту, как показано на рисунке ниже (откройте в новой вкладке, чтобы увидеть ее больше)

http://img593.imageshack.us/img593/4498/calculatemapboundswhenr.png

Во-первых, вам нужно вычислить диагональ прямоугольника (вашей видимой карты), как указано на изображении выше (которое я называю «радиусом», потому что это будет радиус наименьшего круга больше вашего прямоугольника). *

Во-вторых, используя радиус, вам нужно вычислить (наименьший) квадрат, который позволит увидеть вашу карту без отсечения. Этот квадрат будет использоваться для установки bounds вашей карты (осторожно: НЕ frame - Apple указывает, что при использовании поворота вы не должны использовать frame - просто bounds и / или center) .

Убедитесь, что этот квадрат центрирован по центру прямоугольника вашей видимой карты (то есть квадрат должен иметь X пикселей выше И ниже маленького прямоугольника ... и Y пикселей слева И справа от маленького прямоугольника).

Надеюсь, это поможет!

0 голосов
/ 29 сентября 2011

Вы когда-нибудь находили решение?

Единственный способ сделать это - сделать MapView в Интерфейсном Разработчике намного больше, чем фактический размер области экрана, которую он должен покрывать, затем я отцентрировал MapView так, чтобы его центр находился в центре более узкой видимой области. область.

Кажется, что вращение работает аналогично тому, как оно работает во встроенном приложении "Карты".

Я предполагаю, что вы должны сделать это так, чтобы плитки изображений, поступающие из Google, покрывали достаточно широкую область, чтобы, так сказать, "заполнить пробелы", даже если они не всегда видны.

Если вы примените небольшую математику, вы, вероятно, могли бы программно измерить и расположить MapView таким образом, чтобы избежать стрижки, но не потребовать больше плиток, чем это абсолютно необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...