我有一种情况,我必须将地图框指南针视图重新定位到不同的位置。当我旋转地图时,compassView正在旋转,其中一些其他点作为其(compassView)轴,并给我一个奇怪的结果。附上截图,黑色mapBox默认罗盘图标正在旋转,参考截图。这是一个MapBox sdk错误吗?如果是的话,有什么工作吗?并调整?我很迷惑。需要专家意见。提前谢谢。
答案 0 :(得分:2)
嘿,我找到了另一种方法,我会在地图框中得到相同的指南针结果。我已经放了一个按钮然后
func mapViewRegionIsChanging(_ mapView: MGLMapView) {
compassViewUpdate(direction: Double(bearing))
在compassViewUpdate方法中
func compassViewUpdate(direction:Double) {
self.compassButton.transform = CGAffineTransform(rotationAngle: CGFloat(-direction.degreesToRadians))
}
@Sarang这是一个解决方法。快乐的编码。
答案 1 :(得分:0)
尝试更改罗盘视图。中心,而不是更改其原点或框架。我猜它大约有40像素宽x高,我使用以下命令更改为左下角:
chainr1
应该可以!
答案 2 :(得分:0)
Mapbox iOS SDK中提供的一种内置方法。使用这些方法
移动指南针将避免inv_Sigma = solve (Sigma [[1]])
inv_Lambda_plus_Delta = solve (Delta)
Delta_i = solve (inv_Sigma + inv_Lambda_plus_Delta)
mu_i = Delta_i %*% (inv_Sigma %*% O [, 1] + inv_Lambda_plus_Delta %*% mu)
if (n > 1) {
for (i in seq (2, n)) {
inv_Sigma = solve (Sigma [[i]])
inv_Lambda_plus_Delta = solve (Lambda + Delta_i)
Delta_i = solve (inv_Sigma + inv_Lambda_plus_Delta)
mu_i = Delta_i %*% (inv_Sigma %*% O [, i] + inv_Lambda_plus_Delta %*% mu_i)
}
}
和.frame
引起的失真
变化。
通常更改CompassView的位置
.center
通常使用mapView.compassViewPosition = .bottomLeft
mapView.compassViewPosition = .bottomRight
mapView.compassViewPosition = .topLeft
mapView.compassViewPosition = .topRight
将指南针放在您想要的位置
屏幕。
微调CompassView的位置
compassViewPosition
默认x,y = 8,8
边界位于视图边界的外部/沿边界。所以对于mapView.compassViewMargins = CGPoint(x: 64, y: 16)
指南针视图将向右移56,向右移8,而.bottomLeft
指南针将向左移动56,向下移动8。