2010-12-14 14 views
0

にMapKitするGoogleマップから行く私は現在、次のコードを使用しています:は、iOS

UIApplication *app = [UIApplication sharedApplication]; 
[app openURL:[NSURL URLWithString:@"http://maps.google.com/maps?saddr=Current%20Location&daddr=Chicago"]]; 

をそれはGoogleマップアプリの中で方向性を開くために完全に正常に動作します。もし私がこの事実をAppそのものの中でのみ行っていたら、どうすればいいのですか?私は現在、MKMapViewのインスタンスを持つviewControllerを設定していますが、それは世界全体を示しています。すべて正常に動作していますが、注釈でApple Documentationを読むとすぐに頭が回転し始めます。

答えて

1

注釈部分は、頭を折り返すとかなり簡単ですが、パス描画部分はすごく面倒です。私はone of my appsでそれを行い、線を引くだけでなく、縮尺などを保つのではなく、ユーザーが文字通り数百のステップを持つルートを指定した場合は、より高速でメモリ効率の良い方法で多くの作業を行いました(クロスカントリーは高速道路を避けているなど)。

ルーティングがあなたのアプリの焦点でない限り、私は気にしません。まだ本当にしたいのであれば、私は元に戻り、コードを見直していくつかの指針を提供します。それには驚くほどたくさんあることをあらかじめご了承ください。

0

私はあなたのアドレスを検索し、あなたのアプリでそれを表示していると仮定しようとしています。 Geocoder APIを使用すると、境界を含む(または指定しない)ルックアップを行うことができます。私はこのNSString形式を使用しています:NSString *geocoderURLFormat = @"http://maps.googleapis.com/maps/api/geocode/json?address=%@&bounds=%@&sensor=true"

このコールバックコールバックは、場所の推奨ビューポート、南西および北東の緯度/経度の値を返します。私はまだMKCoordinateSpanlatitudeDeltalongitudeDelta値に少しあいまいだ

CLLocationCoordinate2D coord; 
coord.latitude = location.latitude; 
coord.longitude = location.longitude; 

MKCoordinateSpan span; 
span.latitudeDelta = location.swLatitude > location.neLatitude ? location.swLatitude - location.neLatitude : location.neLatitude - location.swLatitude; 
span.longitudeDelta = location.swLongitude > location.neLongitude ? location.swLongitude - location.neLongitude : location.neLongitude - location.swLongitude; 

MKCoordinateRegion region; 
region.span = span; 
region.center = coord; 

[mapView setRegion:region animated:YES]; 

ノート、コードの故に醜:これらを使用すると、このようなMKMapView対象領域を設定することができます。私が使用している変数locationは、Geocoderの呼び出しの結果から構築されます。

希望すると便利です。