我正在尝试通过谷歌地方API在iPhone应用程序上完成特定国家的美食场所,意味着墨西哥食物,西班牙美食,泰国美食,印度美食。 我怎样才能做到这一点??我看到支持的类型,其中只有食物,餐馆等。除了每当我使用这个查询..
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];
正如我告诉我的应用程序崩溃这个错误可能是我在做错了网址。
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'data parameter is nil' * 第一次抛出调用堆栈:(0x13be022 0x200fcd6 0x1366a48 0x13669b9 0xbadfad 0x2dd2 0x13bfe42 0xaa09df 0x139294f 0x12f5b43 0x12f5424 0x12f4d84 0x12f4c9b 0x15d47d8 0x15d488a 0x17a626 0x236d 0x22d5) 终止调用抛出异常(lldb)
有人可以指导我吗?我希望我清楚所有的观点。
谢谢&问候, Malhaar
答案 0 :(得分:0)
您正在尝试使用Places API Textsearch,因为您正在使用query
参数。如果这是正确的,请确保您正在使用正确的后端:
maps.googleapis.com/maps/api/place/的 TEXTSEARCH 强> / JSON
还要确保使用正确的参数指定类型:
<强>类型强> =食品|餐厅|建立
我建议您通过浏览器彻底阅读documentation并执行一些test html requests,以确保在将其插入应用程序之前有正确的请求。
答案 1 :(得分: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
作为网址。
希望能为你解决这个问题!