0

NSURL を使用して、データベースのアドレスを使用してユーザーをマップに送信しようとしています。そして、tel、mail、web の場合と同様に、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 に既に住所があり、マップにそれを表示させたいだけです。

これに関する提案やヒントはありますか?ありがとう!:-)

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://し、OS に依存してマップを理解することを意味します。iOS6 ではうまく動作しない可能性がありますが、iOS5 では動作するはずです。

ソース

于 2012-11-09T13:53:44.597 に答える