Итак, я использую API-интерфейс направлений в своем приложении. Однако, когда я декодирую полилинию из ответа, она не отображается правильно. Вот мой код:Google Maps декодирован GMSPath неверный iOS
//Construct request URL
NSString *urlString = [NSString stringWithFormat:
@"%@?origin=%f,%f&destination=%f,%f&sensor=true&key=%@",
@"https://maps.googleapis.com/maps/api/directions/json",
userMarker.position.latitude,
userMarker.position.longitude,
place.coordinate.latitude,
place.coordinate.longitude,
@"AIzaSyDrtHA-AMiVVylUPcp46_Vf1eZJJFBwRCY"];
NSURL *directionsURL = [NSURL URLWithString:urlString];
//Get directions in JSON format
dispatch_async(dispatch_get_main_queue(), ^{
NSData* data = [NSData dataWithContentsOfURL:directionsURL];
NSError* error;
if(data){
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
//Parse JSON and plot route on map
NSDictionary *routes = [json objectForKey:@"routes"][0];
NSDictionary *route = [routes objectForKey:@"overview_polyline"];
NSString *overview_route = [route objectForKey:@"points"];
//Clear map from previous polylines
[self.mapView clear];
//Make polyline
GMSPath *path = [GMSPath pathFromEncodedPath:overview_route];
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeWidth = 4;
polyline.strokeColor = [UIColor darkGrayColor];
polyline.map = self.mapView;
});
А вот ломаная:
Как вы можете, видеть, что это не по пути правильно. Тем не менее, мне кажется, что недостаточно очков, чтобы иметь надлежащие изгибы.
EDIT: Это происходит только 50% времени, иногда оно отображается правильно, иногда это не так.
Что я могу делать неправильно?
Спасибо, но как это работает отлично в 50% случаев? –
Я предполагаю, что overview_polyline настроен только на упрощенную версию пути, если полный путь слишком сложный (например, над некоторым количеством точек). –
Я думаю, вы правы! Благодаря! Поскольку состояние Документов Google: я думаю, вы правы! Благодаря! Поскольку состояние Документов Google: «overview_polyline содержит объект с одной точкой, который содержит кодированное представление полилинии маршрута. Эта полилиния является приблизительным (сглаженным) путем результирующих направлений». –