我创建了一个应用程序,它在自定义地图上显示不同的点,并带有自定义图钉,并显示带有公开按钮的标题和副标题(可以)。当应用程序启动地图以创建路径然后提供方向时,就会出现问题。要从用户的位置移动,我只需输入URL“saddr =当前位置”。当我尝试给出用户触摸的目的地时,问题就出现了,相对于触摸的针脚。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
[self.navigationController pushViewController:[[UIViewController alloc] init] animated:YES];
NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f%1.6f&saddr=Posizione Attuale", mapView.annotations.coordinate.latitude mapView.annotations.coordinate.longitude];
//也是mapview.annotation.coordinate.latitude /经度不起作用
NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
}
我无法弄清楚如何在代码段中传递注释的坐标!
以下是我的说法并将注释添加到我的视图中
NSMutableArray* annotations=[[NSMutableArray alloc] init];
CLLocationCoordinate2D theCoordinate1;
theCoordinate1.latitude = 45.7;
theCoordinate1.longitude = 7.64;
myAnnotation* myAnnotation1=[[myAnnotation alloc] init];
myAnnotation1.coordinate=theCoordinate1;
myAnnotation1.title=@"Pippo";
myAnnotation1.subtitle=@"Ufficio";
[myMapView addAnnotation:myAnnotation1];
重复4个具有不同名称(myAnnotation1,2,3,4)和坐标其他的主要点!当用户触摸1-2-3或4以移动正确的目的地时,我该怎么办?
提前致谢! :)
答案 0 :(得分:2)
在calloutAccessoryControlTapped
中,为什么要推送空白视图控制器并同时调用openURL
?
无论如何,注释的坐标位于view.annotation.coordinate
。
因此纬度为view.annotation.coordinate.latitude
,经度为view.annotation.coordinate.longitude
。
此外,在您的addr
字符串中,您缺少坐标之间的逗号。