Google Maps iOS SDK:如何在用户的位置开始制作地图

时间:2014-08-08 15:14:16

标签: ios objective-c google-maps google-maps-sdk-ios

我正在尝试设置GMSMapView的初始中心位置。那里有大约2000个教程,向您展示如何使用这样的任意坐标设置它:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // 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:camera2];

但我不想在澳大利亚开始,而是转移到用户实际所在的地方。我想在用户所在的任何地方开始,就像谷歌地图应用程序的工作方式一样。

以下是我认为我知道的事情:

  • 如果我设置mapView_.myLocationEnabled = YES;,我应该可以使用mapView_.myLocation
  • 检索设备位置
  • 但在viewDidLoad期间GPS数据可能尚未提供,因此该值最初为0,0或为零或任何其他值(无用)。
  • 可以使用CLLocationManager管理设备位置,以跟踪设备是否移动等。

但是如何将(最终)存储在CLLocationManager中的数据传递给GM​​SMapView,以便我从正确的位置开始?

这似乎不应该那么困难,但经过2个小时的搜索,我找不到答案。

1 个答案:

答案 0 :(得分:0)

这是我到目前为止所提出的......

这个问题类似于我的问题:Could not get current location using Google Map API (GMSMapView)

并且this blog post修改了上述帖子中的答案,并提供了一些非常有用的解释。

它看起来很有效,但加载时仍然有点毛躁的闪烁,而我认为这是因为我最初设置相机位置的方式。如果有人知道更好的方法,请告诉我!