谷歌-根据经纬度获取地址

API文档

https://developers.google.com/maps/documentation/geocoding/?hl=zh-CN#ReverseGeocoding

实际查询地址

http://maps.googleapis.com/maps/api/geocode/json?latlng=31.186680,121.619644&sensor=true

返回json数据把上述地址在浏览器中即可显示。

ios解析地址的问题:

如果只要获取城市名称,通过返回的数据可以看的出,倒数第一级是国家、倒数第二是省份、倒是第三是城市:

所以如果要获取城市名称,可以用下面方法:

        
        TTURLJSONResponse *response = request.response;
        NSDictionary *dict=response.rootObject;
        [BTProjectUtil showLog:@"dict description : %@",[dict description]];
        
        NSString *status =StringEmpty;
        status =[dict objectForKey:@"status"];
        
        if ([status isEqualToString:@"OK"]) {
            
            NSArray *array =[dict arrayForKey:@"results"];
            
            NSDictionary *dict_1 = [array objectAtIndex:([array count] - 3)];
            
            NSArray *array_1 =[dict_1 arrayForKey:@"address_components"];
            
            NSDictionary *dict_2 = [array_1 objectAtIndex:0];
            
            NSString *short_name = [dict_2 objectForKey:@"short_name"];
            
            [BTProjectUtil showLog:@"===%@",short_name];
            
            [hotelCity setText:short_name];
            
            //如果要按照级别显示当前的位置,可以用下面的方法
//            for (int i=0; i < [array count]; i++) {
//                
//                NSDictionary *dict_1 = [array objectAtIndex:i];
//                
//                NSArray *array_1 =[dict_1 arrayForKey:@"address_components"];
//                
//                NSDictionary *dict_2 = [array_1 objectAtIndex:0];
//                
//                NSString *short_name = [dict_2 objectForKey:@"short_name"];
//                
//                [BTProjectUtil showLog:@"===%@",short_name];
//                
//            }
        }
 

猜你喜欢

转载自gaobusi.iteye.com/blog/1616732