2012-07-29 61 views
-1

我正試圖通過iPhone應用程序的谷歌地方API來實現國家特定美食的地方,像墨西哥食物,西班牙食物,泰國食物,印度食物等。 我該怎麼做?當我看到支持的類型時,它只有食物,餐館等。除了每當我使用此查詢..我如何查詢國家特定美食的谷歌地點?

NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=%@&type=restaurant&query=%@&sensor=true&key=%@", currentCentre.latitude, currentCentre.longitude, [NSString stringWithFormat:@"%i", currenDist], googleType, kGOOGLE_API_KEY]; 

我只得到很少的結果,每當我試圖增加更多類型,如食品|餐廳|建立類似下面的查詢我的應用程序崩潰。

NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=%@&type=food|restaurant|establishment&query=%@&sensor=true&key=%@", currentCentre.latitude, currentCentre.longitude, [NSString stringWithFormat:@"%i", currenDist], googleType, kGOOGLE_API_KEY]; 

正如我告訴我的應用程序崩潰與此錯誤可能是我做了一些URL與錯誤。

*終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',理由是: '數據參數是零' *第一擲調用堆棧:(0x13be022 0x200fcd6 0x1366a48 0x13669b9 0xbadfad 0x2dd2 0x13bfe42 0xaa09df 0x139294f 0x12f5b43 0x12f5424 0x12f4d84 0x12f4c9b 0x15d47d8 0x15d488a 0x17a626 0x236d 0x22d5) 終止叫做拋出異常(LLDB)

請能有人指導我這個?我希望我清除所有的要點。

感謝&問候, Malhaar

回答

0

您似乎在試圖爲您所使用的query參數使用Places API TEXTSEARCH。如果這是正確的。確保你打正確的後端:

maps.googleapis.com/maps/api/place/ TEXTSEARCH/JSON

還要確保您使用的是正確的參數指定類型:

類型 =食品|餐廳|建立

我建議您仔細閱讀documentation,並通過瀏覽器執行幾個test html requests,以確保在將其插入應用程序之前有正確的請求。

0

儘管這已經快7個月了,而且我相信你現在已經解決了這個問題或者放棄了這個問題,但我剛剛遇到了同樣的問題,並且需要一些解決方案。我想我會把答案放在這裏,以幫助任何其他人有類似的錯誤。

我發現的問題是URL編碼不喜歡|字符。

圍繞它的方式,我發現是:

// Create an NSString with the URL which includes the '|' characters. 
NSString * urlString = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.189781,-114.488907&radius=6918&types=food|bar&keyword=&sensor=true&key=YOUR KEY HERE"; 

// Encode the URL 
NSString* encodedURLString = [urlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 

// Covert to a NSURL 
NSURL *googleRequestURL=[NSURL URLWithString:encodedURLString]; 

然後使用googleRequestURL作爲URL。

希望能爲您解決它!

相關問題