如何在谷歌地圖中設置中心地圖視圖位置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. 谷歌地圖iOS SDK位置id
- 2. 使用地理位置設置谷歌地圖中心
- 3. 谷歌地圖設置中心
- 4. iOS谷歌地圖SDK - 谷歌地圖不更新到當前位置
- 5. 在谷歌地圖上設置位置
- 6. 在用戶位置加載地圖 - iOS中的谷歌地圖
- 7. 在地圖視圖中設置位置
- 8. 將嵌入式地圖(谷歌地圖)的中心設置爲特定位置
- 9. 谷歌地圖v3 api,基於位置的中心地圖
- 10. 地圖片段中心的位置 - 安卓谷歌地圖
- 11. 谷歌地圖sdk如何獲得當前位置在xamarin ios
- 12. 谷歌地圖 - iOS:旋轉設備後維護地圖位置
- 13. 谷歌地圖SDK for iOS的地圖與谷歌地圖不一樣
- 14. 如何使用谷歌地圖sdk獲取CGPoint的iOS位置?
- 15. 谷歌地圖設置的位置?
- 16. 谷歌地圖中的地理位置
- 17. iOS谷歌地圖SDK用戶位置圖像
- 18. 如何在谷歌地圖中的中心位置設置標記
- 19. 如何在android中的谷歌地圖中心設置標記?
- 20. 谷歌地圖SDK for iOS的街景?
- 21. 如何獲得谷歌地圖在地圖中心的位置(LatLng /名稱)
- 22. 如何設置谷歌地圖Angular2 - 谷歌 - 地圖到2d
- 23. 谷歌地圖smartinfowindow位置
- 24. 如何設置區域與谷歌地圖SDK的iOS?
- 25. 如何在谷歌地圖iOS版SDK
- 26. 在谷歌地圖中查找位置
- 27. 谷歌地圖InfoWindow放置在地圖的中心嗎?
- 28. 在iOS上的谷歌地圖上設置位置
- 29. 如何在谷歌地圖iOS中查找當前位置?
- 30. iOS版谷歌地圖SDK GMSMarker定位
謝謝,但這種方法不把位置地圖的中心。 – Mecid 2013-02-22 15:40:39
贊同@Mecid這個解決方案頂部中心不只是中間居中:/ [mapView moveCamera:]提供了真正的中心,但並不動畫 – greenhouse 2016-05-11 23:54:40