IOS中定位当前所在城市

原创 2013年12月03日 10:18:57

在项目中要用到定位所在地的功能,这里大致说下我的做法:

首先要使用定位,需要在所在的类#import <MapKit/MapKit.h>  ,然后继承协议CLLocationManagerDelegate,在.h类定义CLLocationManager* _locationManager;

CLGeocoder*  _currentCityGeocoder;


在.m类中实现:   

     _currentCityGeocoder = [[CLGeocoder alloc] init];
       _locationManager = [[CLLocationManager alloc] init];
       _locationManager.delegate = self;
     _locationManager.distanceFilter = 1000.0f;//用来控制定位服务更新频率。单位是“米”
       _locationManager.desiredAccuracy = kCLLocationAccuracyBest;//这个属性用来控制定位精度,精度越高耗电量越大。
      [_locationManager startUpdatingLocation];
然后实现代理方法:

#pragma mark - mapDelegate
 -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
 [_locationManager stopUpdatingLocation];
 NSString *strLat = [NSString stringWithFormat:@"%.4f",newLocation.coordinate.latitude];
 NSString *strLng = [NSString stringWithFormat:@"%.4f",newLocation.coordinate.longitude];
 NSLog(@"Lat: %@  Lng: %@", strLat, strLng);
 [_currentCityGeocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {
 CLPlacemark* placeMark = [placemarks objectAtIndex:0];
 NSString*  currentCityStr = [placeMark locality];
 NSLog(@"当前省份为:%@",placeMark.administrativeArea);
 NSLog(@"当前城市为:%@",currentCityStr);
 _currentLocationLabel.text = [placeMark.administrativeArea stringByAppendingFormat:@"  %@",currentCityStr];
 [self.progress dismiss];
 //        _locationLabel.text = placeMark.administrativeArea;
 // we have received our current location, so enable the "Get Current Address" button
 }];
 
 }
 - (void)locationManager:(CLLocationManager *)manager
 didFailWithError:(NSError *)error
 {
 // Failed to receive user's location
 
 NSString *errorMsg = nil;
 if ([error code] == kCLErrorDenied) {
 errorMsg = @"访问被拒绝";
 }
 if ([error code] == kCLErrorLocationUnknown) {
 errorMsg = @"获取位置信息失败";
 }
 
 UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Location"
 message:errorMsg delegate:self cancelButtonTitle:@"Ok"otherButtonTitles:nil, nil];
 [alertView show];
 }
这样即可实现简单的定位。

android定位并获取城市

在项目中需要定位当前用户所在城市,然后根据不同城市返回不同的数据。一般来说,定位有两种方式,1、用第三方的定位sdk,如百度定位;2、用android自带的sdk中的api定位。 一、用百度SDK定...
  • qq_24636637
  • qq_24636637
  • 2016年01月05日 11:26
  • 6261

iOS 手机定位 获取当前城市

先导入头文件 #import 我之前写的 一直没有走定位的代理方法 然后最后找到 原因是在 Info.plist文件中加 NSLocationWhenInUseUsageDescripti...
  • wangyan214
  • wangyan214
  • 2016年03月10日 17:28
  • 748

iOS定位获取城市名(ios自学笔记)

笔者是放在appdelegate里面请求的,需求是定位到当前城市 1、添加corelocation库,这个定位都要用到的,系统自带的 2、 #import 3、添加CLLo...
  • wangyang6275
  • wangyang6275
  • 2016年01月05日 10:17
  • 3587

iOS --- 使用CoreLocation获取当前所在城市等地理位置信息

在之前的一篇博客-CoreLocation — iOS中的位置信息中, 简单描述了CoreLocation的使用, 并获取经纬度信息. 接下来, 将要从地理位置信息中反向解析出当前所在城市等信息....
  • icetime17
  • icetime17
  • 2015年07月07日 14:06
  • 4370

根据IP定位用户所在城市信息

当我们在页面中填写个人资料中的省市信息时,页面会根据当前用户所在的城市自动选中省市下拉选项;当我们访问某个大型站点时,网站程序会自动进入到用户当前所在的城市频道。这些功能是如何实现的呢?今天我们来通过...
  • andy_jiangbin
  • andy_jiangbin
  • 2013年11月29日 11:30
  • 1639

百度地图定位之获取所在城市

不需要解释了,直接删代码吧,布局就不写了,里边只有一个textview,进入activity之后直接调用的百度地图public class mainActivity extends Activity ...
  • sinat_29874521
  • sinat_29874521
  • 2016年10月18日 13:28
  • 2102

【React Native】定位获取经纬度,当前城市等地址信息

最近做React Native时,需要用到城市定位的功能,React Native中文网的定位部分中也提供了相应的方法。主要用到的方法有: 这里只需要获取到经纬度,城市等信息,持续监听的函数就不需...
  • sinat_34693148
  • sinat_34693148
  • 2017年12月25日 14:03
  • 532

Android GSP定位获取经纬度并显示所在城市的名字(不用引入各种SDK)

Android GSP定位获取经纬度并显示所在城市的名字(不用引入各种sdk)  主要是通过GPS定位来获取经纬度,然后通过经纬度转换成所在的城市: package com.uucwerewolf...
  • qq_34908107
  • qq_34908107
  • 2016年11月15日 13:27
  • 2068

Android 通过外网IP定位城市

Android 通过外网IP定位城市有两种方法 方法一:通过获取外网IP地址,再通过聚合数据的IP定位API 进行城市定位 方法二:通过百度地图API进行定位 (无需添加SDK)方法一获取外网IP...
  • EthanCo
  • EthanCo
  • 2016年10月10日 13:42
  • 2216

一个用来定位当前城市的单例

整理了一个获取定位当前城市的单例类 ZWMapHelper.h#import #import #import //定位成功回调 typedef void(^ReturnCurrentCity)(...
  • zww1984774346
  • zww1984774346
  • 2016年03月08日 13:59
  • 1087
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS中定位当前所在城市
举报原因:
原因补充:

(最多只允许输入30个字)