浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
蜂窝热力图
下载开发文档
蜂窝热力图简介

是一种由六边形为主要元素构成的统计图表。它既是散点图的延伸,又兼具直方图(频数统计)和普通热力图(按值着色)的特征。 适用于大规模的数据集,可以将散点聚合起来,更好的反映数据的聚集情况、发现变量之间的关系。

构建属于自己的蜂窝热力图

//创建蜂窝热力图数据类
BMKHexagonHeatMap *heatHexagonMap = [[BMKHexagonHeatMap alloc] init];
//读取数据
NSData *jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"multPoints" ofType:@"json"]];
NSArray *array = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
//创建热力图数据数组
NSMutableArray *data = [NSMutableArray array];
if (jsonData) {
for (NSDictionary *dic in array) {
//创建BMKHeatMapNode
BMKHexagonHeatMapNode *heapmapnode_test = [[BMKHexagonHeatMapNode alloc] init];
CLLocationCoordinate2D coor;
coor.latitude = [dic[@"lat"] doubleValue];
coor.longitude = [dic[@"lng"] doubleValue];
heapmapnode_test.pt = coor;
//随机生成点强度
heapmapnode_test.intensity = arc4random() % 900;
//添加BMKHeatMapNode到数组
[data addObject:heapmapnode_test];
}
}
//将点数据赋值到热力图数据类
heatHexagonMap.mData = data;
heatHexagonMap.mRadius = 5000;
heatHexagonMap.mMaxIntensity = 1800;
heatHexagonMap.mGap = 100;
heatHexagonMap.mHexagonType = BMKHexagonTypeVertexUp;
BMKGradient *graident = [[BMKGradient alloc] initWithColors:@[[UIColor blueColor], [UIColor redColor], [UIColor greenColor]] startPoints:@[@0.08, @0.4, @1.0]];
heatHexagonMap.mGradient = graident;
//调用mapView中的方法根据热力图数据添加热力图
[self.mapView addHexagonHeatMap:heatHexagonMap];

json数据样式示例:

[
{"lng": 116.895579, "lat": 24.306521},
{"lng": 113.951068, "lat": 22.772504},
{"lng": 110.00006, "lat": 40.603564},
{"lng": 111.846788, "lat": 21.897821}
]

运行程序

蜂窝热力图效果如下:

上一篇

绘制3D动态轨迹

下一篇

POI检索

本篇文章对您是否有帮助?