2011-09-28 85 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]]]; 
}