美文网首页iOS 开发成长中心iOS Developer
iOS开发-- 高德地图的接入使用(2)地图显示

iOS开发-- 高德地图的接入使用(2)地图显示

作者: 爱吃鱼的小灰 | 来源:发表于2017-05-27 16:07 被阅读269次
     - (MAMapView *)mapView
    {
        if (_mapView == nil) {
            [AMapServices sharedServices].enableHTTPS = YES;// 开启https请求
            _mapView = [[MAMapView alloc]initWithFrame:CGRectMake(0,0, Screen_W, Screen_H)];
            _mapView.mapType = MAMapTypeStandard;// 设置地图模式
            _mapView.desiredAccuracy = kCLLocationAccuracyBest;// 设置定位精度
            _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
            [_mapView setZoomLevel:(12.0f) animated:YES];// 设置地图缩放级别
            _mapView.customizeUserLocationAccuracyCircleRepresentation = YES;//是否自定义用户位置精度圈
            _mapView.centerCoordinate = self.mapView.userLocation.coordinate;
            _mapView.pausesLocationUpdatesAutomatically = NO;
            _mapView.showsUserLocation = YES;
            _mapView.delegate = self;  
            _mapView.rotateEnabled = NO;
            _mapView.showTraffic = YES;
            _mapView.showsCompass= NO; // 设置成NO表示关闭指南针;YES表示显示指南针
            _mapView.compassOrigin= CGPointMake(_mapView.compassOrigin.x, Screen_H*0.25 + 10*Size_ratio);
            _mapView.scaleOrigin= CGPointMake(20*Size_ratio, Screen_H*0.25+10*Size_ratio);  //设置比例尺位置
            _mapView.showsScale= NO;  //设置成NO表示不显示比例尺;YES表示显示比例尺`
            _mapView.userTrackingMode = MAUserTrackingModeFollow;
        }
        return _mapView;
    }
    
    • 配置定位权限
      在 Info.plist 文件中增加定位权限配置,如下图示:


    • 值得注意的是,定位权限有三种,您可根据需求进行选择。
    1.png
    • 自定义定位小蓝点
    //  初始化 MAUserLocationRepresentation 对象
    MAUserLocationRepresentation *r = [[MAUserLocationRepresentation alloc] init];
    r.showsAccuracyRing = NO;///精度圈是否显示,默认YES
    r.showsHeadingIndicator = NO;///是否显示方向指示(MAUserTrackingModeFollowWithHeading模式开启)。默认为YES
    r.fillColor = [UIColor redColor];///精度圈 填充颜色, 默认 kAccuracyCircleDefaultColor
    r.strokeColor = [UIColor blueColor];///精度圈 边线颜色, 默认 kAccuracyCircleDefaultColor
    r.lineWidth = 2;///精度圈 边线宽度,默认0
    r.enablePulseAnnimation = NO;///内部蓝色圆点是否使用律动效果, 默认YES
    r.locationDotBgColor = [UIColor greenColor];///定位点背景色,不设置默认白色
    r.locationDotFillColor = [UIColor grayColor];///定位点蓝色圆点颜色,不设置默认蓝色
    r.image = [UIImage imageNamed:@"你的图片"]; ///定位图标, 与蓝色原点互斥
    [self.mapView updateUserLocationRepresentation:r];
    
    • 添加默认的大头针位置
    MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init];
        pointAnnotation.coordinate = CLLocationCoordinate2DMake(39.989631, 116.481018);
        pointAnnotation.title = @"方恒国际";
        pointAnnotation.subtitle = @"阜通东大街6号";
        [_mapView addAnnotation:pointAnnotation];
    
    • 实现 <MAMapViewDelegate> 协议中的 mapView:viewForAnnotation:回调函数,设置标注样式。 如下所示
     - (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id <MAAnnotation>)annotation
    {
        if ([annotation isKindOfClass:[MAPointAnnotation class]])
        {
            static NSString *pointReuseIndentifier = @"pointReuseIndentifier";
            MAPinAnnotationView*annotationView = (MAPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIndentifier];
            if (annotationView == nil)
            {
                annotationView = [[MAPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pointReuseIndentifier];
            }
            annotationView.canShowCallout= YES;       //设置气泡可以弹出,默认为NO
            annotationView.animatesDrop = YES;        //设置标注动画显示,默认为NO
            annotationView.draggable = YES;        //设置标注可以拖动,默认为NO
            annotationView.pinColor = MAPinAnnotationColorPurple;
            return annotationView;
        }
        return nil;
    }
    
    下一篇反向地理编码

    相关文章

      网友评论

        本文标题:iOS开发-- 高德地图的接入使用(2)地图显示

        本文链接:https://www.haomeiwen.com/subject/otyqfxtx.html