高德地图android定位时圈太大,定位精度圈标扩散效果

使用场景

在地图中的定位图标展示时,呈现出定位圈向外扩散的动画效果。让定位展示效果更加明显、酷炫。

用到产品

核心类/接口

类接口说明版本

RadialCircleAnnotationView----继承自MAAnnotationView,实现脉冲圈向外缩放的动画效果----

MAMapView- (void)addAnnotation:(id )annotation;向地图窗口添加标注V4.0.0起

核心难点

增加RadialCircleAnnotationView

- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id)annotation

{

if ([annotation isKindOfClass:[MAPointAnnotation class]])

{

static NSString *pointReuseIdentifier = @"pointReuseIdentifier";

RadialCircleAnnotationView *annotationView = (RadialCircleAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIdentifier];

if (annotationView == nil)

{

annotationView = [[RadialCircleAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pointReuseIdentifier];

annotationView.canShowCallout = YES;

//脉冲圈个数

annotationView.pulseCount = 4;

//单个脉冲圈动画时长

annotationView.animationDuration = 8.0;

//单个脉冲圈起始直径

annotationView.baseDiameter = 8.0;

//单个脉冲圈缩放比例

annotationView.scale = 30.0;

//单个脉冲圈fillColor

annotationView.fillColor = [UIColor colorWithRed:24.f/255.f green:137.f/255.f blue:234.f/255.f alpha:1.0];

//单个脉冲圈strokeColor

annotationView.strokeColor = [UIColor colorWithRed:35.f/255.f green:35.f/255.f blue:255.f/255.f alpha:1.0];

}

return annotationView;

}

return nil;

}

/* 增加RadialCircleAnnotationView. */

func mapView(_ mapView: MAMapView!, viewFor annotation: MAAnnotation!) -> MAAnnotationView! {

if annotation is MAPointAnnotation {

let pointReuseIndetifier = "pointReuseIdentifier"

var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: pointReuseIndetifier) as? RadialCircleAnnotationView

if annotationView == nil {

annotationView = RadialCircleAnnotationView(annotation: annotation, reuseIdentifier: pointReuseIndetifier)

}

annotationView?.canShowCallout = true

//脉冲圈个数

annotationView?.pulseCount = 4

//单个脉冲圈动画时长

annotationView?.animationDuration = 8.0

//单个脉冲圈起始直径

annotationView?.baseDiameter = 8.0

//单个脉冲圈缩放比例

annotationView?.scale = 30.0

//单个脉冲圈fillColor

annotationView?.fillColor = UIColor(red: 24.0/255.0, green: 137.0/255.0, blue: 234.0/255.0, alpha: 1.0)

//单个脉冲圈strokeColor

annotationView?.strokeColor = UIColor(red: 35.0/255.0, green: 35.0/255.0, blue: 255.0/255.0, alpha: 1.0)

//更改设置后重新开始动画

annotationView?.startPulseAnimation()

return annotationView

}

return nil

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值