7

Google Maps SDK for iOS のドキュメントを読んでいますが、地図上にルートを描画することについて何も知りませんでした。

ポリラインが利用できることは知っていますが、それが最善のアプローチだとは思いません。

出来ますか?

4

6 に答える 6

5

iOS SDK はまだルート案内をサポートしていません。それまでにできることは、Directions API Web サービスを使用して、GMSPolyline でルートを自分でレンダリングすることです。

これを SDK に追加するには、機能要求も提出する必要があります。

于 2013-02-21T23:05:04.797 に答える
4

Saxon Druce の答えとして、Google Maps Directions Web サービスを使用してルートを検索し、ポリラインで描画できます。このエピソードでは、それを実現する方法を示します。サンプル コードは、このgithub リポジトリからダウンロードできます。

于 2013-06-05T08:32:04.050 に答える
3

ライブラリにはドキュメントにないものがいくつかあるため、機能を探している場合は、SDK をダウンロードしてヘッダーを確認する価値があります。

しかし、現在のバージョン 1.0.2 では、ルーティングに関するものは何も表示されません。ルートを検索したり、ルートを描画したり (またはアドレスを検索したり) することはありません。今のところ、唯一のオプションは、おそらく他の Google API を使用してルートを見つけてから、Lee が言ったように、ポリラインを使用してそれらを描画することです。

于 2013-02-09T03:29:11.383 に答える
2

同じGoogle Maps ios SDKを使用して、Googleマップに方向パスを描画する必要がある同様の問題がありました。私がしたことは、Google Distance APIにアクセスしたことでした。

次のコードを使用して、API から html_instructions と end_location を抽出しました。

これらの変数をプロパティとして定義しました

@property NSMutableArray *detailedSteps;
@property (strong, nonatomic) IBOutlet GMSMapView *mapview;

end_location と html_instructions を抽出する次のコード

NSURL *url=[[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/directions/json?origin=ahmedabad&destination=%@",self.city]];
NSURLResponse *res;
NSError *err;
NSData *data=[NSURLConnection sendSynchronousRequest:[[NSURLRequest alloc] initWithURL:url] returningResponse:&res error:&err];
NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *routes=dic[@"routes"];
 NSArray *legs=routes[0][@"legs"];
NSArray *steps=legs[0][@"steps"];
NSMutableArray *textsteps=[[NSMutableArray alloc] init];
NSMutableArray *latlong=[[NSMutableArray alloc]init];
for(int i=0; i< [steps count]; i++){
    NSString *html=steps[i][@"html_instructions"];
    [latlong addObject:steps[i][@"end_location"]];
    [textsteps addObject:html];
}
self.detailedSteps=textsteps;
[self showDirection:latlong];

そして、これがマップ上にポリゴンを描画するメソッド showDirection です。ここでは、latlong 配列を渡しています。これは実際には end_location 配列です。

-(void)showDirection:(NSMutableArray*) latlong{
GMSMutablePath *path = [GMSMutablePath path];
for(int i=0; i<[latlong count]; i++){
    double lat=[latlong[i][@"lat"] doubleValue];
    double lng=[latlong[i][@"lng"] doubleValue];
    [path addLatitude:lat longitude:lng];
}
NSLog(@"Direction path");
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeColor = [UIColor blueColor];
polyline.strokeWidth = 5.f;
polyline.map = self.mapview ;

}
于 2014-12-26T12:30:58.617 に答える
1

バージョン 1.1.0 でさえ、ルート案内用のツールを実装していないため、最高のパフォーマンスを得るには URL スキームを使用することをお勧めします。

于 2013-02-25T00:26:02.127 に答える
1

Google Maps iOS SDKを使用してルート/方向を描画できるようになったと思います。
こちらの公式ビデオチュートリアルに従ってください:
http://talkminer.com/viewtalk.jsp?videoid=AdV7bCWuDYg&q=&row=4&N=5#.Ui2H1mSAZTE

于 2013-09-09T08:36:08.227 に答える