iOS.定位服务与地图应用.04.使用iOS苹果地图
2014-06-22 10:49
741 查看
#import <MapKit/MapKit.h> @interface MapLocation : NSObject<MKAnnotation> //街道信息属性 @property (nonatomic, copy) NSString *streetAddress; //城市信息属性 @property (nonatomic, copy) NSString *city; //州、省、市信息 @property (nonatomic, copy) NSString *state; //邮编 @property (nonatomic, copy) NSString *zip; //地理坐标 @property (nonatomic, readwrite) CLLocationCoordinate2D coordinate; @end
#import "MapLocation.h" @implementation MapLocation - (NSString *)title { return @"您的位置!"; } - (NSString *)subtitle { NSMutableString *ret = [NSMutableString new]; if (_state) [ret appendString:_state]; if (_city) [ret appendString:_city]; if (_city && _state) [ret appendString:@", "]; if (_streetAddress && (_city || _state || _zip)) [ret appendString:@" • "]; if (_streetAddress) [ret appendString:_streetAddress]; if (_zip) [ret appendFormat:@", %@", _zip]; return ret; } @end
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> #import "MapLocation.h" @interface T20140621234700ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtQueryKey; @property (weak, nonatomic) IBOutlet MKMapView *mapView; - (IBAction)geocodeQuery:(id)sender; @end
#import "T20140621234700ViewController.h" @interface T20140621234700ViewController () @end @implementation T20140621234700ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _mapView.mapType = MKMapTypeStandard; // _mapView.mapType = MKMapTypeSatellite; _mapView.delegate = self; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)geocodeQuery:(id)sender { if (_txtQueryKey.text == nil || [_txtQueryKey.text length] == 0) { return; } CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder geocodeAddressString:_txtQueryKey.text completionHandler:^(NSArray *placemarks, NSError *error) { NSLog(@"查询记录数:%i",[placemarks count]); if ([placemarks count] > 0) { [_mapView removeAnnotations:_mapView.annotations]; } for (int i = 0; i < [placemarks count]; i++) { CLPlacemark* placemark = placemarks[i]; //关闭键盘 [_txtQueryKey resignFirstResponder]; //调整地图位置和缩放比例 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(placemark.location.coordinate, 10000, 10000); [_mapView setRegion:viewRegion animated:YES]; MapLocation *annotation = [[MapLocation alloc] init]; annotation.streetAddress = placemark.thoroughfare; annotation.city = placemark.locality; annotation.state = placemark.administrativeArea; annotation.zip = placemark.postalCode; annotation.coordinate = placemark.location.coordinate; [_mapView addAnnotation:annotation]; } }]; } #pragma mark - #pragma mark Map View Delegate Methods - (MKAnnotationView *) mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>) annotation { MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:@"PIN_ANNOTATION"]; if(annotationView == nil) { annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PIN_ANNOTATION"]; } annotationView.pinColor = MKPinAnnotationColorPurple; annotationView.animatesDrop = YES; annotationView.canShowCallout = YES; return annotationView; } - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { _mapView.centerCoordinate = userLocation.location.coordinate; } - (void)mapViewDidFailLoadingMap:(MKMapView *)theMapView withError:(NSError *)error { NSLog(@"error : %@",[error description]); } @end
相关文章推荐
- iOS定位服务与地图开发(5)---使用程序外地图之调用iOS 6苹果地图
- iOS.定位服务与地图应用.06.调用iOS苹果地图
- iOS定位服务与地图开发(6)---使用程序外地图之调用谷歌Web地图
- iOS定位服务与地图开发(7)---使用本地化的百度地图
- iOS.定位服务与地图应用.03.地理信息编码查询
- iOS.定位服务与地图应用.02.地理信息反编码
- iOS.定位服务与地图应用.01.定位服务编程
- iOS.定位服务与地图应用.05.跟踪用户位置变化
- ios-使用ios 6苹果地图定位和跟踪
- iOS.定位服务与地图应用.07.调用谷歌Web地图
- 判断一个坐标点是否在一个无规则的多边形内 (iOS定位服务与地图应用开发:高德地图开发)
- 苹果要求开发者使用最新的iOS 8和OS X Yosemite测试版开发集成云端服务的应用
- IOS使用内置地图,定位应用开发
- ios 里如何判断当前应用的定位服务是否可用
- iOS 6苹果地图应用(MapKit)-打开外部应用
- IOS之地图和定位应用开发
- iOS开发之地图和定位应用开发
- IOS之地图和定位应用开发
- IOS 地图定位,标记位置,获取经纬度,MKMapView的使用
- iOS 6苹果地图应用(MapKit)-打开外部应用(导航)