【问题标题】:Google Maps iOS SDK: How to start map on user's locationGoogle Maps iOS SDK:如何在用户位置上启动地图
【发布时间】:2014-08-08 15:14:15
【问题描述】:

我正在尝试设置 GMSMapView 的 initial 中心位置。那里有大约 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];

但我不想从澳大利亚开始,而是搬到用户实际所在的任何地方。我想从用户所在的任何地方开始,就像 Google 地图应用的工作方式一样。

以下是我认为我知道的:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    这是我目前为止的想法......

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

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

    它似乎可以工作,但是加载时仍然有一点点闪烁,我认为这是因为我最初设置相机位置的方式。如果有人知道更好的方法,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 2015-03-15
      • 2014-01-24
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      相关资源
      最近更新 更多