国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發之離線地圖核心代碼

2020-07-26 03:22:10
字體:
來源:轉載
供稿:網友

一,效果圖。


二,工程圖。


三,代碼。

ViewController.h

#import <UIKit/UIKit.h>#import <CoreLocation/CoreLocation.h>#import "MapLocation.h"@interface ViewController : UIViewController<MKMapViewDelegate>{  MKMapView *_mapView;  NSString *addressString;}@end 

ViewController.m

 #import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {  [super viewDidLoad];  // Do any additional setup after loading the view.  //調用系統自帶的高德地圖  //顯示當前某地的離線地圖  _mapView = [[MKMapView alloc] init];  _mapView.frame = CGRectMake(0, 40, 320,400);  _mapView.delegate = self;  _mapView.mapType = MKMapTypeStandard;  [self.view addSubview:_mapView];  addressString=@"光啟城";  NSLog(@"---addressString---%@",addressString);  [self geocodeQuery];}- (void)geocodeQuery{  if (addressString == nil || [addressString length] == 0) {    return;  }  CLGeocoder *geocoder = [[CLGeocoder alloc] init];  [geocoder geocodeAddressString:addressString completionHandler:^(NSArray *placemarks, NSError *error) {    NSLog(@"查詢記錄數:%ld",[placemarks count]);    if ([placemarks count] > 0) {      [_mapView removeAnnotations:_mapView.annotations];    }    for (int i = 0; i < [placemarks count]; i++) {      CLPlacemark* placemark = placemarks[i];      //調整地圖位置和縮放比例      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 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 

MapLocation.h

#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 

 MapLocation.m

//地圖調用函數#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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁阳县| 海阳市| 开化县| 普定县| 吉林省| 磐安县| 辽宁省| 麻城市| 中江县| 兴宁市| 连南| 江源县| 孟州市| 瑞丽市| 封丘县| 丰都县| 子长县| 永嘉县| 福建省| 象州县| 松滋市| 衢州市| 灵寿县| 咸阳市| 闽侯县| 大方县| 石林| 婺源县| 顺义区| 苍梧县| 东乡族自治县| 汤阴县| 蕲春县| 金门县| 福清市| 康保县| 鲜城| 安阳市| 沙坪坝区| 尼木县| 铜鼓县|