地图与位置服务笔记-创新互联
//第一步:创建标注Annotation类,实现MKAnnotation协议
站在用户的角度思考问题,与客户深入沟通,找到台安网站设计与台安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、网络空间、企业邮箱。业务覆盖台安地区。#import "ViewController.h"
#import "AnnotationModel.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
manager = [[CLLocationManager alloc] init];
[manager requestAlwaysAuthorization];
MKMapView *mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
mapView.delegate = self;
//设置地图类型
mapView.mapType = MKMapTypeStandard;
//设置当前用户的位置
mapView.showsUserLocation = YES;
//设置经纬度
CLLocationCoordinate2D center = {39.9145402256,116.1767592387};
//设置精确度,数值越大,显示的范围越大
MKCoordinateSpan span = {0.1,0.1};
//创建一个区域
MKCoordinateRegion region = {center,span};
//设置显示的区域
[mapView setRegion:region animated:YES];
[self.view addSubview:mapView];
//第二步:创建标注Annotation对象
CLLocationCoordinate2D coord1 = {39.9117669028,116.1933922217};
AnnotationModel *model1 = [[AnnotationModel alloc] initWithCoordinate:coord1];
model1.title = @"石景山公园";
model1.subtitle = @"北京石景山公园";
CLLocationCoordinate2D coord2 = {39.9261543081,116.1776545774};
AnnotationModel *model2 = [[AnnotationModel alloc] initWithCoordinate:coord2];
model2.title = @"苹果园";
model2.subtitle = @"石景山区苹果园";
CLLocationCoordinate2D coord3 = {39.8637359235,116.2854074940};
AnnotationModel *model3 = [[AnnotationModel alloc] initWithCoordinate:coord3];
model3.title = @"丰台公园";
model3.subtitle = @"丰台区丰台公园";
CLLocationCoordinate2D coord4 = {39.9128821069,116.3971393161};
AnnotationModel *model4 = [[AnnotationModel alloc] initWithCoordinate:coord4];
model4.title = @"故宫博物馆";
model4.subtitle = @"北京市故宫博物馆";
//第三步:将Annotation对象添加到MapView中
[mapView addAnnotation:model1];
[mapView addAnnotation:model2];
[mapView addAnnotation:model3];
[mapView addAnnotation:model4];
}
#pragma mark -MKMapViewDelegate
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
NSLog(@"userLocation:%@",userLocation);
}
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
NSLog(@"view is %@",view);
}
//第四步:最后实现MKMapViewDelegate协议方法,在该代理中创建MKPinAnnotationView标注视图
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id
{
NSLog(@"annotation:%@",annotation);
//自己的位置也是一个标注视图,它是一个属于MKUserLocation这么一个类
if ([annotation isKindOfClass:[MKUserLocation class]]) {
//如果满足条件,说明当前用户自己的位置,不需要我们设置标注视图
return nil;
}
static NSString *identifier = @"annotationView";
//MKPinAnnotationView是一个大头针视图
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView == nil) {
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:nil reuseIdentifier:identifier];
//设置大头针的颜色
annotationView.pinColor = MKPinAnnotationColorPurple;
//设置显示从天而降的动画
annotationView.animatesDrop = YES;
//是否显示标题视图
annotationView.canShowCallout = YES;
//设置辅助视图
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
//防止复用
annotationView.annotation = annotation;
return annotationView;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站名称:地图与位置服务笔记-创新互联
文章来源:http://ybzwz.com/article/gpppd.html