0

以下のコードを見てください。正常に動作しています

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%f,%f&saddr=%f,%f", 23.0300, 72.5800, 22.3000, 70.7833];    
NSString *escapedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];    
NSURL *url=[NSURL URLWithString:escapedString];
[[UIApplication sharedApplication]openURL:url];

ただし、サファリブラウザでマップを開きます。

その後、私は以下のコードを試しました

NSString *urlString = [NSString stringWithFormat:@"http://maps.apple.com/maps?daddr=%f,%f&saddr=%f,%f", 23.0300, 72.5800, 22.3000, 70.7833];    
NSString *escapedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];    
NSURL *url=[NSURL URLWithString:escapedString];
[[UIApplication sharedApplication]openURL:url];

それは私が望むようにマップアプリを開きますが、ルートまたは上記のGoogleマップが与える同じ結果で方向性の結果を私に与えません。どうすればマップアプリの最初のコードとして結果を達成できますか?

助けてください!!

4

1 に答える 1

2

Apple のマップには Google マップと同じ API がないため、URL は機能しません。iOS 6 MKMapItemApple では、開発者が maps.app とやり取りできるようにする が導入されました。

http 経由でマップを引き続き使用する場合は、URL を変更する必要があります。

NSString *urlString = [NSString stringWithFormat:@"http://maps.apple.com/?daddr=%f,%f&saddr=%f,%f", 23.0300, 72.5800, 22.3000, 70.7833];    
NSString *escapedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];    
NSURL *url=[NSURL URLWithString:escapedString];
[[UIApplication sharedApplication]openURL:url];

Apple URL スキーム リファレンスに記載されているように、/maps/パスを追加しないでください。

パス パラメータを含まない URL、または特定のマップ パスを含む URL は Safari で開かれ、そこに表示されます。たとえば、パスhttp://maps.apple.com/http://maps.apple.com/mapshttp://maps.apple.com/local、およびhttp://maps に基づく URL。 apple.com/mはすべて Safari で開いています。マップ アプリで URL を開くには、パスがhttp://maps.apple.com/?qの形式である必要があります。

有効なマップ リンクを作成するためのルールは次のとおりです。

  • ドメインは maps.apple.com である必要があります。
  • パスを /maps/* にすることはできません。
  • 値が URL の場合、パラメーターを q=* にすることはできません (したがって、KML は取得されません)。
  • パラメータに view=text または dirflg=r を含めることはできません
于 2013-10-30T10:36:08.227 に答える