绘制圆
通过 MACircle 类绘制圆,圆是由中心点(经纬度)和半径(米)构成。
在地图绘制圆的步骤如下:
(1) 在ViewController.m的viewDidLoad方法中根据中心点和半径构造圆对象。
//构造圆
MACircle *circle = [MACircle circleWithCenterCoordinate:CLLocationCoordinate2DMake(39.952136, 116.50095) radius:5000];
//在地图上添加圆
[_mapView addOverlay: circle];
let circle: MACircle = MACircle(center: CLLocationCoordinate2D(latitude: 39.996441, longitude: 116.411146), radius: 10000)
mapView.add(circle)
(2) 继续在ViewController.m文件中,实现协议中的mapView:rendererForOverlay:回调函数,设置圆的样式。示例代码如下:
- (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id )overlay
{
if ([overlay isKindOfClass:[MACircle class]])
{
MACircleRenderer *circleRenderer = [[MACircleRenderer alloc] initWithCircle:overlay];
circleRenderer.lineWidth = 5.f;
circleRenderer.strokeColor = [UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:0.8];
circleRenderer.fillColor = [UIColor colorWithRed:1.0 green:0.8 blue:0.0 alpha:0.8];
return circleRenderer;
}
return nil;
}
func mapView(_ mapView: MAMapView!, rendererFor overlay: MAOverlay!) -> MAOverlayRenderer! {
if overlay.isKind(of: MACircle.self) {
let renderer: MACircleRenderer = MACircleRenderer(overlay: overlay)
renderer.lineWidth = 8.0
renderer.strokeColor = UIColor.blue
renderer.fillColor = UIColor.red.withAlphaComponent(0.4)
return renderer
}
return nil
}
运行程序,效果如下所示:
绘制热力图
热力图是以颜色变化展现分布情况的图层。高德地图iOS SDK自V2.6.0版本提供了热力图图层的绘制功能,您可根据业务数据(人员热度数据、人口流动热度等数据)创建可用于指导您决策的热力图。
在地图上添加热力图的步骤如下:
1.构造MAHeatMapTileOverlay 对象。
2.配置热力图图层的参数。
参数列表
名称说明
data数据数组,数组中是 MAHeatMapNode 对象(包含:点坐标和权重值)
radius半径,默认值为 12ps
opacity透明度,默认值为 0.6
gradient渐变色对象
3.将MAHeatMapTileOverlay添加到MAMapView中。
4.实现MAMapView