如何在MKMapView上添加地图注释? [英] How to add a Map annotation on MKMapView?

查看:118
本文介绍了如何在MKMapView上添加地图注释?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿,我想在我的地图上添加注释。

   -  



< (void)abreMapa:(NSString *)endereco {

NSString * urlString = [NSString stringWithFormat:@http://maps.google.com/maps/geo?q=%@&output = csv,
[endereco stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSString * locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
NSArray * listItems = [locationString componentsSeparatedByString:@,];

double latitude = 0.0;
double longitude = 0.0;

if([listItems count]> = 4&& [[listItems objectAtIndex:0] isEqualToString:@200]){
latitude = [[listItems objectAtIndex:2 ] doubleValue];
longitude = [[listItems objectAtIndex:3] doubleValue];
}
else {
//显示错误
}

CLLocationCoordinate2D坐标;
coordinate.latitude = latitude;
coordinate.longitude = longitude;
myMap.region = MKCoordinateRegionMakeWithDistance(coordinate,2000,2000);

[self.view addSubview:mapa];


}

谢谢!

解决方案

由于MKAnnotation是一个协议,你必须定义自己的实现协议的类。例如,

  @interface SPAnnotation:NSObject< MKAnnotation> {
CLLocationCoordinate2D coordinate;
}

@property(nonatomic,readonly)CLLocationCoordinate2D coordinate;

- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate;

如果您要映射的位置有纬度,经度:

  SPAnnotation * annotation = [[Annotation alloc] initWithCoordinate:CLLocationCoordinate2DMake(latitude,longitude)]; 
[myMap addAnnotation:annotation];


Hey, im trying to add an annotation on my map. How can i do it?

Heres my code:

- (void)abreMapa:(NSString *)endereco {

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", 
                       [endereco stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
NSArray *listItems = [locationString componentsSeparatedByString:@","];

double latitude = 0.0;
double longitude = 0.0;

if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) {
    latitude = [[listItems objectAtIndex:2] doubleValue];
    longitude = [[listItems objectAtIndex:3] doubleValue];
}
else {
    //Show error
}

CLLocationCoordinate2D coordinate;
coordinate.latitude = latitude;
coordinate.longitude = longitude;
myMap.region = MKCoordinateRegionMakeWithDistance(coordinate, 2000, 2000);

[self.view addSubview:mapa];


 }

Thanks!

解决方案

Since MKAnnotation is a protocol, you'll have to define your own class that implements the protocol. For example,

@interface SPAnnotation : NSObject <MKAnnotation> {
    CLLocationCoordinate2D coordinate;
}

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate;

If you have a latitude, longitude for the location you'd like to map:

SPAnnotation *annotation = [[Annotation alloc] initWithCoordinate:CLLocationCoordinate2DMake(latitude, longitude)];
[myMap addAnnotation:annotation];

这篇关于如何在MKMapView上添加地图注释?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆