-1

你好朋友 谷歌地图SDK

我是 ios 新手,正在研究 GOOGLE-MAP-SDK。一切进展顺利,但在这种情况下我无法使用注释,因此我无法找到我从谷歌的 placeAPI 获取的位置。所以请帮我解决我的错误。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~

代码文件

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~

-(IBAction)search:(id)sender
{

    NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=30.7343000,76.7933000&radius=500&types=food&name&sensor=true&key=AIzaSyCGeIN7gCxU8baq3e5eL0DU3_JHeWyKzic"];

     //Formulate the string as URL object.
     NSURL *googleRequestURL=[NSURL URLWithString:url];

     // Retrieve the results of the URL.
     dispatch_async(kBgQueue, ^{
          NSData* data = [NSData dataWithContentsOfURL: googleRequestURL];
          [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
    });
}

- (void)fetchedData:(NSData *)responseData {
    //parse out the json data
    NSError* error;
    NSDictionary* json = [NSJSONSerialization
                      JSONObjectWithData:responseData

                      options:kNilOptions
                      error:&error];

    //The results from Google will be an array obtained from the NSDictionary object with the key "results".
    NSArray* places = [json objectForKey:@"results"];

    //Write out the data to the console.
    NSLog(@"Google Data: %@", places);

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~

这是我将从中接收数据并希望将其显示在 googlemap 上的代码。NSLog(@"谷歌数据:%@", 地点); 正在给我输出...

4

1 回答 1

1
...
        NSArray *markerForplaces = [NSMutableArray arrayWithCapacity:[responseResults count]];
        for (NSDictionary *dict in responseResults) {
            GMSMarker *markerForplace = [self markerForGooglePlaceFromDictionary:dict error:nil];
            if (markerForplace) {
                [markerForplaces addObject:markerForplace];
                                    markerForplace.map = self.mapView;
            }
        }
...

- (GMSMarker*)markerForGooglePlaceFromDictionary:(NSDictionary*)dict {
         CLLocationCoordinate2D coordinate = [self coordinateForPlace:dict];
         GMSMarker *marker = [GMSMarker markerWithPosition:coordinate];
         marker.userInfo = dict; //save place
}


- (CLLocationCoordinate2D)coordinateForPlace:(NSDictionary*)dictionary {
    NSDictionary *geo = [dictionary objectForKey:@"geometry"];
    if ([geo isKindOfClass:[NSDictionary class]]) {
        NSDictionary *loc = [geo objectForKey:@"location"];
        if ([loc isKindOfClass:[NSDictionary class]]) {
            NSString *lat = [loc objectForKey:@"lat"];
            NSString *lng = [loc objectForKey:@"lng"];
            return CLLocationCoordinate2DMake([lat doubleValue], [lng doubleValue]);
        }
    }
    return CLLocationCoordinate2DMake(0, 0);
}
于 2013-10-24T06:36:15.517 回答