问题与iphone NSString

时间:2011-09-28 11:57:48

标签: iphone nsstring google-api

我有一个iphone应用程序,我想在地图上的两个位置之间绘制路线。这些位置由它们的坐标(纬度,经度)表示。

为了在这两个地点之间加载航点,我使用一个访问谷歌地图的脚本,使用这种方法:

function loadDirections(from, to, options) {
        gdir.load("from: " + from + " to: " + to, options);
    }

from应采用以下格式:46.777248,23.59989to也是如此:44.437711,26.097367

换句话说,如果我这样写这个方法:

   function loadDirections(from, to, options) {

        gdir.load("from:46.777248,23.59989 to:44.437711,26.097367 ", options);
    }
一切都很顺利。

现在,进入我的iPhone应用程序....这就是我称之为这种方法的方式:

[directions loadWithStartPoint:startPoint endPoint:endPoint options:options];

- (void)loadWithStartPoint:(NSString *)startPoint endPoint:(NSString *)endPoint options:(UICGDirectionsOptions *)options {
    [googleMapsAPI stringByEvaluatingJavaScriptFromString:
     [NSString stringWithFormat:@"loadDirections('%@', '%@', %@)", startPoint, endPoint, [options JSONRepresentation]]];
}

换句话说,startPoint应该包含第一个位置的坐标,如下所示:

46.777248,23.59989和endPoint应具有相同的格式。

因此,在我的iphone应用中,我会收到startPoint以及endPoint的纬度和经度,并且为了将它们置于请求的表单下,我有:

    NSString *startPoint;
        NSString *endPoint;

startPoint = [NSString stringWithFormat:@"%@,%@", latitudeString, longitudeString];
endPoint = [NSString stringWithFormat:@"%@,%@", partenaire_lat, partenaire_lng];

但是当我通过这个

调用javascript时
options.travelMode = UICGTravelModeDriving;
    [directions loadWithStartPoint:startPoint endPoint:endPoint options:options];

应用程序阻止。我认为它不喜欢startPointendPoint格式化的方式。

重要提示:当我使用nullstartPoint的{​​{1}}值调用上述方法时,该应用有效。

任何人都有任何想法? 我尽力解释清楚!!!!!我在这里,万一有些事情不清楚!

2 个答案:

答案 0 :(得分:1)

我认为这可以解决您的问题,

NSString * startPoint;         NSString * endPoint;

startPoint = [NSString stringWithFormat:@“%@,%@”,latitudeString,longitudeString]; endPoint = [NSString stringWithFormat:@“%@,%@”,partenaire_lat,partenaire_lng];

[startPoint retain]; [endPoint retain];

答案 1 :(得分:0)

我认为这是因为您在坐标周围添加单引号。当你在函数loadDirections中连接字符串时(假设这是一个javascript函数),它们会被保留。

另外,在loadDirections之后,您有以后的空格,不知道这是否很重要。

尝试

- (void)loadWithStartPoint:(NSString *)startPoint endPoint:(NSString *)endPoint options:(UICGDirectionsOptions *)options {
    [googleMapsAPI stringByEvaluatingJavaScriptFromString:
     [NSString stringWithFormat:@"loadDirections(%@, %@, %@)", startPoint, endPoint, [options JSONRepresentation]]];
}