高德地图如何圈定范围
3个回答
展开全部
在高德地图中(v2.4),开启定位后会在当前位置周围显示一个蓝色的定位范围圆环。很多时候我们不需要显示这个圆环,或者需要改变它的样式。下面介绍一下修改这个圆环的方法。
首先在- (void)viewDidLoad 事件中开启下面的属性:
//gdMap为我定义的高德地图对象名称,这里根据你的需要换成自己的对象
gdMap.customizeUserLocationAccuracyCircleRepresentation = YES;
接下来需要在回调函数(如果你的代码中没有这个回调函数,加上即可)中添加圆环样式设置的代码:
//回调函数
- (MAOverlayView *)mapView:(MAMapView *)mapView viewForOverlay:(id <<span class="s2">MAOverlay>)overlay
{
// 自定义定位精度对应的MACircleView
if (overlay == mapView.userLocationAccuracyCircle)
{
MACircleView *accuracyCircleView = [[MACircleView alloc] initWithCircle:overlay];
accuracyCircleView.lineWidth = 2.f;
accuracyCircleView.strokeColor = [UIColor lightGrayColor];
accuracyCircleView.fillColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:.3];
return accuracyCircleView;
}
return nil;
}
这段代码写好后运行一下看看结果,你会发现原来的蓝色圆环变成红色的了。
如果想隐藏的话很简单,把圆环描边和填充的颜色设置为透明即可:
accuracyCircleView.strokeColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.0];
accuracyCircleView.fillColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.0];
首先在- (void)viewDidLoad 事件中开启下面的属性:
//gdMap为我定义的高德地图对象名称,这里根据你的需要换成自己的对象
gdMap.customizeUserLocationAccuracyCircleRepresentation = YES;
接下来需要在回调函数(如果你的代码中没有这个回调函数,加上即可)中添加圆环样式设置的代码:
//回调函数
- (MAOverlayView *)mapView:(MAMapView *)mapView viewForOverlay:(id <<span class="s2">MAOverlay>)overlay
{
// 自定义定位精度对应的MACircleView
if (overlay == mapView.userLocationAccuracyCircle)
{
MACircleView *accuracyCircleView = [[MACircleView alloc] initWithCircle:overlay];
accuracyCircleView.lineWidth = 2.f;
accuracyCircleView.strokeColor = [UIColor lightGrayColor];
accuracyCircleView.fillColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:.3];
return accuracyCircleView;
}
return nil;
}
这段代码写好后运行一下看看结果,你会发现原来的蓝色圆环变成红色的了。
如果想隐藏的话很简单,把圆环描边和填充的颜色设置为透明即可:
accuracyCircleView.strokeColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.0];
accuracyCircleView.fillColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.0];
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询