• iOS 根据经纬度反查 地名


    在iOS中 
    定位自己的当前位置,知道经纬度很简单,然后有些时候要知道地名,apple 也有了现成的api直接调用就可以(以下方法是iOS5.0以上的,现在基本都忽略了 iOS5.0以下的设备)

    #pragma mark -
    #pragma mark CLLocationManagerDelegate
     
    - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
     
      
       CLGeocoder *geocoder=[[CLGeocoder alloc] init];
        [geocoder reverseGeocodeLocation:newLocation
                       completionHandler:^(NSArray *placemarks,
                                           NSError *error)
        {
            CLPlacemark *placemark=[placemarks objectAtIndex:0];
            NSLog(@"name:%@
     country:%@
     postalCode:%@
     ISOcountryCode:%@
     ocean:%@
     inlandWater:%@
     locality:%@
     subLocality:%@ 
     administrativeArea:%@
     subAdministrativeArea:%@
     thoroughfare:%@
     subThoroughfare:%@
    ",
                  placemark.name,
                  placemark.country,
                   placemark.postalCode,
                   placemark.ISOcountryCode,
                   placemark.ocean,
                   placemark.inlandWater,
                   placemark.administrativeArea,
                   placemark.subAdministrativeArea,
                  placemark.locality,
                   placemark.subLocality,
                   placemark.thoroughfare,
                   placemark.subThoroughfare);
         }];
    	if (wasFound) return;
        wasFound = YES;
        
    	CLLocationCoordinate2D loc = [newLocation coordinate];
    	
    	strLatitude = [NSString stringWithFormat: @"%f", loc.latitude];
    	strLongitude = [NSString stringWithFormat: @"%f", loc.longitude];
    	
    	NSLog(@"strLatitude==%@,strLongitude==%@",strLatitude,strLongitude);
    	 
    }
    

     log 是:

     name:市民广场
     country:中国
     postalCode:(null)
     ISOcountryCode:CN
     ocean:(null)
     inlandWater:(null)
     locality:广东省
     subLocality:(null) 
     administrativeArea:深圳市
     subAdministrativeArea:福田区
     thoroughfare:市民广场
     subThoroughfare:(null)

    第二种方法就是 我们已经知道了一个经纬度 然后反查地名:

    自己写个方法:

    -(void)change{
        //22.540681,=114.061324
        CLLocationCoordinate2D coordinate;
        coordinate.latitude =  22.540681;
        coordinate.longitude = 114.061324;
        CLLocation *newLocation=[[CLLocation alloc]initWithLatitude:coordinate.latitude longitude: coordinate.longitude];
        CLGeocoder *geocoder=[[CLGeocoder alloc] init];
        [geocoder reverseGeocodeLocation:newLocation
                       completionHandler:^(NSArray *placemarks,
                                           NSError *error)
         {
             CLPlacemark *placemark=[placemarks objectAtIndex:0];
             NSLog(@"我我的:%@
     country:%@
     postalCode:%@
     ISOcountryCode:%@
     ocean:%@
     inlandWater:%@
     locality:%@
     subLocality:%@ 
     administrativeArea:%@
     subAdministrativeArea:%@
     thoroughfare:%@
     subThoroughfare:%@
    ",
                   placemark.name,
                   placemark.country,
                   placemark.postalCode,
                   placemark.ISOcountryCode,
                   placemark.ocean,
                   placemark.inlandWater,
                   placemark.administrativeArea,
                   placemark.subAdministrativeArea,
                   placemark.locality,
                   placemark.subLocality,
                   placemark.thoroughfare,
                   placemark.subThoroughfare);
         }];
    
    }

    nslog 的结果和上面的一样。

  • 相关阅读:
    是男人就下100层【第二层】——帮美女更衣(1)
    是男人就下100层【第一层】——高仿微信界面(10)
    禁用JavaScript控制台调试
    是男人就下100层【第一层】——高仿微信界面(9)
    我的书单
    JSP判断移动设备
    是男人就下100层【第一层】——高仿微信界面(8)
    是男人就下100层【第一层】——高仿微信界面(7)
    是男人就下100层【第一层】——高仿微信界面(6)
    psd缩略图生成上传解决方案
  • 原文地址:https://www.cnblogs.com/zhaoguowen/p/4186295.html
Copyright © 2020-2023  润新知