我一直在使用核心数据在表格视图中多次保存用户的位置。现在我实际上可以在不同时间获得位置详细信息(主要是坐标),我想在 MapView 上绘制每次可用的坐标(没有覆盖,只是一个点来指向当时的位置) . 我有可用的坐标(一个纬度和一个经度值),但我想知道如何在 MapView 上绘制它们。
只是简单地提出我的问题,如何在地图视图上绘制坐标?
我刚刚浏览了 SO,但找不到可以解决我的问题的确切解决方案!任何帮助都感激不尽。
谢谢你的时间 !
问候,
拉吉。
我一直在使用核心数据在表格视图中多次保存用户的位置。现在我实际上可以在不同时间获得位置详细信息(主要是坐标),我想在 MapView 上绘制每次可用的坐标(没有覆盖,只是一个点来指向当时的位置) . 我有可用的坐标(一个纬度和一个经度值),但我想知道如何在 MapView 上绘制它们。
只是简单地提出我的问题,如何在地图视图上绘制坐标?
我刚刚浏览了 SO,但找不到可以解决我的问题的确切解决方案!任何帮助都感激不尽。
谢谢你的时间 !
问候,
拉吉。
借助 MKAnnotation,可以解决这个问题。感谢@Craig 和 Vishal Kurup!
创建一个注解类作为 NSObject 的子类。
在 Annotation.h 中:
@interface Annotation : NSObject <MKAnnotation>
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, assign) NSString *title;
@property (nonatomic, assign) NSString *subtitle;
@end
它应该符合 MKAnnotation 并且三个属性是符合 MKAnnotation 类时需要的。声明它们并在 .m 文件中合成它们。
在 MapHistoryViewController 实现文件中,我们需要添加几行代码来查看所需坐标处的注解。
MapHistoryViewController.m:
@interface MapHistoryViewController (){
CLLocationCoordinate2D annotationCoord;
Annotation *annotation;
}
@end
@implementation MapHistoryViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// To define coordinate for the annotation
annotationCoord.latitude = mapHistoryLocation.coordinate.latitude;
annotationCoord.longitude = mapHistoryLocation.coordinate.longitude;
annotation = [Annotation alloc];
annotation.coordinate = annotationCoord;
annotation.title = streetAnnotation;
// to display the annotation
[self.mapHistoryView addAnnotation:annotation];
// where mapHistoryView is my MKMapView object
}
//You can set the region too, if you want the map to be focused on the coordinates you have provided
//Hope this will help the people with the same question :)