打开 Apple 地图时为目的地地址添加标签
Posted
技术标签:
【中文标题】打开 Apple 地图时为目的地地址添加标签【英文标题】:Adding a label to Destination Address when opening Apple Maps 【发布时间】:2015-10-07 02:06:26 【问题描述】:我想要做的是允许用户打开 Apple 地图并让它自动打开 Directions
表单,以便他们获取到我所在位置的路线。
目的地是纬度/经度对。我正在这样做:
NSString *addressString = @"http://maps.apple.com/?daddr=50.894967,4.341626&dirflg=d";
NSURL *url = [NSURL URLWithString:addressString];
[[UIApplication sharedApplication] openURL:url];
这会按我的预期打开 Apple 地图。但是,在目标字段中,它显示纬度/经度对。我想指定这个标签。这就是我的意思:
无论如何我可以使用 URL 参数将坐标替换为标签吗?
谢谢!
【问题讨论】:
对不起,我不太明白想要达到什么目的。你能再解释一下吗? @joern 在屏幕截图中,“End:”字段自动填充为“50.894967, 4.341626”,但我希望能够指定一些其他文本进入该字段(位置名称我正在将用户导航到) 【参考方案1】:您可以使用核心位置获取当前位置,然后您可以使用该信息设置您的 "Start"
点。您不必设置 "End"
点。
请检查此链接,我相信您会发现它很有用;
How to invoke iPhone Maps for Directions with Current Location as Start Address
【讨论】:
【参考方案2】:这可能不是您想要的方式。但它为我们打开地图应用程序提供了更大的灵活性。那就是使用[MKMapItem openMapsWithItems:launchOptions:]
要求地图打开地址。不过,屏幕看起来与您的预期有些不同。
CLLocation* location = [[CLLocation alloc] initWithLatitude:50.894967 longitude:4.341626];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location.coordinate, 10000, 10000);
NSDictionary *addressDict = @
(NSString *) kABPersonAddressStreetKey : @"Any Name",
;
MKPlacemark *destinationPlacemark = [[MKPlacemark alloc] initWithCoordinate:location.coordinate addressDictionary:addressDict];
MKMapItem *destinationMapItem = [[MKMapItem alloc] initWithPlacemark:destinationPlacemark];
[destinationMapItem openInMapsWithLaunchOptions:@MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving];
[MKMapItem openMapsWithItems:@[destinationMapItem]
launchOptions:@
MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapSpanKey : [NSValue valueWithMKCoordinateSpan:region.span]
];
【讨论】:
【参考方案3】:只需使用核心位置作为当前位置,然后开始,虽然不需要结束
【讨论】:
以上是关于打开 Apple 地图时为目的地地址添加标签的主要内容,如果未能解决你的问题,请参考以下文章