我正在尝试使用Google Map SDK for IOS
在子视图中实现我当前的位置。我正在尝试将GMSMapView实现为IBOutlet。
我的标题文件包含代码
#import <UIKit/UIKit.h>
#import <Google-Maps-iOS-SDK/GoogleMaps/GoogleMaps.h>
@interface TripLandingViewController : UIViewController
@property IBOutlet GMSMapView *mapView;
@end
我的.m文件包含代码
self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Tile.png"]];
self.mapView.myLocationEnabled = TRUE;
NSLog(@"\n\n\n My Location is %f,%f \n\n\n",self.mapView.myLocation.coordinate.latitude,self.mapView.myLocation.coordinate.longitude);
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:self.mapView.myLocation.coordinate.latitude
longitude:self.mapView.myLocation.coordinate.longitude
zoom:10];
self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
无论如何,我提供的硬编码值作为相机坐标的参数。我得到了错误的位置(这里是英国),它根本没有更新。
但相反,当我尝试
时 self.View = [GMSMapView mapWithFrame:CGRectZero camera:camera];
我能够使用正确的位置坐标在主视图中加载正确的地图视图。
我尝试了通过stackoverflow将Google地图添加到SubViews的所有答案。
Cannot put a google maps GMSMapView in a subview of main main view?
How to set the frame for mapview - in google GMSMap for iOS6
How put Google MapView in UIView?
Google Maps iOS SDK, Getting Current Location of user
但似乎没有任何效果。请帮忙,因为我不熟悉IOS编程。
答案 0 :(得分:2)
使用:
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:0 longitude:0 zoom:15];
self.mapView.camera = camera;
而不是使用:
self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
我不完全确定原因,但是当GMSMapView
是您UIViewController
的子视图时,此方法有效。