【问题标题】:How can I set mapView's userLocation to a MKUserLocation that I created?如何将 mapView 的 userLocation 设置为我创建的 MKUserLocation?
【发布时间】:2012-02-02 08:29:52
【问题描述】:

我正在尝试编写一些代码来提高 iPhone 的定位精度。 我从我的 iPhone 硬件中获得了所有需要的信息(例如纬度、经度、deviceMotion、陀螺仪......),并且需要在 mapView 上显示更准确的计算结果。 但是就在这时我发现mapView的userLocation属性是只读的,所以这可能意味着即使使用setCoordinate方法也无法更改它,所以伤心=[ 是否有任何解决方案可以处理它,或者有另一种方法可以在我的地图视图上显示该位置? 谢谢!

【问题讨论】:

    标签: ios5 mkmapview userlocation


    【解决方案1】:

    您只需要使用 CLLocationCoordinate2DMake 创建 CLLocationCoordinate2D 并在此处设置纬度和经度。 然后将您的位置创建为新的 MKAnotation(例如 yourPositionAnotation)并将您的位置从 CLLocationCoordinate2D 设置为坐标。然后做这样的事情:

    // create coordinate
    CLLocationCoordinate2D yourPos = CLLocationCoordinate2DMake(lat, lon);
    // create MKAnnotation
    MKAnnotationView *yourAnnotation = [[MKAnnotationView alloc] init];
    
    yourAnnotation.coordinate = yourPos;
    
    // remove all old annotations
    [self.myMapView removeAnnotations:self.myMapView.annotations]
    // add your annotation
    [self.myMapView addAnnotation:yourAnnotation];
    

    最后别忘了发布注解。

    【讨论】:

    • 你的想法很棒!我认为使用 Core Graphic 在地图上画一个点也是可行的,但比你的编码要多得多,谢谢一百万!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多