我的应用中有一个地图视图和两个文本框。
两个文本框都显示纬度和经度
我在地图视图中绘制或映射了几个注释,并且当单击每个注释时,将显示带有相应纬度和经度值的标注。
我只想在文本框中显示那些纬度和经度值。
我尝试了以下代码,
latitude_value.text=myAnnotation.title;
longitude_value.text=myAnnotation.subtitle;
latitude_value和longitude_value是文本框
myAnnotation是注释名称
标题和副标题包含纬度和经度值
在此先感谢...!
答案 0 :(得分:2)
如果myAnnotation自定义对象是
之类的自定义属性,则可以为其提供标记假设myAnnotation具有以下属性,
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subTitle;
@property (readwrite) int tag; // Tag to identify annotation
在您添加注释之后,假设您有对象的数组aLocations,所以给出一个标记,如
for(int i=0; i< [aLocations count]; i++)
{
// Create MyAnnotation object and initialize it, suppose created object is myAnnotation, now set it's tag
myAnnotation.tag=i;
}
之后,您可以访问
中的标记值-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
MyAnnotation *temp = (MyAnnotation*) view.annotation;
NSLog(@"%d",temp.tag);
// and now use
[aLocations objectAtIndex:temp.tag]
}
答案 1 :(得分:1)
您可以通过以下代码设置latitude_value和longitude_value:
float latitude = [myAnnotation coordinate].latitude;
float longitude = [myAnnotation coordinate].longitude;
latitude_value.text=[NSString stringWithFormat:@"%f",latitude];
longitude_value.text=[NSString stringWithFormat:@"%f",longitude];
因为CLLocationCoordinate2D是一个结构,所以它没有方法或getter的概念。用于访问struct成员的C dot语法是唯一正确的方法。