我目前正在swift中构建一个iOS应用。我在我的一个ViewControllers中放了一个GMSMapView,然后在屏幕中间放了一个标记。标记永远不会移动。
当我缩放或取消缩放时,标记位置会发生变化,与标记关联的地址也会发生变化。我希望能够放大与Uber应用程序完全相同的位置。
我已经在stackoverflow上阅读了一些像这样的答案:Google Maps Center while zooming但是没有一个能够工作。
有没有办法直接使用Google maps SDK,或者我应该编写一个算法来保存最后的已知位置并缩放此位置?
答案 0 :(得分:3)
如果我理解正确,您希望居中在屏幕中间,然后放大和缩小,但没有mapview滚动?
Google地图确实具有此功能。要阻止mapview滚动,请为mapview.settings实现allowScrollGesturesDuringRotateOrZoom = false:
myMapView.settings.allowScrollGesturesDuringRotateOrZoom = false
答案 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));