首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注解引脚

注解引脚
EN

Stack Overflow用户
提问于 2012-07-02 23:50:45
回答 2查看 211关注 0票数 1

因此,我在MKMapView上设置注释引脚的位置时遇到了一个问题。

我只是写了一个可从NSObject继承的类,叫做“注解”,它使用协议。

所以,下面是代码:

Annotation.h

代码语言:javascript
复制
#import <Foundation/Foundation.h>

@interface Annotation : NSObject <MKAnnotation>
{
    CLLocationCoordinate2D _coordinate;
    NSUInteger _pinID;
}

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate andID:(NSUInteger)pinID;

@end

Annotation.m

代码语言:javascript
复制
#import "Annotation.h"

@implementation Annotation

@synthesize coordinate=_coordinate;

- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate andID:(NSUInteger)pinID{
    self = [super init];
    if (self != nil) {
        _coordinate = coordinate;
        _pinID = pinID;
    }
    return self;
}

- (NSString *)title {
    return [NSString stringWithFormat:@"Pin %u", _pinID];
}

- (NSString *)subtitle {
    return [NSString stringWithFormat:@"%.4f, %.4f", _coordinate.latitude, _coordinate.longitude];
}

@end

然后,我尝试使用以下代码将其连接到我的地图

MapViewController.m

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];
    CLLocationCoordinate2D coordinate;
    coordinate.latitude = 49.2802;
    coordinate.longitude = -123.1182;
    mapView.delegate = self;
    mapView.region = MKCoordinateRegionMakeWithDistance(coordinate, 2000, 2000); 


    CLLocationCoordinate2D newCoord = {2000, 2000};
    Annotation* annotation = [[Annotation alloc] initWithCoordinate:newCoord andID:1];
    [mapView addAnnotation:annotation];
}

但这没有任何意义,大头针甚至没有显示。我做错了什么?我寻求帮助和教训,但没有取得任何成果。

EN

回答 2

Stack Overflow用户

发布于 2012-07-02 23:57:58

批注的坐标无效:

代码语言:javascript
复制
CLLocationCoordinate2D newCoord = {2000, 2000};
Annotation* annotation = [[Annotation alloc] initWithCoordinate:newCoord ...

纬度、经度为2000,2000无效。

您可能希望改用coordinate变量(在viewDidLoad中定义了几行):

代码语言:javascript
复制
Annotation* annotation = [[Annotation alloc] initWithCoordinate:coordinate andID:1];
票数 0
EN

Stack Overflow用户

发布于 2013-03-07 04:43:02

尝尝这个

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];
    CLLocationCoordinate2D coordinate;
    coordinate.latitude = 49.2802;
    coordinate.longitude = -123.1182;
    mapView.delegate = self;
    mapView.region = MKCoordinateRegionMakeWithDistance(coordinate, 2000, 2000); 

    Annotation* annotation = [[Annotation alloc] initWithCoordinate:coordinate andID:1];
    [mapView addAnnotation:annotation];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11297036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档