这在iOS 5.1中是否可行?以编程方式通过UIButton(+动作)将用户发送到地图?

时间:2012-11-09 13:50:37

标签: ios5 maps uiapplication

我正在尝试使用NSURL将用户发送到带有我的数据库地址的地图。我想在UIButton中的一个动作中做到这一点,就像我对电话,邮件和网络一样。像这样;

- (IBAction)restActionWeb:(UIButton *)sender {
NSString *urlString = [NSString stringWithFormat:@"http://%@",[restDetails objectForKey:@"Web"] ];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

}

对于像“123 My Road,MyTown,CA 95472,USA”这样的街头地址是否可以这样做?

在没有任何运气的情况下尝试了一些变体;

- (IBAction)restActionFind:(UIButton *)sender {
// Merge street + zip
NSMutableString *tempAdress = [NSMutableString string];
[tempAdress appendString:@"address://"];
[tempAdress appendFormat:@"%@",[restDetails objectForKey:@"Street"]];
[tempAdress appendFormat:@", %@",[restDetails objectForKey:@"Zip"]];
[tempAdress appendFormat:@", %@",[restDetails objectForKey:@"City"]];
[tempAdress appendFormat:@", USA"]; // Have this limitation in future?
self.restFindLabel.text = tempAdress;

// CHECK don't work, whats the url schema for address?
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:tempAdress]];

}

希望它能够像您在某些文本字段中检测到的地址一样工作,然后进入具有该地址的地图并显示它。

我认为使用计划B是一种“过度杀伤”:使用CoreLocation +以这种方式发送地址。它还利用了电池。我的意思是,我已经知道我的dB中的地址,只是希望地图显示它。

有关此问题的任何建议或提示?谢谢! : - )

1 个答案:

答案 0 :(得分:0)

你试过这个吗?

NSString *stringURL = @"http://maps.google.com/maps?q=123+My+Road,+MyTown,+CA+95472,+USA"];
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];

这意味着使用http://方案而不是address://并依靠操作系统来理解它是一张地图。可能在iOS6上不能正常工作,但它应该在iOS5上运行。

source