如何在iOS中的Google Map SDK中添加搜索功能?

时间:2015-01-29 07:51:28

标签: ios objective-c google-maps google-search-api

我是iOS开发中的新手和谷歌地图SDK的新手我想通过谷歌地图的URL架构在我的应用程序中放置搜索功能如果可能那么可能请给我这个或任何资源的解决方案它。 感谢。

3 个答案:

答案 0 :(得分:1)

您需要使用Google Maps Geocoding API,而不能仅使用Google Maps iOS SDK本身。

  

地理编码是转换地址的过程(如“1600”   Amphitheatre Parkway,Mountain View,CA“)进入地理坐标   (如纬度37.423021和经度-122.083739),您可以使用   放置标记或定位地图。

用户可以输入任何类型的地址,地理编码API将返回特定的坐标,以便您可以在地图上显示。

答案 1 :(得分:1)

与其他答案建议一样,您需要使用The Google Geocoding API

基本上,您需要向api发送请求并从返回的JSON对象中解析所需的信息(您也可以使用XML)。

非常从api接收json响应的基本示例:

- (void)sendGeoCodingRequest:(NSString *)parameters {


    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        NSString *query = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=%@" YOUR_KEY];
        NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[[NSURL alloc] initWithString:[query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];

        NSError *error;
        NSURLResponse *response;
        NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;

        if (httpResponse.statusCode != 200 || error || ![data length]) {
            NSLog(@"Error fetching auto complete results: %@", error);
        } else {

            // parse the json and do something with the result
            NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
        }
    });
} 

只需按照Google地理编码API说明操作,希望代码段可以加快速度。

答案 2 :(得分:0)

你需要:

The Google Geocoding API

Google Maps API Web Services

适用于iOS的Google Maps SDK