【问题标题】:MapView annotation not pointing to correct location on app start upMapView 注释在应用程序启动时未指向正确的位置
【发布时间】:2012-11-18 01:29:08
【问题描述】:

我有一个在运行时创建的 mkmapview。首先我必须告诉我,我的实际问题是在 ipad 上,而不是在模拟器上。在视图确实加载我正在调用两个函数。 fillValues 和 setDraggable Point。

CLLocationManager *locManager = [[CLLocationManager alloc]init];
[locManager startUpdatingLocation];

CLLocationCoordinate2D currCoordinates = locManager.location.coordinate;
NSLog(@"the latitude is %f",currCoordinates.latitude);
NSLog(@"the longitude is %f",currCoordinates.longitude);
[self fillLatitudeAndLongitudeTextFields:currCoordinates.latitude longitudeValue:currCoordinates.longitude];

[self setDraggablePinOnMap:currCoordinates];

在模拟器上: 记录坐标和 fillTextfields 并在地图上设置可拖动点。 setDraggablePinOnMap 方法创建地图并设置红色注释。因此,当应用程序在模拟器上加载时,它会在我的位置周围显示蓝点,并在同一位置显示红色图钉(按预期工作)。我移动图钉并获取该位置的坐标并更新文本字段。

在设备-iPAD 上 我第一次加载应用程序时,它会用蓝点加载我当前的位置。但是红色注释没有显示在我当前的位置,而是显示在赤道地球中心的 0,0,0 和 0,0,0 处。它没有按预期进行。红色和蓝色都应该在同一点相交。有趣的一点是在这个屏幕的第二次加载(基本上我回到屏幕 A 并回到这个屏幕。让我们说地图作为屏幕 B 的屏幕)它加载了蓝色和红色点相交的地图。它不能只在第一次时做到这一点。就像它在第一次加载时无法确定位置,但之后可以做到。我怎样才能让它在第一次加载时显示?我说得通吗?如果您需要更多信息,请询问我。

【问题讨论】:

    标签: ios ipad location mkmapview


    【解决方案1】:

    第一次无法执行此操作,因为您还没有等待位置管理器对您的位置进行正确修复。您需要对位置管理器的delegate 进行分类并等待didUpdateLocations 回调。获得位置后,您可以使用它来设置红色图钉,然后阻止位置管理器向您发送更新,或者如果图钉已经放置,则忽略它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2015-01-13
      • 1970-01-01
      相关资源
      最近更新 更多