0

我正在尝试使用 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 + 发送地址。它还利用电池。我的意思是,我的分贝中已经有了地址,只是希望地图显示它。

对此有任何建议或提示吗?谢谢!:-)

4

1 回答 1

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 上应该可以。

来源

于 2012-11-09T13:53:44.597 回答