gpt4 book ai didi

执行本地商业搜索的 iPhone Mapkit 应用程序

转载 作者:行者123 更新时间:2023-12-03 20:48:29 24 4
gpt4 key购买 nike

使用 makkit 框架开发 iPhone 应用程序。我已将 map View 集成到应用程序中。需要一些有关使用某些 api 在某个区域(本地搜索)执行搜索的帮助,我尝试探索 google java-script API 和 ajax api,但无法指出我的解决方案,任何帮助将不胜感激。

最佳答案

下面是我用于 google 搜索 API 的部分代码。您需要访问 Google Labs API 并获取可用于搜索的 key 。还有一个 GData 库,但我很难让它用于本地搜索,所以我只使用了 HTML/JSON 版本。我的代码向您展示了如何开始解码返回的 JSON,我切断了循环,因为它执行了许多其他操作。

这是指向 Google AJAX APi 的链接.

我建议进行 API 调用,然后设置一个断点,您可以在其中查看返回的 JSON 结果字典,以了解其结构。

NSString *searchString = 
[NSString stringWithFormat:@"http://ajax.googleapis.com/ajax/services/search/local?v=1.0&sll=%f,%f&q=%@",
currentLocation.establishedLocation.coordinate.latitude,
currentLocation.establishedLocation.coordinate.longitude,
searchTerms];
searchString = [searchString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // encode it
//NSString *localSearchResults = [NSString stringWithContentsOfURL:[NSURL URLWithString:searchString]];
NSError *error = nil;

NSString * localSearchResults = [NSString stringWithContentsOfURL:[NSURL URLWithString:searchString] encoding:NSUTF8StringEncoding error:&error];

if (error != nil) {
NSLog(@"Error retrieving map search results in ActivityLocationViewControler::lookupSearchTerms: ");
NSLog(@"%s %d %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__); // http://stackoverflow.com/questions/969130/nslog-tips-and-tricks/969272
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}


else {

NSData *jsonData = [localSearchResults dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSError *error = nil;
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];

// we now magically have an array of results from our search. Each result has a bunch of data.
NSArray *resultsArray = [[dictionary objectForKey:@"responseData"] objectForKey:@"results"] ;
//NSArray *resultsArray = [dictionary objectForKey:@"responseData"];

CLLocationCoordinate2D curCoordinate;
NSDictionary *currentResult;
BOOL skipThisEntry;

for (int i = 0; i < [resultsArray count]; i++) {
currentResult = [resultsArray objectAtIndex:i]; // this is a dictionary of this result

curCoordinate.latitude = [(NSString *) [currentResult objectForKey:@"lat"] doubleValue] ;
curCoordinate.longitude = [(NSString *) [currentResult objectForKey:@"lng"] doubleValue] ;

关于执行本地商业搜索的 iPhone Mapkit 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3405052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com