2011-09-28 86 views
2

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

对于加载我使用存取权限谷歌地图的脚本,用这种方法这两个位置之间的航路点:

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]; 

应用blocks.I假设它不喜欢startPointendPoint被格式化的方式。

重要提示:当我通过nullstartPointendPoint的值调用上述方法时,该应用可以正常工作。

任何人有任何想法? 我尽我所能解释清楚!!!!!我在这里以防万一有些事情不清楚!

+0

如果你记录你发送给'stringByEvaluatingJavascriptFromString'的字符串,你会看到什么? – jrturton

+0

在你的endPoint,partenaire_lat和partenaire_lng也字符串?如果没有,%@应该是%f – phi

+0

@Irene bith是字符串 – adrian

回答

1

我想这可能解决您的问题,

的NSString *的startPoint; NSString * endPoint;

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

[startPoint retain]; [endPoint retain];

0

我认为这是因为你正在围绕坐标添加单引号。当你连接你的函数loadDirections中的字符串(假设这是一个javascript函数)时,这些会得到保留。

此外,您有一个空间后:和你的loadDirections,不知道这是否重要。

尝试

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