Google方向Json错误

时间:2012-12-19 16:36:23

标签: objective-c json

我正在尝试使用Google方向获取路线,但我收到此错误:

  

错误Domain = org.brautaset.JSON.ErrorDomain Code = 3 \“无法识别   主角(41)\

这是Json

loadDirections('Avenida Paulista', 'Rua Augusta', { 'locale': 'en', travelMode: G_TRAVEL_MODE_WALKING, avoidHighways: false, getPolyline: true, getSteps: true, preserveViewport: false})

什么是错的?什么无法识别的主角(41)是什么意思?

 - (void)loadWithStartPoint:(NSString *)startPoint endPoint:(NSMutableArray *)endPoints options:(UICGDirectionsOptions *)options {
for (int idx = 0; idx < [endPoints count];idx ++) 
{
    NSString* msg = [NSString stringWithFormat:@"loadDirections('%@', '%@', %@)", startPoint, [endPoints objectAtIndex:idx], [options JSONRepresentation]];
    NSLog(@"msg %@",msg);
    mstr = [msg retain];
    [self performSelector:@selector(loadDirections:)  withObject:nil afterDelay:0.5];
}
}
 -(void)loadDirections:(NSString *)message
{
[googleMapsAPI stringByEvaluatingJavaScriptFromString:mstr];

}

2 个答案:

答案 0 :(得分:1)

JSON无效。

{ 
  'locale': 'en', 
  travelMode: "G_TRAVEL_MODE_WALKING", 
  avoidHighways: false, 
  getPolyline: true, 
  getSteps: true, 
  preserveViewport: false
}

我认为这与G_TRAVEL_MODE_WALKING有关,它应该在引号中。唯一有效的JSON值如下

  • 对象({}
  • 数组([]
    • 字符串("this is a string"
    • 号码1/-1
    • true
    • false
    • null

JSON Documentation

答案 1 :(得分:1)

确保在初始化GDirections对象时,还将实际元素作为第二个参数传递。

documentation中所述:

  

旅行方式,例如驾驶(默认)或步行。请注意,如果   如果指定行走方向,则需要指定面板   向用户发出警告通知。

如果您使用的是Map-Kit-Route-Directions extensions,则只需打开 api.html 文件,然后在第16行替换

gdir = new GDirections(null, null);

用这个

gdir = new GDirections(null, "body");