修罗刹官网,3996论坛,异界血妖
一,效果图。
二,工程图。
三,代码。
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
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能
网友评论