0

带有谷歌地图 api 的 iphone 项目:

我正在尝试实施航路点,以通过“通过”点或航路点获得更详细和自定义的路线。但是“JSON 表示”让我白发苍苍……

我通过谷歌搜索尝试了很多建议,但没有任何接缝可以工作,也没有人遇到完全相同的问题。无论如何它都返回null?我的想法是谷歌在 api 中改变了一些东西,但我找不到错误以及导致它的原因......

我真的希望有人知道如何解决这个问题。

我使用 kishikawakatsumis 作为参考 MapKit-Route-Directions。 https://github.com/kishikawakatsumi/MapKit-Route-Directions

调用是这样的:

 if ([wayPoints count] > 0) {
NSArray *routePoints = [NSArray arrayWithObject:mFirstCity.mCityName];
routePoints = [routePoints arrayByAddingObjectsFromArray:wayPoints];
routePoints = [routePoints arrayByAddingObject:destination];
[mDirections loadFromWaypoints:routePoints options:options];
} else {
[mDirections loadWithStartPoint:mFirstCity.mCityName endPoint:destination options:options];
}

亲切的问候雅各布

4

1 回答 1

0

好的,我想出了一个解决方案。如果你和我有同样的情况,你可以用这个方法和另一个方法替换 loadFromWayPoints 方法:

- (void)loadFromWaypoints:(NSArray *)waypoints options:(UICGDirectionsOptions *)options {

NSString* msg = [NSString stringWithFormat:@"loadFromWaypoints(%@, %@)", [waypoints JSONRepresentation], [options JSONRepresentation]];
mstr = [msg retain];
[self performSelector:@selector(LFWP:)  withObject:msg afterDelay:1];

} - (void)LFWP:(NSString *)message { [googleMapsAPI stringByEvaluatingJavaScriptFromString:message];

}

我还在 NSOBJECT+SBJSON.m 的 if 中添加了一个 (!)

- (NSString *)JSONRepresentation {
SBJsonWriter *jsonWriter = [SBJsonWriter new];    
NSString *json = [jsonWriter stringWithObject:self];
if (!json)
    NSLog(@"-JSONRepresentation failed. Error trace is: %@", [jsonWriter errorTrace]);
[jsonWriter release];
return json;

}

原因是(我的解释)json/google 调用需要一点时间才能获取数据并将它们取回......我不确定那是正确的,但它现在可以工作了。

我希望它可以帮助某人...

于 2013-09-03T10:55:28.357 回答