放大屏幕中心 - Google Maps iOS SDK Swift

时间:2016-06-28 22:46:08

标签: ios swift google-maps google-maps-sdk-ios

我目前正在swift中构建一个iOS应用。我在我的一个ViewControllers中放了一个GMSMapView,然后在屏幕中间放了一个标记。标记永远不会移动。

当我缩放或取消缩放时,标记位置会发生变化,与标记关联的地址也会发生变化。我希望能够放大与Uber应用程序完全相同的位置。

我已经在stackoverflow上阅读了一些像这样的答案:Google Maps Center while zooming但是没有一个能够工作。

有没有办法直接使用Google maps SDK,或者我应该编写一个算法来保存最后的已知位置并缩放此位置?

2 个答案:

答案 0 :(得分:3)

如果我理解正确,您希望居中在屏幕中间,然后放大和缩小,但没有mapview滚动?

Google地图确实具有此功能。要阻止mapview滚动,请为mapview.settings实现allowScrollGesturesDuringRotateOrZoom = false:

myMapView.settings.allowScrollGesturesDuringRotateOrZoom = false

https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_u_i_settings.html#a4c1156d319c0724284062167e47decc4

答案 1 :(得分:0)

您无法为放大两个内容制作动画,也无法在一个Google地图中转到我的位置。你会顺序完成它们。首先移动相机,然后移动animate the camera,尽管两者都可能是animateCamera()次来电。 GoogleMap是否将这些内容合并为一个事件。

CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View
.zoom(17) // Sets the zoom
.bearing(90) // Sets the orientation of the camera to east
.tilt(30) // Sets the tilt of the camera to 30 degrees
.build(); // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));