2016-03-08 2 views
0

Я хочу нарисовать маршрут от точки A до пункта B на моем mapView (GMSMapView).Нарисуйте маршрут на GMSMapView (SDK для Google Maps iOS)

Я попытался сделать это следующим образом:

GMSMutablePath *path=[GMSMutablePath path]; 
    [path addCoordinate:self.locationManager.location.coordinate]; 
    [path addCoordinate:marker.position]; 

    GMSPolyline *rectangle=[GMSPolyline polylineWithPath:path]; 
    rectangle.strokeWidth=2.f; 
    rectangle.map=self.mapView; 

Но он просто нарисовал линию, которая соединяет точки А в точку Б, но не сам маршрут (направления через улицу, дороги и т.д. ...).

Я хочу нарисовать на карте лучший способ добраться до пункта B от точки A пешком.

Как я могу это сделать?

Спасибо!

+0

Глубокое погружение в Google Directions API (https://developers.google.com/maps/documentation/directions/intro#DirectionsRequests) для ответа – Hima

+0

@ Хима Можете ли вы дать мне пример кода, как я могу это сделать? Спасибо! –

+0

Они уже дали запрос о том, как вы можете называть API направлений, найдите «https://maps.googleapis.com/maps/ api/direction/json? origin = sydney, au & destination = perth, au & waypoints = via: -37.81223% 2C144.96254% 7C-34.92788% 2C138.60008 & key = YOUR_API_KEY "в ** Путевые точки ** тема на этой странице. – Hima

ответ

0

Использовать API ориентации google. Отправьте исходное начало и место назначения на него, используя NSURLConnection или любую другую стороннюю библиотеку, такую ​​как AFNetworking и т. Д. Получите ответ в XML или JSON и проанализируйте его.

0

{ dispatch_async (dispatch_get_main_queue()^{

 PlayBackObject *displayobj=[[PlayBackObject alloc]init]; 

     displayobj=[playBackMutArray objectAtIndex:0]; 

     double distanceLatitude = [displayobj.latitudeStr doubleValue]; 
     double distanceLongtitude =[displayobj.longitudeStr doubleValue]; 

     CLLocationDegrees lat = distanceLatitude; 
     CLLocationDegrees lon =distanceLongtitude; 

     GMSCameraPosition* camera = [GMSCameraPosition 
            cameraWithLatitude:lat 
            longitude:lon 
            zoom: 9]; 


     GMSMapView *ListAlertMultimap; 



      ListAlertMultimap =[GMSMapView mapWithFrame: CGRectMake(0, 0, 414,736) camera: camera]; 
      [GmapPlayView addSubview:ListAlertMultimap]; 



      path = [GMSMutablePath path]; 

     for (int i = 0; i < [playBackMutArray count]-1; i++) 

     { 

      double lat = [[[playBackMutArray objectAtIndex:i]valueForKey:@"latitudeStr" ] doubleValue]; 
      double lng = [[[playBackMutArray objectAtIndex:i]valueForKey:@"longitudeStr" ] doubleValue]; 

      marker = [[GMSMarker alloc] init]; 

      marker.position = CLLocationCoordinate2DMake(lat,lng); 

      marker.appearAnimation = kGMSMarkerAnimationPop; 
      NSString *title=[[playBackMutArray objectAtIndex:i]valueForKey:@"trackeridStr"]; 
      NSString *speed=[[playBackMutArray objectAtIndex:i]valueForKey:@"speedStr"]; 
      NSString *direction=[[playBackMutArray objectAtIndex:i]valueForKey:@"directionStr"]; 

      marker.title=[NSString stringWithFormat:@"Tracker ID : %@",title]; 
      marker.snippet=[NSString stringWithFormat:@"Speed : %@km/hr Direction : %@",speed,direction]; 

//   marker.icon = [UIImage imageNamed:@"marker_start"]; 

      [ListAlertMultimap setMinZoom:2 maxZoom:25]; 
      marker.map = ListAlertMultimap; 

      [path addLatitude:lat longitude:lng]; 
     } 
      NSLog(@"Direction path"); 
      polyline = [GMSPolyline polylineWithPath:path]; 
      polyline.strokeColor = [UIColor blueColor]; 
      polyline.strokeWidth = 5.f; 
      polyline.map=ListAlertMultimap; 

    }); 

} 
+0

Это сработало для меня –

Смежные вопросы