マップベースのアプリケーションを作成しました。今Googleの方向apiによってPolyLineポイントを取得しました。しかし、これでポリラインを描く方法はGSMPath
です。私は何回も試みましたが、ポリラインを描画するのはGMSMapView
です。描く方法をお勧めします。 どちらの方法を参考にしてください。MapViewでGMSPolylineを描画する方法
-(void) viewWillAppear:(BOOL)animated
{
NSString *urlString = [NSString stringWithFormat:
@"%@?origin=%f,%f&destination=%f,%f&sensor=true&key=%@",
@"https://maps.googleapis.com/maps/api/directions/json",
22.6987,
75.8817,
22.6990,
75.8671,
@"AIzaSyCk6NNWO7DxVUEyEW1B6m-YNpdqv5HbyEk"];
NSCharacterSet *set = [NSCharacterSet URLQueryAllowedCharacterSet];
NSString *encodedUrlAsString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:set];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithURL:[NSURL URLWithString:encodedUrlAsString]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"RESPONSE: %@",response);
NSString *resSrt = [[NSString alloc]initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"DATA: %@",resSrt);
if (!error) {
// Success
if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
NSError *jsonError;
json =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];
dispatch_sync(dispatch_get_main_queue(), ^{
NSArray *routesArray = [json objectForKey:@"routes"];
NSLog(@"succes===== %@",routesArray);
GMSPolyline *polyline = nil;
if ([routesArray count] > 0)
{
NSDictionary *routeDict = [routesArray objectAtIndex:0];
NSDictionary *routeOverviewPolyline = [routeDict objectForKey:@"overview_polyline"];
points = [routeOverviewPolyline objectForKey:@"points"];
NSLog(@"points ==== %@",points);
GMSPath *path = [GMSPath pathFromEncodedPath:points];
polyline = [GMSPolyline polylineWithPath:path];
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeWidth = 5;
polyline.strokeColor=[UIColor redColor];
polyline.map = self.map_view;
}
else
{
}
});
}
else {
//Web server is returning an error
}
}
else {
// Fail
NSLog(@"error : %@", error.description);
}
}] resume];
}
polyline.map = self.map_view;
このコードでは、次の行でエラー表示
後に使用されるものコードがコメントした後、エラーを実行していません。 この行はコメントなしで実行してエラーを表示します。 -[MKMapView updateOverlay:]
ナビゲータ問題:この行では 'MKMapView *' から 'GMSMapView * _Nullable' に
を割り当てるpolyline.map = self.map_view;
互換性のないポインタ型はポリラインを描画する方法を提案してください。ありがとう
返信ありがとうございますが、AFHTTPNetworkの設定は使用されていません。なぜなら、私はXcodeでセットアップを試みてもうまくいきませんから。 –
ネットワーク設定をAFHTTPする必要はありません。サービス呼び出しメソッドを呼び出して上記のサービスを呼び出し、応答配列を取得します。 私はすでにライブプロジェクトでこのコードを使用しています。レビューを忘れることはありません。 –
あなたの - (void)setMapDataValue InViewDidLoadを呼び出す時間はどれですか? –