我在故事板上有一个视图控制器,我想在其上显示谷歌地图
一切顺利,我得到了,我可以显示地图
我的问题是相机没有指向标记
这是我的代码
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"we are in the show stadium");
// Create a GMSCameraPosition that tells the map to display the
// coordinate -33.86,151.20 at zoom level 6.
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.myLocationEnabled = YES;
self.mynewmap = mapView_;
// Creates a marker in the center of the map.
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
marker.title = @"Sydney";
marker.snippet = @"Australia";
marker.map = mapView_;
}
其中mynewmap
是UIView商店
这是我看到的
标记位于austrail上,但相机没有指向它并且标记不在地图上
答案 0 :(得分:2)
如果您正在使用Storyboards,请在Interface Builder中将mynewmap的类设置为GMSMapView。
在viewDidLoad中添加相机,你不需要分配视图,因为它已经被分配了:
- (void)viewDidLoad
{
[super viewDidLoad];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:6];
self.mynewmap.camera = camera;
}
或者尝试不使用Zero rect创建视图.CGRectZero ...您可以尝试使用:
mapView_ = [GMSMapView mapWithFrame:self.mynewmap.frame camera:camera];
答案 1 :(得分:0)
您当前的位置& (-33.86,151.20)位置相同但是没有...您已启用用户位置模式。请在评论后再试一次
//mapView_.myLocationEnabled = YES;
删除此行...因为它还跟踪用户位置。可能会有所帮助。
答案 2 :(得分:0)
添加标记
后添加此行[mapView_ animateToLocation:marker.position];
或使用
[mapView_ animateToCameraPosition:[GMSCameraPosition cameraWithLatitude:marker.position.latitude
longitude:marker.position.longitude
zoom:6.0f]];
答案 3 :(得分:0)
在iOS 11中遇到相同的问题,而不是从情节提要中设置GMSMapView,而是在viewcontroller的viewDidLoad方法中将其初始化,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
// Force the view to layout to get its proper frame
self.view.setNeedsLayout()
self.view.layoutIfNeeded()
// Initialize the GMSMapView with target view's bounds
googleMapView = GMSMapView(frame: self.mapView.bounds)
// Add the GMSMapView to the map container view
self.mapView.addSubview(googleMapView)
}