如何在谷歌地图中设置中心地图视图位置sdk for iOS? 使用mapkit我们可以做setCenter:位置。 这是如何与谷歌映射sdk的iOS。如何在谷歌地图中设置中心地图视图位置sdk for iOS
3
A
回答
5
与GMSCameraPosition构造函数创建一个新的相机
+ (GMSCameraPosition *)cameraWithTarget:(CLLocationCoordinate2D)target zoom:(CGFloat)zoom
然后使用方法
- (void)animateToCameraPosition:(GMSCameraPosition *)cameraPosition;
您也可以只使用
- (void)animateToLocation:(CLLocationCoordinate2D)location;
但前面的内容允许您更改相机构造函数中的缩放,方位和视角,以便更好地控制相机的最终外观。
1
我用这个helper方法:
- (void)focusOnCoordinate:(CLLocationCoordinate2D) coordinate {
[self.mapView animateToLocation:coordinate];
[self.mapView animateToBearing:0];
[self.mapView animateToViewingAngle:0];
[self.mapView animateToZoom:ZOOM_LEVEL];
}
+1
这个解决方案顶部居中不在中间:/ [mapView moveCamera:]提供真正的中心,但不动画 – greenhouse 2016-05-11 23:54:50
0
如上面我的意见,说“动画......”的解决方案没有提供真正的中心(提供顶级中锋代替),和“moveCamera:”确实确实提供真正的中心(但不生动)。
我唯一的工作就是在调用'moveCamera:'之后添加对'animateToZoom:'的调用。这提供了真正的中心,并添加了一些'虚幻的'动画中心。
[mapView moveCamera:[GMSCameraUpdate setTarget:marker.position]];
[mapView animateToZoom:zoom_marker_select];
更新:变焦出更优雅的动画解决方案,然后放大和真正的中锋(上标记TAP)。
#define zoom_marker_select 17.0f
// GMSMapViewDelegate callback
- (BOOL)mapView:(GMSMapView *)mview didTapMarker:(GMSMarker *)marker
{
[self animateToCenterMarker:marker zoom:zoom_marker_select];
// NO = should continue with its default selection behavior (ie. display info window)
return NO;
}
// custom true center with animation function
- (void)animateToCenterMarker:(GMSMarker*)marker zoom:(float)zoom
{
/*
NOTE: '[mapView animateToLocation:marker.position]' (or others like it below)
does NOT provide true center, they provide top center instead
only found 'moveCamera:' to provide true center (but animation doesn't occur)
- workaround: add call to 'animateToZoom:' right after 'moveCamera:' call
- elegant workaround: zoom out, center, then zoom in (animation sequnce below)
*/
//[mapView animateToLocation:marker.position];
//[mapView animateToCameraPosition:marker.position];
//[mapView animateWithCameraUpdate:[GMSCameraUpdate setTarget:marker.position]];
[CATransaction begin];
[CATransaction setAnimationDuration:0.5f];
[CATransaction setCompletionBlock:^{
// 2) move camera to true center:
// - without animation
// - while zoomed out
[mapView moveCamera:[GMSCameraUpdate setTarget:marker.position]];
[CATransaction begin];
[CATransaction setAnimationDuration:0.5f];
// 3) animate dur 0.5f:
// - zoom back in to desired level
[mapView animateToZoom:zoom];
[CATransaction commit];
}];
// 1) animate dur 0.5f:
// - zoom out to current zoom - 1
// - set location to top center of selected marker
// - set bearing to true north (if desired)
float zoomout = mapView.camera.zoom -1;
[mapView animateToZoom:zoomout];
[mapView animateToLocation:marker.position];
[mapView animateToBearing:0];
[CATransaction commit];
}
注:如果你想设置自己的COORDS只是用自己的CLLocationCoordinate2D更换marker.position
相关问题
- 1. 使用地理位置设置谷歌地图中心
- 2. 谷歌地图设置中心
- 3. 在地图视图中设置位置
- 4. 谷歌地图 - iOS:旋转设备后维护地图位置
- 5. 如何使用谷歌地图sdk获取CGPoint的iOS位置?
- 6. 谷歌地图中的地理位置
- 7. 如何在android中的谷歌地图中心设置标记?
- 8. 如何设置谷歌地图Angular2 - 谷歌 - 地图到2d
- 9. 如何设置区域与谷歌地图SDK的iOS?
- 10. 谷歌地图InfoWindow放置在地图的中心吗?
- 11. 如何在谷歌地图iOS中查找当前位置?
- 12. 我希望谷歌地图标记留在地图中心,而相机位置可以更改iOS SDK
- 13. 如何禁用Google地图sdk for iOS中的谷歌链接?
- 14. 如何实施iOS谷歌地图SDK
- 15. 谷歌地图和jQuery谷歌地图api的位置差异
- 16. 谷歌地图中选择位置
- 17. 指出谷歌地图中的位置
- 18. 设置谷歌地图边界与角谷歌地图
- 19. 谷歌地图当前位置绘图
- 20. 谷歌地图iOS SDK,获取当前位置用户
- 21. 谷歌地图SDK的IOS 8不更新位置
- 22. 谷歌地图API(地理位置)
- 23. 谷歌地图:地理位置援助
- 24. 地理位置与谷歌地图V3
- 25. 离子谷歌地图,如何设置标记上的位置?
- 26. 谷歌地图中心位于当前位置
- 27. 设置一个谷歌地图视口的各个位置
- 28. 谷歌地图在响应式地图不中心地图
- 29. 谷歌地图iphone sdk中?
- 30. iOS谷歌地图SDK:设置maxZoom水平问题
谢谢,但这种方法不把位置地图的中心。 – Mecid 2013-02-22 15:40:39
赞同@Mecid这个解决方案顶部中心不只是中间居中:/ [mapView moveCamera:]提供了真正的中心,但并不动画 – greenhouse 2016-05-11 23:54:40