我有一个iphone应用程序,我想在地图上的两个位置之间绘制路线。这些位置由它们的坐标(纬度,经度)表示。
为了在这两个地点之间加载航点,我使用一个访问谷歌地图的脚本,使用这种方法:
function loadDirections(from, to, options) {
gdir.load("from: " + from + " to: " + to, options);
}
from
应采用以下格式:46.777248,23.59989
和to
也是如此: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];
应用程序阻止。我认为它不喜欢startPoint
和endPoint
格式化的方式。
重要提示:当我使用null
和startPoint
的{{1}}值调用上述方法时,该应用有效。
任何人都有任何想法? 我尽力解释清楚!!!!!我在这里,万一有些事情不清楚!
答案 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]]];
}